Skip to content

Commit

Permalink
fix playeffect in 1.16
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jul 6, 2022
1 parent 936e036 commit 71a9d36
Show file tree
Hide file tree
Showing 12 changed files with 30 additions and 28 deletions.
Expand Up @@ -23,7 +23,6 @@
import com.denizenscript.denizencore.objects.*;
import com.denizenscript.denizen.nms.NMSHandler;
import com.denizenscript.denizen.nms.abstracts.ProfileEditor;
import com.denizenscript.denizen.nms.interfaces.EntityHelper;
import com.denizenscript.denizen.nms.interfaces.FakePlayer;
import com.denizenscript.denizen.npc.traits.MirrorTrait;
import com.denizenscript.denizencore.objects.core.*;
Expand All @@ -46,7 +45,6 @@
import org.bukkit.entity.*;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.inventory.*;
import org.bukkit.inventory.meta.MapMeta;
import org.bukkit.loot.LootTable;
import org.bukkit.loot.Lootable;
import org.bukkit.potion.*;
Expand Down
Expand Up @@ -10,7 +10,6 @@
import com.denizenscript.denizencore.flags.RedirectionFlagTracker;
import com.denizenscript.denizencore.objects.*;
import com.denizenscript.denizen.nms.NMSHandler;
import com.denizenscript.denizen.tags.BukkitTagContext;
import com.denizenscript.denizencore.objects.core.DurationTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
Expand Down
Expand Up @@ -13,7 +13,6 @@
import com.denizenscript.denizencore.utilities.AsciiMatcher;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData;
import com.denizenscript.denizen.tags.BukkitTagContext;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.Mechanism;
import com.denizenscript.denizencore.objects.ObjectTag;
Expand Down
Expand Up @@ -20,7 +20,6 @@
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
import com.denizenscript.denizencore.scripts.commands.core.FlagCommand;
import com.denizenscript.denizen.utilities.BukkitImplDeprecations;
import com.denizenscript.denizencore.tags.TagContext;
import com.denizenscript.denizencore.utilities.data.DataAction;
import com.denizenscript.denizencore.utilities.data.DataActionHelper;
import org.bukkit.Bukkit;
Expand Down
Expand Up @@ -2,13 +2,12 @@

import com.denizenscript.denizen.nms.NMSVersion;
import com.denizenscript.denizen.objects.*;
import com.denizenscript.denizen.utilities.MultiVersionHelper1_17;
import com.denizenscript.denizen.utilities.debugging.Debug;
import com.denizenscript.denizen.nms.NMSHandler;
import com.denizenscript.denizen.nms.interfaces.Particle;
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.DurationTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
Expand Down Expand Up @@ -294,7 +293,7 @@ else if (clazz == ItemStack.class) {
dataObject = itemType.getItemStack();
}
// Intentionally list last due to requiring 1.17+
else if (clazz == org.bukkit.Particle.DustTransition.class) {
else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && clazz == org.bukkit.Particle.DustTransition.class) {
ListTag dataList = ListTag.valueOf(special_data.asString(), scriptEntry.getContext());
if (dataList.size() != 3) {
Debug.echoError("DustTransition special_data must have 3 list entries for particle: " + particleEffect.getName());
Expand All @@ -307,24 +306,14 @@ else if (clazz == org.bukkit.Particle.DustTransition.class) {
dataObject = new org.bukkit.Particle.DustTransition(fromColor.getColor(), toColor.getColor(), size);
}
}
else if (clazz == Vibration.class) {
else if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) && clazz == Vibration.class) {
ListTag dataList = ListTag.valueOf(special_data.asString(), scriptEntry.getContext());
if (dataList.size() != 3) {
Debug.echoError("Vibration special_data must have 3 list entries for particle: " + particleEffect.getName());
return;
}
else {
DurationTag duration = dataList.getObject(0).asType(DurationTag.class, scriptEntry.context);
LocationTag origin = dataList.getObject(1).asType(LocationTag.class, scriptEntry.context);
ObjectTag destination = dataList.getObject(2);
Vibration.Destination destObj;
if (destination.shouldBeType(EntityTag.class)) {
destObj = new Vibration.Destination.EntityDestination(destination.asType(EntityTag.class, scriptEntry.context).getBukkitEntity());
}
else {
destObj = new Vibration.Destination.BlockDestination(destination.asType(LocationTag.class, scriptEntry.context));
}
dataObject = new Vibration(origin, destObj, duration.getTicksAsInt());
dataObject = MultiVersionHelper1_17.getPlayEffectVibrationObject(dataList, scriptEntry);
}
}
else {
Expand Down
@@ -1,11 +1,17 @@
package com.denizenscript.denizen.utilities;

import com.denizenscript.denizen.objects.EntityTag;
import com.denizenscript.denizen.objects.LocationTag;
import com.denizenscript.denizen.objects.properties.entity.EntityColor;
import com.denizenscript.denizen.objects.properties.material.MaterialBlockType;
import com.denizenscript.denizen.objects.properties.material.MaterialMode;
import com.denizenscript.denizencore.objects.Mechanism;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.DurationTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import org.bukkit.Vibration;
import org.bukkit.block.data.type.BigDripleaf;
import org.bukkit.block.data.type.PointedDripstone;
import org.bukkit.block.data.type.SculkSensor;
Expand Down Expand Up @@ -66,4 +72,18 @@ else if (object.isBigDripleaf() && mechanism.requireEnum(BigDripleaf.Tilt.class)
((BigDripleaf) object.material.getModernData()).setTilt(BigDripleaf.Tilt.valueOf(mechanism.getValue().asString().toUpperCase()));
}
}

public static Object getPlayEffectVibrationObject(ListTag dataList, ScriptEntry scriptEntry) {
DurationTag duration = dataList.getObject(0).asType(DurationTag.class, scriptEntry.context);
LocationTag origin = dataList.getObject(1).asType(LocationTag.class, scriptEntry.context);
ObjectTag destination = dataList.getObject(2);
Vibration.Destination destObj;
if (destination.shouldBeType(EntityTag.class)) {
destObj = new Vibration.Destination.EntityDestination(destination.asType(EntityTag.class, scriptEntry.context).getBukkitEntity());
}
else {
destObj = new Vibration.Destination.BlockDestination(destination.asType(LocationTag.class, scriptEntry.context));
}
return new Vibration(origin, destObj, duration.getTicksAsInt());
}
}
Expand Up @@ -3,14 +3,11 @@
import com.denizenscript.denizen.Denizen;
import com.denizenscript.denizen.nms.NMSHandler;
import com.denizenscript.denizen.utilities.DataPersistenceHelper;
import com.denizenscript.denizen.utilities.Settings;
import com.denizenscript.denizencore.flags.MapTagBasedFlagTracker;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.MapTag;
import com.denizenscript.denizencore.utilities.AsciiMatcher;
import com.denizenscript.denizencore.utilities.CoreConfiguration;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import org.bukkit.Chunk;
import org.bukkit.NamespacedKey;
import org.bukkit.persistence.PersistentDataHolder;
import org.bukkit.persistence.PersistentDataType;
Expand Down
Expand Up @@ -11,7 +11,6 @@
import com.denizenscript.denizen.scripts.commands.player.GlowCommand;
import com.denizenscript.denizen.scripts.commands.server.ExecuteCommand;
import com.denizenscript.denizencore.DenizenCore;
import com.denizenscript.denizencore.events.ScriptEvent;
import com.denizenscript.denizencore.objects.core.ElementTag;
import org.bukkit.Bukkit;
import org.bukkit.Material;
Expand Down
Expand Up @@ -24,7 +24,6 @@
import com.denizenscript.denizen.utilities.entity.HideEntitiesHelper;
import com.denizenscript.denizen.utilities.packets.DenizenPacketHandler;
import com.denizenscript.denizen.utilities.packets.HideParticles;
import com.denizenscript.denizencore.events.ScriptEvent;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.utilities.CoreConfiguration;
import com.mojang.datafixers.util.Pair;
Expand Down
Expand Up @@ -126,7 +126,9 @@ public static void updatePlayerProfiles(ClientboundPlayerInfoPacket packet) {

private static GameProfile getGameProfile(PlayerProfile playerProfile) {
GameProfile gameProfile = new GameProfile(playerProfile.getUniqueId(), playerProfile.getName());
gameProfile.getProperties().put("textures", new Property("textures", playerProfile.getTexture(), playerProfile.getTextureSignature()));
if (playerProfile.hasTexture()) {
gameProfile.getProperties().put("textures", new Property("textures", playerProfile.getTexture(), playerProfile.getTextureSignature()));
}
return gameProfile;
}

Expand Down
Expand Up @@ -26,7 +26,6 @@
import com.denizenscript.denizen.utilities.entity.HideEntitiesHelper;
import com.denizenscript.denizen.utilities.packets.DenizenPacketHandler;
import com.denizenscript.denizen.utilities.packets.HideParticles;
import com.denizenscript.denizencore.events.ScriptEvent;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.utilities.CoreConfiguration;
import com.denizenscript.denizencore.utilities.CoreUtilities;
Expand Down
Expand Up @@ -126,7 +126,9 @@ public static void updatePlayerProfiles(ClientboundPlayerInfoPacket packet) {

private static GameProfile getGameProfile(PlayerProfile playerProfile) {
GameProfile gameProfile = new GameProfile(playerProfile.getUniqueId(), playerProfile.getName());
gameProfile.getProperties().put("textures", new Property("textures", playerProfile.getTexture(), playerProfile.getTextureSignature()));
if (playerProfile.hasTexture()) {
gameProfile.getProperties().put("textures", new Property("textures", playerProfile.getTexture(), playerProfile.getTextureSignature()));
}
return gameProfile;
}

Expand Down

0 comments on commit 71a9d36

Please sign in to comment.