diff --git a/main/pom.xml b/main/pom.xml index ccdb8b4ea..7614a257c 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -4,12 +4,12 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-main UTF-8 - 1.19.3-R0.1-SNAPSHOT + 1.19.4-R0.1-SNAPSHOT 2.11.2 ${project.version} 7.0.4 diff --git a/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index 325bea1cc..f507fdd75 100644 --- a/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -191,8 +191,8 @@ public class CitizensNPC extends AbstractNPC { @Override public boolean requiresNameHologram() { - return super.requiresNameHologram() - || (getEntityType() != EntityType.ARMOR_STAND && Setting.ALWAYS_USE_NAME_HOLOGRAM.asBoolean()); + return super.requiresNameHologram() || (getEntityType() != EntityType.ARMOR_STAND + && !getEntityType().name().equals("TEXT_DISPLAY") && Setting.ALWAYS_USE_NAME_HOLOGRAM.asBoolean()); } private void resetCachedCoord() { diff --git a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java index dc87fe51e..3936b2530 100644 --- a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java @@ -1,6 +1,7 @@ package net.citizensnpcs.trait; import java.util.Collection; +import java.util.IllegalFormatException; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -9,7 +10,7 @@ import java.util.stream.Collectors; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; @@ -87,8 +88,13 @@ public class HologramTrait extends Trait { } private NPC createHologram(String line, double heightOffset) { - NPC hologramNPC = registry.createNPC(EntityType.ARMOR_STAND, line); - hologramNPC.getOrAddTrait(ArmorStandTrait.class).setAsHelperEntityWithName(npc); + NPC hologramNPC = null; + if (SUPPORTS_TEXT_DISPLAY) { + hologramNPC = registry.createNPC(EntityType.TEXT_DISPLAY, line); + } else { + hologramNPC = registry.createNPC(EntityType.ARMOR_STAND, line); + hologramNPC.getOrAddTrait(ArmorStandTrait.class).setAsHelperEntityWithName(npc); + } if (Setting.PACKET_HOLOGRAMS.asBoolean()) { hologramNPC.addTrait(PacketNPC.class); } @@ -107,7 +113,7 @@ public class HologramTrait extends Trait { .setColor(Util.matchEnum(ChatColor.values(), itemMatcher.group(2).substring(1))); } itemNPC.spawn(currentLoc); - ((ArmorStand) hologramNPC.getEntity()).addPassenger(itemNPC.getEntity()); + hologramNPC.getEntity().addPassenger(itemNPC.getEntity()); itemNPC.addRunnable(new Runnable() { @Override public void run() { @@ -147,9 +153,9 @@ public class HologramTrait extends Trait { /** * Note: this is implementation-specific and may be removed at a later date. */ - public Collection getHologramEntities() { + public Collection getHologramEntities() { return lines.stream().filter(l -> l.hologram != null && l.hologram.getEntity() != null) - .map(l -> (ArmorStand) l.hologram.getEntity()).collect(Collectors.toList()); + .map(l -> l.hologram.getEntity()).collect(Collectors.toList()); } /** @@ -173,8 +179,8 @@ public class HologramTrait extends Trait { /** * Note: this is implementation-specific and may be removed at a later date. */ - public ArmorStand getNameEntity() { - return nameNPC != null && nameNPC.isSpawned() ? ((ArmorStand) nameNPC.getEntity()) : null; + public Entity getNameEntity() { + return nameNPC != null && nameNPC.isSpawned() ? nameNPC.getEntity() : null; } @Override @@ -318,7 +324,7 @@ public class HologramTrait extends Trait { if (!updateName) continue; - hologramNPC.setName(Placeholders.replace(text, null, npc)); + line.setText(text); hologramNPC.data().set(NPC.Metadata.NAMEPLATE_VISIBLE, npc.getRawName().length() > 0); } } @@ -428,4 +434,12 @@ public class HologramTrait extends Trait { } private static final Pattern ITEM_MATCHER = Pattern.compile(""); + private static boolean SUPPORTS_TEXT_DISPLAY = true; + static { + try { + EntityType.valueOf("TEXT_DISPLAY"); + } catch (IllegalFormatException e) { + SUPPORTS_TEXT_DISPLAY = false; + } + } } diff --git a/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java new file mode 100644 index 000000000..4ce2c1307 --- /dev/null +++ b/main/src/main/java/net/citizensnpcs/trait/versioned/SnifferTrait.java @@ -0,0 +1,78 @@ +package net.citizensnpcs.trait.versioned; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Sniffer; + +import net.citizensnpcs.api.command.Command; +import net.citizensnpcs.api.command.CommandContext; +import net.citizensnpcs.api.command.Flag; +import net.citizensnpcs.api.command.Requirements; +import net.citizensnpcs.api.command.exception.CommandException; +import net.citizensnpcs.api.command.exception.CommandUsageException; +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.persistence.Persist; +import net.citizensnpcs.api.trait.Trait; +import net.citizensnpcs.api.trait.TraitName; +import net.citizensnpcs.api.util.Messaging; +import net.citizensnpcs.util.Messages; +import net.citizensnpcs.util.NMS; + +@TraitName("sniffertrait") +public class SnifferTrait extends Trait { + @Persist + private SnifferState state = null; + + public SnifferTrait() { + super("sniffertrait"); + } + + public SnifferState getState() { + return state; + } + + @Override + public void run() { + if (!npc.isSpawned() || !(npc.getEntity() instanceof Sniffer)) + return; + NMS.setSnifferState(npc.getEntity(), state); + } + + public void setState(SnifferState state) { + this.state = state; + } + + public enum SnifferState { + DIGGING, + FEELING_HAPPY, + IDLING, + RISING, + SCENTING, + SEARCHING, + SNIFFING + } + + @Command( + aliases = { "npc" }, + usage = "sniffer (--state [state])", + desc = "Sets sniffer modifiers", + modifiers = { "sniffer" }, + min = 1, + max = 1, + permission = "citizens.npc.sniffer") + @Requirements(selected = true, ownership = true, types = EntityType.SNIFFER) + public static void sniffer(CommandContext args, CommandSender sender, NPC npc, @Flag("state") SnifferState state) + throws CommandException { + SnifferTrait trait = npc.getOrAddTrait(SnifferTrait.class); + String output = ""; + if (state != null) { + trait.setState(state); + output += ' ' + Messaging.tr(Messages.SNIFFER_STATE_SET, npc.getName(), state); + } + if (!output.isEmpty()) { + Messaging.send(sender, output.trim()); + } else { + throw new CommandUsageException(); + } + } +} diff --git a/main/src/main/java/net/citizensnpcs/util/Messages.java b/main/src/main/java/net/citizensnpcs/util/Messages.java index a25b8f310..bd7e11d66 100644 --- a/main/src/main/java/net/citizensnpcs/util/Messages.java +++ b/main/src/main/java/net/citizensnpcs/util/Messages.java @@ -363,6 +363,7 @@ public class Messages { public static final String SKIPPING_BROKEN_TRAIT = "citizens.notifications.skipping-broken-trait"; public static final String SKIPPING_INVALID_ANCHOR = "citizens.notifications.skipping-invalid-anchor"; public static final String SKIPPING_INVALID_POSE = "citizens.notifications.skipping-invalid-pose"; + public static final String SNIFFER_STATE_SET = "citizens.commands.npc.sniffer.state-set"; public static final String SNOWMAN_DERP_SET = "citizens.commands.npc.snowman.derp-set"; public static final String SNOWMAN_DERP_STOPPED = "citizens.commands.npc.snowman.derp-stopped"; public static final String SOUND_INFO = "citizens.commands.npc.sound.info"; diff --git a/main/src/main/java/net/citizensnpcs/util/NMS.java b/main/src/main/java/net/citizensnpcs/util/NMS.java index f8481f8c3..109f1bc52 100644 --- a/main/src/main/java/net/citizensnpcs/util/NMS.java +++ b/main/src/main/java/net/citizensnpcs/util/NMS.java @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.List; import java.util.function.Consumer; import java.util.function.Supplier; +import java.util.stream.Collectors; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -31,6 +32,7 @@ import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.scoreboard.Team; import org.bukkit.util.Vector; +import com.google.common.collect.Lists; import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfileRepository; @@ -52,6 +54,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator; import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator; import net.citizensnpcs.npc.skin.SkinnableEntity; import net.citizensnpcs.trait.versioned.CamelTrait.CamelPose; +import net.citizensnpcs.trait.versioned.SnifferTrait.SnifferState; public class NMS { private NMS() { @@ -148,6 +151,33 @@ public class NMS { } } + private static List getFieldsMatchingType(Class clazz, Class type, boolean allowStatic) { + List found = Lists.newArrayList(); + for (Field field : clazz.getDeclaredFields()) { + if (allowStatic ^ Modifier.isStatic(field.getModifiers())) + continue; + if (field.getType() == type) { + found.add(field); + field.setAccessible(true); + } + } + return found; + } + + public static List getFieldsOfType(Class clazz, Class type) { + List found = getFieldsMatchingType(clazz, type, false); + if (found.isEmpty()) + return null; + return found.stream().map(f -> { + try { + return LOOKUP.unreflectGetter(f); + } catch (Throwable e) { + e.printStackTrace(); + } + return null; + }).filter(f -> f != null).collect(Collectors.toList()); + } + public static MethodHandle getFinalSetter(Class clazz, String field) { return getFinalSetter(clazz, field, true); } @@ -212,28 +242,12 @@ public class NMS { return null; } - private static Field getFirstFieldMatchingType(Class clazz, Class type, boolean allowStatic) { - Field found = null; - for (Field field : clazz.getDeclaredFields()) { - if (allowStatic ^ Modifier.isStatic(field.getModifiers())) - continue; - if (field.getType() == type) { - found = field; - break; - } - } - if (found != null) { - found.setAccessible(true); - } - return found; - } - public static MethodHandle getFirstFinalSetter(Class clazz, Class type) { try { - Field found = getFirstFieldMatchingType(clazz, type, false); - if (found == null) + List found = getFieldsMatchingType(clazz, type, false); + if (found.isEmpty()) return null; - return getFinalSetter(clazz, found.getName()); + return getFinalSetter(clazz, found.get(0).getName()); } catch (Exception e) { Messaging.logTr(Messages.ERROR_GETTING_FIELD, type, e.getLocalizedMessage()); } @@ -242,10 +256,10 @@ public class NMS { public static MethodHandle getFirstGetter(Class clazz, Class type) { try { - Field found = getFirstFieldMatchingType(clazz, type, false); - if (found == null) + List found = getFieldsMatchingType(clazz, type, false); + if (found.isEmpty()) return null; - return LOOKUP.unreflectGetter(found); + return LOOKUP.unreflectGetter(found.get(0)); } catch (Exception e) { Messaging.logTr(Messages.ERROR_GETTING_FIELD, type, e.getLocalizedMessage()); } @@ -292,10 +306,10 @@ public class NMS { public static MethodHandle getFirstSetter(Class clazz, Class type) { try { - Field found = getFirstFieldMatchingType(clazz, type, false); - if (found == null) + List found = getFieldsMatchingType(clazz, type, false); + if (found.isEmpty()) return null; - return LOOKUP.unreflectSetter(found); + return LOOKUP.unreflectSetter(found.get(0)); } catch (Exception e) { Messaging.logTr(Messages.ERROR_GETTING_FIELD, type, e.getLocalizedMessage()); } @@ -304,10 +318,10 @@ public class NMS { public static MethodHandle getFirstStaticGetter(Class clazz, Class type) { try { - Field found = getFirstFieldMatchingType(clazz, type, true); - if (found == null) + List found = getFieldsMatchingType(clazz, type, true); + if (found.isEmpty()) return null; - return LOOKUP.unreflectGetter(found); + return LOOKUP.unreflectGetter(found.get(0)); } catch (Exception e) { Messaging.logTr(Messages.ERROR_GETTING_FIELD, type, e.getLocalizedMessage()); } @@ -698,6 +712,10 @@ public class NMS { BRIDGE.setSneaking(entity, sneaking); } + public static void setSnifferState(Entity entity, SnifferState state) { + BRIDGE.setSnifferState(entity, state); + } + public static void setStepHeight(org.bukkit.entity.Entity entity, float height) { BRIDGE.setStepHeight(entity, height); } @@ -757,6 +775,7 @@ public class NMS { private static Object UNSAFE; private static MethodHandle UNSAFE_FIELD_OFFSET; private static MethodHandle UNSAFE_PUT_OBJECT; + private static MethodHandle UNSAFE_STATIC_FIELD_OFFSET; static { diff --git a/main/src/main/java/net/citizensnpcs/util/NMSBridge.java b/main/src/main/java/net/citizensnpcs/util/NMSBridge.java index 34b37f51b..fc2f4c595 100644 --- a/main/src/main/java/net/citizensnpcs/util/NMSBridge.java +++ b/main/src/main/java/net/citizensnpcs/util/NMSBridge.java @@ -40,6 +40,7 @@ import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator; import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator; import net.citizensnpcs.npc.skin.SkinnableEntity; import net.citizensnpcs.trait.versioned.CamelTrait.CamelPose; +import net.citizensnpcs.trait.versioned.SnifferTrait.SnifferState; public interface NMSBridge { default void activate(Entity entity) { @@ -227,6 +228,9 @@ public interface NMSBridge { public void setSneaking(Entity entity, boolean sneaking); + public default void setSnifferState(Entity entity, SnifferState state) { + } + public void setStepHeight(Entity entity, float height); public void setTeamNameTagVisible(Team team, boolean visible); @@ -249,5 +253,5 @@ public interface NMSBridge { public void updateNavigationWorld(Entity entity, World world); - public void updatePathfindingRange(NPC npc, float pathfindingRange); + public void updatePathfindingRange(NPC npc, float pathfindingRange);; } diff --git a/main/src/main/resources/messages_en.properties b/main/src/main/resources/messages_en.properties index 812dc2738..15c60bcde 100644 --- a/main/src/main/resources/messages_en.properties +++ b/main/src/main/resources/messages_en.properties @@ -280,6 +280,7 @@ citizens.commands.npc.skin.cleared=[[{0}]]''s skin name was cleared. citizens.commands.npc.skin.layers-set=[[{0}]]''s skin layers: cape - [[{1}]], hat - [[{2}]], jacket - [[{3}]], sleeves - [[{4}]], pants - [[{5}]]. citizens.commands.npc.size.description=[[{0}]]''s size is [[{1}]]. citizens.commands.npc.size.set=[[{0}]]''s size set to [[{1}]]. +citizens.commands.npc.sniffer.state-set=[[{0}]]''s state set to [[{1}]]. citizens.commands.npc.spellcaster.spell-set=Spell set to [[{0}]]. citizens.commands.npc.sound.invalid-sound=Invalid sound. citizens.commands.npc.sound.set=[[{0}]]''s sounds are now: ambient - [[{1}]] hurt - [[{2}]] and death - [[{3}]]. diff --git a/pom.xml b/pom.xml index 3bacbf552..e92e46ea0 100644 --- a/pom.xml +++ b/pom.xml @@ -1,35 +1,29 @@ 4.0.0 - pom net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT - + 2.0.31-SNAPSHOT Unknown - 2.0.30 + 2.0.31 - citizens-repo https://maven.citizensnpcs.co/repo - citizens-repo https://maven.citizensnpcs.co/repo - clean package install - main v1_8_R3 @@ -37,7 +31,7 @@ v1_16_R3 v1_17_R1 v1_18_R2 - v1_19_R2 + v1_19_R3 dist \ No newline at end of file diff --git a/v1_10_R1/pom.xml b/v1_10_R1/pom.xml index 0758515c0..03c2acce1 100644 --- a/v1_10_R1/pom.xml +++ b/v1_10_R1/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_10_R1 diff --git a/v1_11_R1/pom.xml b/v1_11_R1/pom.xml index 236324d35..91bef0a3a 100644 --- a/v1_11_R1/pom.xml +++ b/v1_11_R1/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_11_R1 diff --git a/v1_12_R1/pom.xml b/v1_12_R1/pom.xml index 7c4176cf4..cc3818d0d 100644 --- a/v1_12_R1/pom.xml +++ b/v1_12_R1/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_12_R1 diff --git a/v1_13_R2/pom.xml b/v1_13_R2/pom.xml index febb2a90f..39ddfc179 100644 --- a/v1_13_R2/pom.xml +++ b/v1_13_R2/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_13_R2 diff --git a/v1_14_R1/pom.xml b/v1_14_R1/pom.xml index 7dddf5173..c5a86f218 100644 --- a/v1_14_R1/pom.xml +++ b/v1_14_R1/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_14_R1 diff --git a/v1_15_R1/pom.xml b/v1_15_R1/pom.xml index b2bd4dd40..1cb7203a0 100644 --- a/v1_15_R1/pom.xml +++ b/v1_15_R1/pom.xml @@ -4,7 +4,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_15_R1 diff --git a/v1_16_R3/pom.xml b/v1_16_R3/pom.xml index 4c28f887a..1cede8ae3 100644 --- a/v1_16_R3/pom.xml +++ b/v1_16_R3/pom.xml @@ -4,7 +4,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_16_R3 diff --git a/v1_17_R1/pom.xml b/v1_17_R1/pom.xml index a288e0306..927072c3b 100644 --- a/v1_17_R1/pom.xml +++ b/v1_17_R1/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_17_R1 diff --git a/v1_18_R2/pom.xml b/v1_18_R2/pom.xml index c9b7fd4d2..6829ed143 100644 --- a/v1_18_R2/pom.xml +++ b/v1_18_R2/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_18_R2 diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java b/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java deleted file mode 100644 index 4ddda15ae..000000000 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluator.java +++ /dev/null @@ -1,510 +0,0 @@ -package net.citizensnpcs.nms.v1_19_R2.util; - -import java.util.EnumSet; - -import it.unimi.dsi.fastutil.longs.Long2ObjectMap; -import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import it.unimi.dsi.fastutil.objects.Object2BooleanMap; -import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.FluidTags; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.PathNavigationRegion; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.CampfireBlock; -import net.minecraft.world.level.block.DoorBlock; -import net.minecraft.world.level.block.FenceGateBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.Property; -import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.level.material.Fluids; -import net.minecraft.world.level.material.Material; -import net.minecraft.world.level.pathfinder.BlockPathTypes; -import net.minecraft.world.level.pathfinder.Node; -import net.minecraft.world.level.pathfinder.PathComputationType; -import net.minecraft.world.level.pathfinder.Target; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.VoxelShape; - -public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { - private final Long2ObjectMap l = new Long2ObjectOpenHashMap(); - private final Object2BooleanMap m = new Object2BooleanOpenHashMap(); - protected float oldWaterCost; - - private boolean canReachWithoutCollision(Node var0) { - Vec3 var1 = new Vec3(var0.x - this.mob.getX(), var0.y - this.mob.getY(), var0.z - this.mob.getZ()); - AABB var2 = this.mob.getBoundingBox(); - int var3 = Mth.ceil(var1.length() / var2.getSize()); - var1 = var1.scale((1.0F / var3)); - for (int var4 = 1; var4 <= var3; var4++) { - var2 = var2.move(var1); - if (hasCollisions(var2)) - return false; - } - return true; - } - - @Override - public void done() { - this.mob.setPathfindingMalus(BlockPathTypes.WATER, this.oldWaterCost); - this.l.clear(); - this.m.clear(); - super.done(); - } - - protected BlockPathTypes evaluateBlockPathType(BlockGetter var0, boolean var1, boolean var2, BlockPos var3, - BlockPathTypes var4) { - if (var4 == BlockPathTypes.DOOR_WOOD_CLOSED && var1 && var2) - var4 = BlockPathTypes.WALKABLE_DOOR; - if (var4 == BlockPathTypes.DOOR_OPEN && !var2) - var4 = BlockPathTypes.BLOCKED; - if (var4 == BlockPathTypes.RAIL - && !(var0.getBlockState(var3).getBlock() instanceof net.minecraft.world.level.block.BaseRailBlock) - && !(var0.getBlockState(var3.below()) - .getBlock() instanceof net.minecraft.world.level.block.BaseRailBlock)) - var4 = BlockPathTypes.UNPASSABLE_RAIL; - if (var4 == BlockPathTypes.LEAVES) - var4 = BlockPathTypes.BLOCKED; - return var4; - } - - protected Node findAcceptedNode(int var0, int var1, int var2, int var3, double var4, Direction var6, - BlockPathTypes var7) { - Node var8 = null; - BlockPos.MutableBlockPos var9 = new BlockPos.MutableBlockPos(); - double var10 = getFloorLevel(var9.set(var0, var1, var2)); - if (var10 - var4 > 1.125D) - return null; - BlockPathTypes var12 = getCachedBlockType(this.mob, var0, var1, var2); - float var13 = this.mob.getPathfindingMalus(var12); - double var14 = this.mob.getBbWidth() / 2.0D; - if (var13 >= 0.0F) { - var8 = getNode(var0, var1, var2); - var8.type = var12; - var8.costMalus = Math.max(var8.costMalus, var13); - } - if (var7 == BlockPathTypes.FENCE && var8 != null && var8.costMalus >= 0.0F && !canReachWithoutCollision(var8)) - var8 = null; - if (var12 == BlockPathTypes.WALKABLE || (isAmphibious() && var12 == BlockPathTypes.WATER)) - return var8; - if ((var8 == null || var8.costMalus < 0.0F) && var3 > 0 && var12 != BlockPathTypes.FENCE - && var12 != BlockPathTypes.UNPASSABLE_RAIL && var12 != BlockPathTypes.TRAPDOOR - && var12 != BlockPathTypes.POWDER_SNOW) { - var8 = findAcceptedNode(var0, var1 + 1, var2, var3 - 1, var4, var6, var7); - if (var8 != null && (var8.type == BlockPathTypes.OPEN || var8.type == BlockPathTypes.WALKABLE) - && this.mob.getBbWidth() < 1.0F) { - double var16 = (var0 - var6.getStepX()) + 0.5D; - double var18 = (var2 - var6.getStepZ()) + 0.5D; - AABB var20 = new AABB(var16 - var14, - getFloorLevel(this.level, var9.set(var16, (var1 + 1), var18)) + 0.001D, var18 - var14, - var16 + var14, - this.mob.getBbHeight() + getFloorLevel(this.level, var9.set(var8.x, var8.y, var8.z)) - 0.002D, - var18 + var14); - if (hasCollisions(var20)) - var8 = null; - } - } - if (!isAmphibious() && var12 == BlockPathTypes.WATER && !canFloat()) { - if (getCachedBlockType(this.mob, var0, var1 - 1, var2) != BlockPathTypes.WATER) - return var8; - while (var1 > this.mob.level.getMinBuildHeight()) { - var1--; - var12 = getCachedBlockType(this.mob, var0, var1, var2); - if (var12 == BlockPathTypes.WATER) { - var8 = getNode(var0, var1, var2); - var8.type = var12; - var8.costMalus = Math.max(var8.costMalus, this.mob.getPathfindingMalus(var12)); - continue; - } - return var8; - } - } - if (var12 == BlockPathTypes.OPEN) { - int var16 = 0; - int var17 = var1; - while (var12 == BlockPathTypes.OPEN) { - var1--; - if (var1 < this.mob.level.getMinBuildHeight()) { - Node var18 = getNode(var0, var17, var2); - var18.type = BlockPathTypes.BLOCKED; - var18.costMalus = -1.0F; - return var18; - } - if (var16++ >= this.mob.getMaxFallDistance()) { - Node var18 = getNode(var0, var1, var2); - var18.type = BlockPathTypes.BLOCKED; - var18.costMalus = -1.0F; - return var18; - } - var12 = getCachedBlockType(this.mob, var0, var1, var2); - var13 = this.mob.getPathfindingMalus(var12); - if (var12 != BlockPathTypes.OPEN && var13 >= 0.0F) { - var8 = getNode(var0, var1, var2); - var8.type = var12; - var8.costMalus = Math.max(var8.costMalus, var13); - break; - } - if (var13 < 0.0F) { - Node var18 = getNode(var0, var1, var2); - var18.type = BlockPathTypes.BLOCKED; - var18.costMalus = -1.0F; - return var18; - } - } - } - if (var12 == BlockPathTypes.FENCE) { - var8 = getNode(var0, var1, var2); - var8.closed = true; - var8.type = var12; - var8.costMalus = var12.getMalus(); - } - return var8; - } - - @Override - public BlockPathTypes getBlockPathType(BlockGetter var0, int var1, int var2, int var3) { - return getBlockPathTypeStatic(var0, new BlockPos.MutableBlockPos(var1, var2, var3)); - } - - public BlockPathTypes getBlockPathType(BlockGetter var0, int var1, int var2, int var3, EntityHumanNPC var4, - int var5, int var6, int var7, boolean var8, boolean var9) { - EnumSet var10 = EnumSet.noneOf(BlockPathTypes.class); - BlockPathTypes var11 = BlockPathTypes.BLOCKED; - BlockPos var12 = var4.blockPosition(); - var11 = getBlockPathTypes(var0, var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var12); - if (var10.contains(BlockPathTypes.FENCE)) - return BlockPathTypes.FENCE; - if (var10.contains(BlockPathTypes.UNPASSABLE_RAIL)) - return BlockPathTypes.UNPASSABLE_RAIL; - BlockPathTypes var13 = BlockPathTypes.BLOCKED; - for (BlockPathTypes var15 : var10) { - if (var4.getPathfindingMalus(var15) < 0.0F) - return var15; - if (var4.getPathfindingMalus(var15) >= var4.getPathfindingMalus(var13)) - var13 = var15; - } - if (var11 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var13) == 0.0F && var5 <= 1) - return BlockPathTypes.OPEN; - return var13; - } - - @Override - public BlockPathTypes getBlockPathType(BlockGetter var0, int var1, int var2, int var3, Mob var4, int var5, int var6, - int var7, boolean var8, boolean var9) { - EnumSet var10 = EnumSet.noneOf(BlockPathTypes.class); - BlockPathTypes var11 = BlockPathTypes.BLOCKED; - BlockPos var12 = var4.blockPosition(); - var11 = getBlockPathTypes(var0, var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var12); - if (var10.contains(BlockPathTypes.FENCE)) - return BlockPathTypes.FENCE; - if (var10.contains(BlockPathTypes.UNPASSABLE_RAIL)) - return BlockPathTypes.UNPASSABLE_RAIL; - BlockPathTypes var13 = BlockPathTypes.BLOCKED; - for (BlockPathTypes var15 : var10) { - if (var4.getPathfindingMalus(var15) < 0.0F) - return var15; - if (var4.getPathfindingMalus(var15) >= var4.getPathfindingMalus(var13)) - var13 = var15; - } - if (var11 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var13) == 0.0F && var5 <= 1) - return BlockPathTypes.OPEN; - return var13; - } - - private BlockPathTypes getBlockPathType(EntityHumanNPC var0, BlockPos var1) { - return getCachedBlockType(var0, var1.getX(), var1.getY(), var1.getZ()); - } - - public BlockPathTypes getBlockPathTypee(BlockGetter var0, int var1, int var2, int var3, EntityHumanNPC var4, - int var5, int var6, int var7, boolean var8, boolean var9) { - EnumSet var10 = EnumSet.noneOf(BlockPathTypes.class); - BlockPathTypes var11 = BlockPathTypes.BLOCKED; - BlockPos var12 = var4.blockPosition(); - var11 = getBlockPathTypes(var0, var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var12); - if (var10.contains(BlockPathTypes.FENCE)) - return BlockPathTypes.FENCE; - if (var10.contains(BlockPathTypes.UNPASSABLE_RAIL)) - return BlockPathTypes.UNPASSABLE_RAIL; - BlockPathTypes var13 = BlockPathTypes.BLOCKED; - for (BlockPathTypes var15 : var10) { - if (var4.getPathfindingMalus(var15) < 0.0F) - return var15; - if (var4.getPathfindingMalus(var15) >= var4.getPathfindingMalus(var13)) - var13 = var15; - } - if (var11 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var13) == 0.0F && var5 <= 1) - return BlockPathTypes.OPEN; - return var13; - } - - public BlockPathTypes getBlockPathTypes(BlockGetter var0, int var1, int var2, int var3, int var4, int var5, - int var6, boolean var7, boolean var8, EnumSet var9, BlockPathTypes var10, BlockPos var11) { - for (int var12 = 0; var12 < var4; var12++) { - for (int var13 = 0; var13 < var5; var13++) { - for (int var14 = 0; var14 < var6; var14++) { - int var15 = var12 + var1; - int var16 = var13 + var2; - int var17 = var14 + var3; - BlockPathTypes var18 = getBlockPathType(var0, var15, var16, var17); - var18 = evaluateBlockPathType(var0, var7, var8, var11, var18); - if (var12 == 0 && var13 == 0 && var14 == 0) - var10 = var18; - var9.add(var18); - } - } - } - return var10; - } - - protected BlockPathTypes getCachedBlockType(EntityHumanNPC var0, int var1, int var2, int var3) { - return this.l.computeIfAbsent(BlockPos.asLong(var1, var2, var3), - var4 -> getBlockPathType(this.level, var1, var2, var3, var0, this.entityWidth, this.entityHeight, - this.entityDepth, canOpenDoors(), canPassDoors())); - } - - protected BlockPathTypes getCachedBlockType(Mob var0, int var1, int var2, int var3) { - return this.l.computeIfAbsent(BlockPos.asLong(var1, var2, var3), - var4 -> getBlockPathType(this.level, var1, var2, var3, var0, this.entityWidth, this.entityHeight, - this.entityDepth, canOpenDoors(), canPassDoors())); - } - - protected double getFloorLevel(BlockPos var0) { - return getFloorLevel(this.level, var0); - } - - @Override - public Target getGoal(double var0, double var2, double var4) { - return new Target(getNode(Mth.floor(var0), Mth.floor(var2), Mth.floor(var4))); - } - - @Override - public int getNeighbors(Node[] var0, Node var1) { - int var2 = 0; - int var3 = 0; - BlockPathTypes var4 = getCachedBlockType(this.mob, var1.x, var1.y + 1, var1.z); - BlockPathTypes var5 = getCachedBlockType(this.mob, var1.x, var1.y, var1.z); - if (this.mob.getPathfindingMalus(var4) >= 0.0F && var5 != BlockPathTypes.STICKY_HONEY) - var3 = Mth.floor(Math.max(1.0F, this.mob.maxUpStep)); - double var6 = getFloorLevel(new BlockPos(var1.x, var1.y, var1.z)); - Node var8 = findAcceptedNode(var1.x, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); - if (isNeighborValid(var8, var1)) - var0[var2++] = var8; - Node var9 = findAcceptedNode(var1.x - 1, var1.y, var1.z, var3, var6, Direction.WEST, var5); - if (isNeighborValid(var9, var1)) - var0[var2++] = var9; - Node var10 = findAcceptedNode(var1.x + 1, var1.y, var1.z, var3, var6, Direction.EAST, var5); - if (isNeighborValid(var10, var1)) - var0[var2++] = var10; - Node var11 = findAcceptedNode(var1.x, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); - if (isNeighborValid(var11, var1)) - var0[var2++] = var11; - Node var12 = findAcceptedNode(var1.x - 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); - if (isDiagonalValid(var1, var9, var11, var12)) - var0[var2++] = var12; - Node var13 = findAcceptedNode(var1.x + 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); - if (isDiagonalValid(var1, var10, var11, var13)) - var0[var2++] = var13; - Node var14 = findAcceptedNode(var1.x - 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); - if (isDiagonalValid(var1, var9, var8, var14)) - var0[var2++] = var14; - Node var15 = findAcceptedNode(var1.x + 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); - if (isDiagonalValid(var1, var10, var8, var15)) - var0[var2++] = var15; - return var2; - } - - @Override - public Node getStart() { - BlockPos.MutableBlockPos var1 = new BlockPos.MutableBlockPos(); - int var0 = this.mob.getBlockY(); - BlockState var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); - if (this.mob.canStandOnFluid(var2.getFluidState())) { - while (this.mob.canStandOnFluid(var2.getFluidState())) { - var0++; - var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); - } - var0--; - } else if (canFloat() && this.mob.isInWater()) { - while (var2.is(Blocks.WATER) || var2.getFluidState() == Fluids.WATER.getSource(false)) { - var0++; - var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); - } - var0--; - } else if (this.mob.isOnGround()) { - var0 = Mth.floor(this.mob.getY() + 0.5D); - } else { - BlockPos blockPos = this.mob.blockPosition(); - while ((this.level.getBlockState(blockPos).isAir() || this.level.getBlockState(blockPos) - .isPathfindable(this.level, blockPos, PathComputationType.LAND)) - && blockPos.getY() > this.mob.level.getMinBuildHeight()) - blockPos = blockPos.below(); - var0 = blockPos.above().getY(); - } - BlockPos var3 = this.mob.blockPosition(); - BlockPathTypes var4 = getCachedBlockType(this.mob, var3.getX(), var0, var3.getZ()); - if (this.mob.getPathfindingMalus(var4) < 0.0F) { - AABB aABB = this.mob.getBoundingBox(); - if (hasPositiveMalus(var1.set(aABB.minX, var0, aABB.minZ)) - || hasPositiveMalus(var1.set(aABB.minX, var0, aABB.maxZ)) - || hasPositiveMalus(var1.set(aABB.maxX, var0, aABB.minZ)) - || hasPositiveMalus(var1.set(aABB.maxX, var0, aABB.maxZ))) { - Node var6 = getNode(var1); - var6.type = getBlockPathType(this.mob, var6.asBlockPos()); - var6.costMalus = this.mob.getPathfindingMalus(var6.type); - return var6; - } - } - Node var5 = getNode(var3.getX(), var0, var3.getZ()); - var5.type = getBlockPathType(this.mob, var5.asBlockPos()); - var5.costMalus = this.mob.getPathfindingMalus(var5.type); - return var5; - } - - private boolean hasCollisions(AABB var0) { - return this.m.computeIfAbsent(var0, var1 -> !this.level.noCollision(this.mob, var0)); - } - - private boolean hasPositiveMalus(BlockPos var0) { - BlockPathTypes var1 = getBlockPathType(this.mob, var0); - return (this.mob.getPathfindingMalus(var1) >= 0.0F); - } - - protected boolean isAmphibious() { - return false; - } - - protected boolean isDiagonalValid(Node var0, Node var1, Node var2, Node var3) { - if (var3 == null || var2 == null || var1 == null || var3.closed) - return false; - if (var2.y > var0.y || var1.y > var0.y) - return false; - if (var1.type == BlockPathTypes.WALKABLE_DOOR || var2.type == BlockPathTypes.WALKABLE_DOOR - || var3.type == BlockPathTypes.WALKABLE_DOOR) - return false; - boolean var4 = (var2.type == BlockPathTypes.FENCE && var1.type == BlockPathTypes.FENCE - && this.mob.getBbWidth() < 0.5D); - return (var3.costMalus >= 0.0F && (var2.y < var0.y || var2.costMalus >= 0.0F || var4) - && (var1.y < var0.y || var1.costMalus >= 0.0F || var4)); - } - - protected boolean isNeighborValid(Node var0, Node var1) { - return (var0 != null && !var0.closed && (var0.costMalus >= 0.0F || var1.costMalus < 0.0F)); - } - - @Override - public void prepare(PathNavigationRegion var0, Mob var1) { - super.prepare(var0, var1); - this.oldWaterCost = var1.getPathfindingMalus(BlockPathTypes.WATER); - } - - public static BlockPathTypes checkNeighbourBlocks(BlockGetter var0, BlockPos.MutableBlockPos var1, - BlockPathTypes var2) { - int var3 = var1.getX(); - int var4 = var1.getY(); - int var5 = var1.getZ(); - for (int var6 = -1; var6 <= 1; var6++) { - for (int var7 = -1; var7 <= 1; var7++) { - for (int var8 = -1; var8 <= 1; var8++) { - if (var6 != 0 || var8 != 0) { - var1.set(var3 + var6, var4 + var7, var5 + var8); - BlockState var9 = var0.getBlockState(var1); - if (var9.is(Blocks.CACTUS)) - return BlockPathTypes.DANGER_CACTUS; - if (var9.is(Blocks.SWEET_BERRY_BUSH)) - return BlockPathTypes.DANGER_OTHER; - if (isBurningBlock(var9)) - return BlockPathTypes.DANGER_FIRE; - if (var0.getFluidState(var1).is(FluidTags.WATER)) - return BlockPathTypes.WATER_BORDER; - } - } - } - } - return var2; - } - - protected static BlockPathTypes getBlockPathTypeRaw(BlockGetter var0, BlockPos var1) { - BlockState var2 = var0.getBlockState(var1); - Block var3 = var2.getBlock(); - Material var4 = var2.getMaterial(); - if (var2.isAir()) - return BlockPathTypes.OPEN; - if (var2.is(BlockTags.TRAPDOORS) || var2.is(Blocks.LILY_PAD) || var2.is(Blocks.BIG_DRIPLEAF)) - return BlockPathTypes.TRAPDOOR; - if (var2.is(Blocks.POWDER_SNOW)) - return BlockPathTypes.POWDER_SNOW; - if (var2.is(Blocks.CACTUS)) - return BlockPathTypes.DAMAGE_CACTUS; - if (var2.is(Blocks.SWEET_BERRY_BUSH)) - return BlockPathTypes.DAMAGE_OTHER; - if (var2.is(Blocks.HONEY_BLOCK)) - return BlockPathTypes.STICKY_HONEY; - if (var2.is(Blocks.COCOA)) - return BlockPathTypes.COCOA; - FluidState var5 = var0.getFluidState(var1); - if (var5.is(FluidTags.LAVA)) - return BlockPathTypes.LAVA; - if (isBurningBlock(var2)) - return BlockPathTypes.DAMAGE_FIRE; - if (DoorBlock.isWoodenDoor(var2) && !((Boolean) var2.getValue((Property) DoorBlock.OPEN)).booleanValue()) - return BlockPathTypes.DOOR_WOOD_CLOSED; - if (var3 instanceof DoorBlock && var4 == Material.METAL - && !((Boolean) var2.getValue((Property) DoorBlock.OPEN)).booleanValue()) - return BlockPathTypes.DOOR_IRON_CLOSED; - if (var3 instanceof DoorBlock && ((Boolean) var2.getValue((Property) DoorBlock.OPEN)).booleanValue()) - return BlockPathTypes.DOOR_OPEN; - if (var3 instanceof net.minecraft.world.level.block.BaseRailBlock) - return BlockPathTypes.RAIL; - if (var3 instanceof net.minecraft.world.level.block.LeavesBlock) - return BlockPathTypes.LEAVES; - if (var2.is(BlockTags.FENCES) || var2.is(BlockTags.WALLS) || (var3 instanceof FenceGateBlock - && !((Boolean) var2.getValue((Property) FenceGateBlock.OPEN)).booleanValue())) - return BlockPathTypes.FENCE; - if (!var2.isPathfindable(var0, var1, PathComputationType.LAND)) - return BlockPathTypes.BLOCKED; - if (var5.is(FluidTags.WATER)) - return BlockPathTypes.WATER; - return BlockPathTypes.OPEN; - } - - public static BlockPathTypes getBlockPathTypeStatic(BlockGetter var0, BlockPos.MutableBlockPos var1) { - int var2 = var1.getX(); - int var3 = var1.getY(); - int var4 = var1.getZ(); - BlockPathTypes var5 = getBlockPathTypeRaw(var0, var1); - if (var5 == BlockPathTypes.OPEN && var3 >= var0.getMinBuildHeight() + 1) { - BlockPathTypes var6 = getBlockPathTypeRaw(var0, var1.set(var2, var3 - 1, var4)); - var5 = (var6 == BlockPathTypes.WALKABLE || var6 == BlockPathTypes.OPEN || var6 == BlockPathTypes.WATER - || var6 == BlockPathTypes.LAVA) ? BlockPathTypes.OPEN : BlockPathTypes.WALKABLE; - if (var6 == BlockPathTypes.DAMAGE_FIRE) - var5 = BlockPathTypes.DAMAGE_FIRE; - if (var6 == BlockPathTypes.DAMAGE_CACTUS) - var5 = BlockPathTypes.DAMAGE_CACTUS; - if (var6 == BlockPathTypes.DAMAGE_OTHER) - var5 = BlockPathTypes.DAMAGE_OTHER; - if (var6 == BlockPathTypes.STICKY_HONEY) - var5 = BlockPathTypes.STICKY_HONEY; - } - if (var5 == BlockPathTypes.WALKABLE) - var5 = checkNeighbourBlocks(var0, var1.set(var2, var3, var4), var5); - return var5; - } - - public static double getFloorLevel(BlockGetter var0, BlockPos var1) { - BlockPos var2 = var1.below(); - VoxelShape var3 = var0.getBlockState(var2).getCollisionShape(var0, var2); - return var2.getY() + (var3.isEmpty() ? 0.0D : var3.max(Direction.Axis.Y)); - } - - public static boolean isBurningBlock(BlockState var0) { - return (var0.is(BlockTags.FIRE) || var0.is(Blocks.LAVA) || var0.is(Blocks.MAGMA_BLOCK) - || CampfireBlock.isLitCampfire(var0) || var0.is(Blocks.LAVA_CAULDRON)); - } -} diff --git a/v1_19_R2/pom.xml b/v1_19_R3/pom.xml similarity index 92% rename from v1_19_R2/pom.xml rename to v1_19_R3/pom.xml index e57b73f20..4705808da 100644 --- a/v1_19_R2/pom.xml +++ b/v1_19_R3/pom.xml @@ -4,12 +4,12 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT - citizens-v1_19_R2 + citizens-v1_19_R3 UTF-8 - 1.19.3-R0.1-SNAPSHOT + 1.19.4-R0.1-SNAPSHOT @@ -30,13 +30,7 @@ ${craftbukkit.version} remapped-mojang provided - - - com.viaversion - viaversion-api - 4.5.1 - provided - + clean package install diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java index 8ea53c8de..ff9a70d41 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AllayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AllayController.java @@ -1,9 +1,9 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftAllay; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftAllay; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import com.google.common.collect.Lists; @@ -11,9 +11,9 @@ import com.mojang.datafixers.util.Pair; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ArmorStandController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java similarity index 92% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ArmorStandController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java index 3c4f3a59a..e8a0077b1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ArmorStandController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ArmorStandController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftArmorStand; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftArmorStand; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java index 47df5821f..92728212a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/AxolotlController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/AxolotlController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftAxolotl; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftAxolotl; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import com.mojang.serialization.Dynamic; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java index 403d842c8..378f66dc9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BatController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBat; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftBat; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java index 983bc2dce..b54651de4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BeeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BeeController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBee; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftBee; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java index d71d039a6..dcbd7e130 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/BlazeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/BlazeController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBlaze; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftBlaze; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java index e23a6a4f0..a406f74e5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CamelController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CamelController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCamel; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftCamel; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java index 6686318df..ae7a4512e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CatController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCat; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftCat; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java index 5597a5ea4..5836ef449 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CaveSpiderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CaveSpiderController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCaveSpider; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftCaveSpider; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java index 7b55b3b69..f16c1dd41 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ChickenController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ChickenController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftChicken; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftChicken; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java index 750dac1e3..be47de44f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CodController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CodController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCod; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftCod; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java index b23dfe1f4..34154a5fa 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CowController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCow; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftCow; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java index d3f2590e8..3ce84ff5a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/CreeperController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/CreeperController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftCreeper; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftCreeper; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java index 900c27250..71212ab92 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DolphinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DolphinController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDolphin; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftDolphin; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java index 6546d4628..8f9772886 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/DrownedController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/DrownedController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDrowned; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftDrowned; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java index 3d243ae36..2c1515a72 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EnderDragonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EnderDragonController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEnderDragon; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEnderDragon; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java index 8f98f6d46..0d4db524f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermanController.java @@ -1,18 +1,18 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import java.util.Optional; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEnderman; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEnderman; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java index 2ae991583..e5bef88ab 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EndermiteController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EndermiteController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEndermite; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEndermite; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EntityHumanNPC.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java similarity index 96% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EntityHumanNPC.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java index 00fbdad1b..28526afe9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EntityHumanNPC.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import java.io.IOException; import java.lang.invoke.MethodHandle; @@ -8,8 +8,8 @@ import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.metadata.MetadataValue; @@ -24,20 +24,19 @@ import com.mojang.datafixers.util.Pair; import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; - import net.citizensnpcs.api.event.NPCKnockbackEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC.NPCUpdate; import net.citizensnpcs.api.trait.trait.Inventory; import net.citizensnpcs.api.util.SpigotUtil; -import net.citizensnpcs.nms.v1_19_R2.network.EmptyNetHandler; -import net.citizensnpcs.nms.v1_19_R2.network.EmptyNetworkManager; -import net.citizensnpcs.nms.v1_19_R2.util.EmptyAdvancementDataPlayer; -import net.citizensnpcs.nms.v1_19_R2.util.EmptyServerStatsCounter; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerControllerJump; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerNavigation; +import net.citizensnpcs.nms.v1_19_R3.network.EmptyNetHandler; +import net.citizensnpcs.nms.v1_19_R3.network.EmptyNetworkManager; +import net.citizensnpcs.nms.v1_19_R3.util.EmptyAdvancementDataPlayer; +import net.citizensnpcs.nms.v1_19_R3.util.EmptyServerStatsCounter; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerControllerJump; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerNavigation; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.npc.skin.SkinPacketTracker; @@ -108,7 +107,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable } public boolean canCutCorner(BlockPathTypes pathtype) { - return (pathtype != BlockPathTypes.DANGER_FIRE && pathtype != BlockPathTypes.DANGER_CACTUS + return (pathtype != BlockPathTypes.DANGER_FIRE && pathtype != BlockPathTypes.DANGER_POWDER_SNOW && pathtype != BlockPathTypes.DANGER_OTHER && pathtype != BlockPathTypes.WALKABLE_DOOR); } @@ -144,8 +143,6 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable }, 15); // give enough time for death and smoke animation } - - @Override public void doTick() { if (npc == null) { diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java index a06f44140..228ad1c4e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/EvokerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EvokerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEvoker; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEvoker; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java index b5806720e..a4531b721 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FoxController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FoxController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFox; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftFox; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java index 99f524b10..19b72f31f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/FrogController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/FrogController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFrog; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftFrog; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java index 8f8c7cd58..7a9c3f896 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GhastController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GhastController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGhast; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftGhast; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java index 886fff391..27c2c2823 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GiantController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GiantController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGiant; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftGiant; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java index 6e1817c2f..dfdfa6aa7 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GlowSquidController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GlowSquidController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGlowSquid; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftGlowSquid; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java index ff5266dcc..5feafc106 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GoatController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGoat; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftGoat; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java index b381606fb..f78cb9514 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGuardian; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftGuardian; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java index b0bd8ad82..ca594ddfe 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/GuardianElderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/GuardianElderController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftElderGuardian; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftElderGuardian; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java index 8e68f0c48..daa7b7a27 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HoglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HoglinController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftHoglin; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftHoglin; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java index 22622db55..2cbd26f1d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftHorse; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftHorse; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.Controllable; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java index 837d15e9f..d9b76f05b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseDonkeyController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseDonkeyController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDonkey; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftDonkey; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.Controllable; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java index 7a4a3b838..72d437918 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseMuleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseMuleController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMule; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMule; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.Controllable; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java index 73a2e92de..56c2ef956 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseSkeletonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseSkeletonController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSkeletonHorse; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSkeletonHorse; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.Controllable; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java index a07864bcb..c88100a9a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HorseZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HorseZombieController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftZombieHorse; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftZombieHorse; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.Controllable; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HumanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java similarity index 96% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HumanController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java index 5ffb8a432..f8ae20a0b 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/HumanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/HumanController.java @@ -1,10 +1,10 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java index 58a7338e0..a01d6c8d5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IllusionerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IllusionerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftIllusioner; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftIllusioner; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java index 9840bcf81..5663ec571 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/IronGolemController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/IronGolemController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftIronGolem; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftIronGolem; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java index 5aa0d8c61..d62321201 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/LlamaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/LlamaController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftLlama; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftLlama; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java index 84c995b8d..36811c106 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MagmaCubeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MagmaCubeController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMagmaCube; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMagmaCube; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MobEntityController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MobEntityController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java index 338c4da5e..74fe46507 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MobEntityController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MobEntityController.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import java.lang.reflect.Constructor; import java.util.Map; @@ -6,12 +6,12 @@ import java.util.WeakHashMap; import org.bukkit.Location; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; import org.bukkit.entity.Entity; import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.trait.ScoreboardTrait; import net.minecraft.world.entity.EntityType; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java index b6cab6cf4..266be4de2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/MushroomCowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/MushroomCowController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMushroomCow; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMushroomCow; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java index ecd2fada4..0470e55c6 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/OcelotController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/OcelotController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftOcelot; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftOcelot; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java index fc69d318e..f55e8139d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PandaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PandaController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPanda; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPanda; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java index d22c822da..0d3596775 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ParrotController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ParrotController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftParrot; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftParrot; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java index 0cd01b3bb..5c4a7e14c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PhantomController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PhantomController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPhantom; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPhantom; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java index 92ce75308..7e864bc5a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPig; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPig; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java index 65906262f..db9efb1ca 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PigZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PigZombieController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPigZombie; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPigZombie; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java index 8aade1360..e41a11259 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinBruteController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinBruteController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPiglinBrute; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPiglinBrute; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java index 327d8cde7..acc14eea8 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PiglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PiglinController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPiglin; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPiglin; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java index a6e13a81a..5a6d7fe70 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PillagerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPillager; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPillager; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java index 5179e3ba6..f0681a672 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PolarBearController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PolarBearController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPolarBear; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPolarBear; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java index 5026835aa..22ac5b168 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/PufferFishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/PufferFishController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPufferFish; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPufferFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.versioned.PufferFishTrait; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java index 49a314780..3f95818eb 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RabbitController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RabbitController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftRabbit; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftRabbit; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java index 34cab7905..5c93c760f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/RavagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/RavagerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftRavager; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftRavager; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java index f1a775db7..20362fbe3 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SalmonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SalmonController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSalmon; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSalmon; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java index 476be96f8..7ff5f1049 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SheepController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SheepController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSheep; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSheep; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java index ec9290fa3..c2c2a418e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ShulkerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ShulkerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftShulker; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftShulker; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java index b2fd86bf9..dfca722ef 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SilverfishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SilverfishController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSilverfish; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSilverfish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java index 11b863c6f..fd9decebf 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSkeleton; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSkeleton; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java index 5674372fd..acea925f9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonStrayController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonStrayController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftStray; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftStray; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java index d7ca379a3..c6fafbbd7 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SkeletonWitherController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SkeletonWitherController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWitherSkeleton; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWitherSkeleton; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java index 54864d68d..afa193f59 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SlimeController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SlimeController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSlime; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSlime; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java new file mode 100644 index 000000000..533454779 --- /dev/null +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnifferController.java @@ -0,0 +1,236 @@ +package net.citizensnpcs.nms.v1_19_R3.entity; + +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSniffer; +import org.bukkit.util.Vector; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.npc.CitizensNPC; +import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.NMS; +import net.citizensnpcs.util.Util; +import net.minecraft.core.BlockPos; +import net.minecraft.core.PositionImpl; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.tags.TagKey; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.animal.sniffer.Sniffer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.vehicle.AbstractMinecart; +import net.minecraft.world.entity.vehicle.Boat; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; + +public class SnifferController extends MobEntityController { + public SnifferController() { + super(EntitySnifferNPC.class); + } + + @Override + public org.bukkit.entity.Sniffer getBukkitEntity() { + return (org.bukkit.entity.Sniffer) super.getBukkitEntity(); + } + + public static class EntitySnifferNPC extends Sniffer implements NPCHolder { + private final CitizensNPC npc; + + public EntitySnifferNPC(EntityType types, Level level) { + this(types, level, null); + } + + public EntitySnifferNPC(EntityType types, Level level, NPC npc) { + super(types, level); + this.npc = (CitizensNPC) npc; + } + + @Override + protected boolean canRide(Entity entity) { + if (npc != null && (entity instanceof Boat || entity instanceof AbstractMinecart)) { + return !npc.isProtected(); + } + return super.canRide(entity); + } + + @Override + public boolean causeFallDamage(float f, float f1, DamageSource damagesource) { + if (npc == null || !npc.isFlyable()) { + return super.causeFallDamage(f, f1, damagesource); + } + return false; + } + + @Override + public void checkDespawn() { + if (npc == null) { + super.checkDespawn(); + } + } + + @Override + protected void checkFallDamage(double d0, boolean flag, BlockState iblockdata, BlockPos blockposition) { + if (npc == null || !npc.isFlyable()) { + super.checkFallDamage(d0, flag, iblockdata, blockposition); + } + } + + @Override + public void customServerAiStep() { + super.customServerAiStep(); + if (npc != null) { + NMSImpl.updateMinecraftAIState(npc, this); + npc.update(); + } + } + + @Override + protected SoundEvent getAmbientSound() { + return NMSImpl.getSoundEffect(npc, super.getAmbientSound(), NPC.Metadata.AMBIENT_SOUND); + } + + @Override + public CraftEntity getBukkitEntity() { + if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { + NMSImpl.setBukkitEntity(this, new SnifferNPC(this)); + } + return super.getBukkitEntity(); + } + + @Override + protected SoundEvent getDeathSound() { + return NMSImpl.getSoundEffect(npc, super.getDeathSound(), NPC.Metadata.DEATH_SOUND); + } + + @Override + protected SoundEvent getHurtSound(DamageSource damagesource) { + return NMSImpl.getSoundEffect(npc, super.getHurtSound(damagesource), NPC.Metadata.HURT_SOUND); + } + + @Override + public int getMaxFallDistance() { + return NMS.getFallDistance(npc, super.getMaxFallDistance()); + } + + @Override + public NPC getNPC() { + return npc; + } + + @Override + public boolean isLeashed() { + return NMSImpl.isLeashed(npc, super::isLeashed, this); + } + + @Override + public boolean isPushable() { + return npc == null ? super.isPushable() + : npc.data(). get(NPC.Metadata.COLLIDABLE, !npc.isProtected()); + } + + @Override + public void knockback(double strength, double dx, double dz) { + NMS.callKnockbackEvent(npc, (float) strength, dx, dz, (evt) -> super.knockback((float) evt.getStrength(), + evt.getKnockbackVector().getX(), evt.getKnockbackVector().getZ())); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + + @Override + public InteractionResult mobInteract(Player entityhuman, InteractionHand enumhand) { + if (npc == null || !npc.isProtected()) + return super.mobInteract(entityhuman, enumhand); + ItemStack itemstack = entityhuman.getItemInHand(enumhand); + if (itemstack.getItem() == Items.BUCKET && !entityhuman.getAbilities().instabuild && !this.isBaby()) { + return InteractionResult.FAIL; + } + return super.mobInteract(entityhuman, enumhand); + } + + @Override + public boolean onClimbable() { + if (npc == null || !npc.isFlyable()) { + return super.onClimbable(); + } else { + return false; + } + } + + @Override + public void onSyncedDataUpdated(EntityDataAccessor datawatcherobject) { + if (npc == null) { + super.onSyncedDataUpdated(datawatcherobject); + return; + } + NMSImpl.checkAndUpdateHeight(this, datawatcherobject, super::onSyncedDataUpdated); + } + + @Override + public void push(double x, double y, double z) { + Vector vector = Util.callPushEvent(npc, x, y, z); + if (vector != null) { + super.push(vector.getX(), vector.getY(), vector.getZ()); + } + } + + @Override + public void push(Entity entity) { + // this method is called by both the entities involved - cancelling + // it will not stop the NPC from moving. + super.push(entity); + if (npc != null) { + Util.callCollisionEvent(npc, entity.getBukkitEntity()); + } + } + + @Override + public boolean save(CompoundTag save) { + return npc == null ? super.save(save) : false; + } + + @Override + public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { + if (npc == null) + return super.teleportTo(worldserver, location); + return NMSImpl.teleportAcrossWorld(this, worldserver, location); + } + + @Override + public void travel(Vec3 vec3d) { + if (npc == null || !npc.isFlyable()) { + super.travel(vec3d); + } else { + NMSImpl.flyingMoveLogic(this, vec3d); + } + } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + } + } + + public static class SnifferNPC extends CraftSniffer implements ForwardingNPCHolder { + public SnifferNPC(EntitySnifferNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + } + } +} diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java index 4cd8575f2..55551bf64 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SnowmanController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SnowmanController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSnowman; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSnowman; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java index eac71958b..a29c476da 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SpiderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SpiderController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSpider; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSpider; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java index af567c44a..ba5b5a711 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/SquidController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/SquidController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSquid; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSquid; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java index 849412bf3..08e47f6b4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/StriderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/StriderController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftStrider; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftStrider; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java index a35e0e0d6..995359bdd 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TadpoleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TadpoleController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTadpole; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTadpole; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java index cbf3e5a66..29d7a5f64 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TraderLlamaController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TraderLlamaController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTraderLlama; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTraderLlama; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.trait.HorseModifiers; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java index 7114e2da5..6ca120e67 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TropicalFishController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TropicalFishController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTropicalFish; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTropicalFish; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java index 45d95603e..d24062e96 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/TurtleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/TurtleController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTurtle; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTurtle; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; -import net.citizensnpcs.nms.v1_19_R2.util.PlayerMoveControl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.PlayerMoveControl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java index ac55a8632..5f364c9db 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VexController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VexController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVex; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftVex; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java index 3474023b6..5db8e6851 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VillagerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVillager; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftVillager; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java index 98449618c..cbc769b52 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/VindicatorController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/VindicatorController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVindicator; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftVindicator; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java index 7325ca003..edf0d6c71 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WanderingTraderController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WanderingTraderController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWanderingTrader; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWanderingTrader; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java index 81b82f4be..f53db69b0 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WardenController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WardenController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWarden; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWarden; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java index d7c622e79..c355189f4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitchController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitchController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWitch; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWitch; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java index 82b2c58c3..dcc506a77 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WitherController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WitherController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWither; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWither; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java index bbf516265..e809812dd 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/WolfController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/WolfController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWolf; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWolf; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java index 882f46285..dde99c8b3 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZoglinController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZoglinController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftZoglin; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftZoglin; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java index d2a8be59b..348bad320 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftZombie; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftZombie; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java index d0dabb23b..abddaf495 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieHuskController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieHuskController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftHusk; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftHusk; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java index ead4915ea..ebb7bbde2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/ZombieVillagerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/ZombieVillagerController.java @@ -1,15 +1,15 @@ -package net.citizensnpcs.nms.v1_19_R2.entity; +package net.citizensnpcs.nms.v1_19_R3.entity; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftVillagerZombie; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftVillagerZombie; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java index 0427f6ebb..f3479c73e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/AreaEffectCloudController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/AreaEffectCloudController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftAreaEffectCloud; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftAreaEffectCloud; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java new file mode 100644 index 000000000..10b8dd221 --- /dev/null +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BlockDisplayController.java @@ -0,0 +1,124 @@ +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; + +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftBlockDisplay; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.util.Vector; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.npc.CitizensNPC; +import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.Util; +import net.minecraft.core.PositionImpl; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.Display.BlockDisplay; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; + +public class BlockDisplayController extends MobEntityController { + public BlockDisplayController() { + super(EntityBlockDisplayNPC.class); + } + + @Override + public org.bukkit.entity.BlockDisplay getBukkitEntity() { + return (org.bukkit.entity.BlockDisplay) super.getBukkitEntity(); + } + + public static class BlockDisplayNPC extends CraftBlockDisplay implements ForwardingNPCHolder { + public BlockDisplayNPC(EntityBlockDisplayNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + } + } + + public static class EntityBlockDisplayNPC extends BlockDisplay implements NPCHolder { + private final CitizensNPC npc; + + public EntityBlockDisplayNPC(EntityType types, Level level) { + this(types, level, null); + } + + public EntityBlockDisplayNPC(EntityType types, Level level, NPC npc) { + super(types, level); + this.npc = (CitizensNPC) npc; + } + + @Override + public CraftEntity getBukkitEntity() { + if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { + NMSImpl.setBukkitEntity(this, new BlockDisplayNPC(this)); + } + return super.getBukkitEntity(); + } + + @Override + public NPC getNPC() { + return npc; + } + + @Override + public boolean isPushable() { + return npc == null ? super.isPushable() + : npc.data(). get(NPC.Metadata.COLLIDABLE, !npc.isProtected()); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + + @Override + public void push(double x, double y, double z) { + Vector vector = Util.callPushEvent(npc, x, y, z); + if (vector != null) { + super.push(vector.getX(), vector.getY(), vector.getZ()); + } + } + + @Override + public void push(Entity entity) { + // this method is called by both the entities involved - cancelling + // it will not stop the NPC from moving. + super.push(entity); + if (npc != null) { + Util.callCollisionEvent(npc, entity.getBukkitEntity()); + } + } + + @Override + public boolean save(CompoundTag save) { + return npc == null ? super.save(save) : false; + } + + @Override + public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { + if (npc == null) + return super.teleportTo(worldserver, location); + return NMSImpl.teleportAcrossWorld(this, worldserver, location); + } + + @Override + public void tick() { + if (npc != null) { + npc.update(); + } else { + super.tick(); + } + } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + } + } +} diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java index e2ebc20ed..f68f74dbe 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/BoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/BoatController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftBoat; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftBoat; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java similarity index 95% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java index 4e0e27f08..7db0d712f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ChestBoatController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ChestBoatController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftChestBoat; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftChestBoat; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java similarity index 90% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java index 840548dd4..be213fd80 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/DragonFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/DragonFireballController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftDragonFireball; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftDragonFireball; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java similarity index 90% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java index 960bcf7bb..39a750135 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EggController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EggController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEgg; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEgg; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java index 8c8424e03..c5e644dcc 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderCrystalController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderCrystalController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEnderCrystal; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEnderCrystal; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java index d629ab16e..34ea023c9 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderPearlController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderPearlController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEnderPearl; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEnderPearl; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.entity.EnderPearl; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java index d4ec3971f..19e29d8e2 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EnderSignalController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EnderSignalController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEnderSignal; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEnderSignal; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.entity.EnderSignal; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java similarity index 90% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java index 8d6e548a6..7bd9e7693 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/EvokerFangsController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/EvokerFangsController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEvokerFangs; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEvokerFangs; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java index c7c6d71f1..a7ff2813e 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ExperienceOrbController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ExperienceOrbController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftExperienceOrb; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftExperienceOrb; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java similarity index 92% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java index f741a2f6e..e69bde449 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FallingBlockController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FallingBlockController.java @@ -1,18 +1,18 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFallingBlock; -import org.bukkit.craftbukkit.v1_19_R2.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftFallingBlock; +import org.bukkit.craftbukkit.v1_19_R3.util.CraftMagicNumbers; import org.bukkit.entity.FallingBlock; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java index 55b6213b5..b61a9222f 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FireworkController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FireworkController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFirework; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftFirework; import org.bukkit.entity.Firework; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java similarity index 91% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java index 9f97a4fe2..08e978edb 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/FishingHookController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/FishingHookController.java @@ -1,21 +1,21 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import java.util.UUID; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftFishHook; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftFishHook; import org.bukkit.entity.FishHook; import org.bukkit.util.Vector; import com.mojang.authlib.GameProfile; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java index 27b39b12b..4979c8284 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/GlowItemFrameController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/GlowItemFrameController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftGlowItemFrame; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftGlowItemFrame; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ItemFrameController.EntityItemFrameNPC; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ItemFrameController.EntityItemFrameNPC; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; @@ -38,7 +38,7 @@ public class GlowItemFrameController extends MobEntityController { org.bukkit.entity.Entity e = super.createEntity(at, npc); GlowItemFrame item = (GlowItemFrame) ((CraftEntity) e).getHandle(); item.setDirection(Direction.EAST); - item.pos = new BlockPos(at.getX(), at.getY(), at.getZ()); + item.pos = new BlockPos(at.getBlockX(), at.getBlockY(), at.getBlockZ()); return e; } diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java similarity index 91% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java index 40db0fac8..00d2c6121 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemController.java @@ -1,18 +1,18 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftItem; -import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftItem; +import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack; import org.bukkit.entity.Item; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java new file mode 100644 index 000000000..e7764343d --- /dev/null +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemDisplayController.java @@ -0,0 +1,124 @@ +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; + +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftItemDisplay; +import org.bukkit.util.Vector; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.npc.CitizensNPC; +import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.Util; +import net.minecraft.core.PositionImpl; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.Display.ItemDisplay; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; + +public class ItemDisplayController extends MobEntityController { + public ItemDisplayController() { + super(EntityItemDisplayNPC.class); + } + + @Override + public org.bukkit.entity.ItemDisplay getBukkitEntity() { + return (org.bukkit.entity.ItemDisplay) super.getBukkitEntity(); + } + + public static class EntityItemDisplayNPC extends ItemDisplay implements NPCHolder { + private final CitizensNPC npc; + + public EntityItemDisplayNPC(EntityType types, Level level) { + this(types, level, null); + } + + public EntityItemDisplayNPC(EntityType types, Level level, NPC npc) { + super(types, level); + this.npc = (CitizensNPC) npc; + } + + @Override + public CraftEntity getBukkitEntity() { + if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { + NMSImpl.setBukkitEntity(this, new ItemDisplayNPC(this)); + } + return super.getBukkitEntity(); + } + + @Override + public NPC getNPC() { + return npc; + } + + @Override + public boolean isPushable() { + return npc == null ? super.isPushable() + : npc.data(). get(NPC.Metadata.COLLIDABLE, !npc.isProtected()); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + + @Override + public void push(double x, double y, double z) { + Vector vector = Util.callPushEvent(npc, x, y, z); + if (vector != null) { + super.push(vector.getX(), vector.getY(), vector.getZ()); + } + } + + @Override + public void push(Entity entity) { + // this method is called by both the entities involved - cancelling + // it will not stop the NPC from moving. + super.push(entity); + if (npc != null) { + Util.callCollisionEvent(npc, entity.getBukkitEntity()); + } + } + + @Override + public boolean save(CompoundTag save) { + return npc == null ? super.save(save) : false; + } + + @Override + public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { + if (npc == null) + return super.teleportTo(worldserver, location); + return NMSImpl.teleportAcrossWorld(this, worldserver, location); + } + + @Override + public void tick() { + if (npc != null) { + npc.update(); + } else { + super.tick(); + } + } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + } + } + + public static class ItemDisplayNPC extends CraftItemDisplay implements ForwardingNPCHolder { + public ItemDisplayNPC(EntityItemDisplayNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + } + } +} diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java similarity index 90% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java index 4069351f4..f0ee60a59 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ItemFrameController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ItemFrameController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftItemFrame; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftItemFrame; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; @@ -37,7 +37,7 @@ public class ItemFrameController extends MobEntityController { org.bukkit.entity.Entity e = super.createEntity(at, npc); ItemFrame item = (ItemFrame) ((CraftEntity) e).getHandle(); item.setDirection(Direction.EAST); - item.pos = new BlockPos(at.getX(), at.getY(), at.getZ()); + item.pos = new BlockPos(at.getBlockX(), at.getBlockY(), at.getBlockZ()); return e; } diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java index 76ab8929c..67cb78d74 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LargeFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LargeFireballController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftLargeFireball; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftLargeFireball; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java index cacf71b81..37d9b790c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LeashController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LeashController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftLeash; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftLeash; import org.bukkit.entity.LeashHitch; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java similarity index 91% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java index 015f2e0d2..a65442c43 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/LlamaSpitController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/LlamaSpitController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftLlamaSpit; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftLlamaSpit; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java index 2564ea6fc..185ca07de 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MarkerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MarkerController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMarker; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMarker; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java index db0ca2898..f65b947e4 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartChestController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartChestController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMinecartChest; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMinecartChest; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java index b9466a2f4..25ad84b22 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartCommandController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartCommandController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMinecartCommand; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMinecartCommand; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java index 6fa2b9751..900f24ba1 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartFurnaceController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartFurnaceController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMinecartFurnace; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMinecartFurnace; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java index faea8d6c4..5d6322276 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartHopperController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartHopperController.java @@ -1,12 +1,12 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java index 29eeac73c..f04c9d8aa 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartRideableController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartRideableController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftMinecartRideable; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftMinecartRideable; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java index e174936ce..6a80bc064 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartSpawnerController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartSpawnerController.java @@ -1,12 +1,12 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java index b502268d6..5142cf5a6 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/MinecartTNTController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/MinecartTNTController.java @@ -1,12 +1,12 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.entity.Minecart; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java index 9fc5347ad..9fd9c60c7 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/PaintingController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/PaintingController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPainting; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPainting; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java index 5364de60c..f6e90bf8d 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ShulkerBulletController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ShulkerBulletController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftShulkerBullet; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftShulkerBullet; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java index 1f001f88d..aa8cded7a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SmallFireballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SmallFireballController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSmallFireball; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSmallFireball; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java index 3c111058e..d0ca2786a 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SnowballController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SnowballController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftSnowball; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java index 801cff038..fc3908782 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/SpectralArrowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/SpectralArrowController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftArrow; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftArrow; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; import org.bukkit.entity.Arrow; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java index 73f8cb5aa..7bb3fc166 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TNTPrimedController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TNTPrimedController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTNTPrimed; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTNTPrimed; import org.bukkit.entity.TNTPrimed; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java new file mode 100644 index 000000000..09dfc7578 --- /dev/null +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TextDisplayController.java @@ -0,0 +1,124 @@ +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; + +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTextDisplay; +import org.bukkit.util.Vector; + +import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; +import net.citizensnpcs.npc.CitizensNPC; +import net.citizensnpcs.npc.ai.NPCHolder; +import net.citizensnpcs.util.Util; +import net.minecraft.core.PositionImpl; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.Display.TextDisplay; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.AABB; + +public class TextDisplayController extends MobEntityController { + public TextDisplayController() { + super(EntityTextDisplayNPC.class); + } + + @Override + public org.bukkit.entity.TextDisplay getBukkitEntity() { + return (org.bukkit.entity.TextDisplay) super.getBukkitEntity(); + } + + public static class EntityTextDisplayNPC extends TextDisplay implements NPCHolder { + private final CitizensNPC npc; + + public EntityTextDisplayNPC(EntityType types, Level level) { + this(types, level, null); + } + + public EntityTextDisplayNPC(EntityType types, Level level, NPC npc) { + super(types, level); + this.npc = (CitizensNPC) npc; + } + + @Override + public CraftEntity getBukkitEntity() { + if (npc != null && !(super.getBukkitEntity() instanceof NPCHolder)) { + NMSImpl.setBukkitEntity(this, new TextDisplayNPC(this)); + } + return super.getBukkitEntity(); + } + + @Override + public NPC getNPC() { + return npc; + } + + @Override + public boolean isPushable() { + return npc == null ? super.isPushable() + : npc.data(). get(NPC.Metadata.COLLIDABLE, !npc.isProtected()); + } + + @Override + protected AABB makeBoundingBox() { + return NMSBoundingBox.makeBB(npc, super.makeBoundingBox()); + } + + @Override + public void push(double x, double y, double z) { + Vector vector = Util.callPushEvent(npc, x, y, z); + if (vector != null) { + super.push(vector.getX(), vector.getY(), vector.getZ()); + } + } + + @Override + public void push(Entity entity) { + // this method is called by both the entities involved - cancelling + // it will not stop the NPC from moving. + super.push(entity); + if (npc != null) { + Util.callCollisionEvent(npc, entity.getBukkitEntity()); + } + } + + @Override + public boolean save(CompoundTag save) { + return npc == null ? super.save(save) : false; + } + + @Override + public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { + if (npc == null) + return super.teleportTo(worldserver, location); + return NMSImpl.teleportAcrossWorld(this, worldserver, location); + } + + @Override + public void tick() { + if (npc != null) { + npc.update(); + } else { + super.tick(); + } + } + + @Override + public boolean updateFluidHeightAndDoFluidPushing(TagKey tagkey, double d0) { + return NMSImpl.fluidPush(npc, this, () -> super.updateFluidHeightAndDoFluidPushing(tagkey, d0)); + } + } + + public static class TextDisplayNPC extends CraftTextDisplay implements ForwardingNPCHolder { + public TextDisplayNPC(EntityTextDisplayNPC entity) { + super((CraftServer) Bukkit.getServer(), entity); + } + } +} diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java index cb1e219df..03a09bffa 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownExpBottleController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownExpBottleController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftThrownExpBottle; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftThrownExpBottle; import org.bukkit.entity.ThrownExpBottle; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java similarity index 90% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java index 13185a183..4a49d6684 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownPotionController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownPotionController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftThrownPotion; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftThrownPotion; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java index 3f38f2cdb..e3e6cc723 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/ThrownTridentController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/ThrownTridentController.java @@ -1,17 +1,17 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTrident; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTrident; import org.bukkit.entity.Trident; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java index c9d66fc94..145ee1a50 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/TippedArrowController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/TippedArrowController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftTippedArrow; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftTippedArrow; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java similarity index 89% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java index 39d425552..bba145bc5 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/entity/nonliving/WitherSkullController.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/nonliving/WitherSkullController.java @@ -1,16 +1,16 @@ -package net.citizensnpcs.nms.v1_19_R2.entity.nonliving; +package net.citizensnpcs.nms.v1_19_R3.entity.nonliving; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWitherSkull; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWitherSkull; import org.bukkit.util.Vector; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.MobEntityController; -import net.citizensnpcs.nms.v1_19_R2.util.ForwardingNPCHolder; -import net.citizensnpcs.nms.v1_19_R2.util.NMSBoundingBox; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.entity.MobEntityController; +import net.citizensnpcs.nms.v1_19_R3.util.ForwardingNPCHolder; +import net.citizensnpcs.nms.v1_19_R3.util.NMSBoundingBox; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.citizensnpcs.npc.CitizensNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.Util; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/network/EmptyNetHandler.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/network/EmptyNetHandler.java similarity index 92% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/network/EmptyNetHandler.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/network/EmptyNetHandler.java index 7e29c09e0..a94b52312 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/network/EmptyNetHandler.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/network/EmptyNetHandler.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.network; +package net.citizensnpcs.nms.v1_19_R3.network; import net.minecraft.network.Connection; import net.minecraft.network.protocol.Packet; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/network/EmptyNetworkManager.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/network/EmptyNetworkManager.java similarity index 85% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/network/EmptyNetworkManager.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/network/EmptyNetworkManager.java index 10685ee9d..744b93e68 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/network/EmptyNetworkManager.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/network/EmptyNetworkManager.java @@ -1,8 +1,8 @@ -package net.citizensnpcs.nms.v1_19_R2.network; +package net.citizensnpcs.nms.v1_19_R3.network; import java.io.IOException; -import net.citizensnpcs.nms.v1_19_R2.util.NMSImpl; +import net.citizensnpcs.nms.v1_19_R3.util.NMSImpl; import net.minecraft.network.Connection; import net.minecraft.network.PacketSendListener; import net.minecraft.network.protocol.Packet; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensBlockBreaker.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java similarity index 97% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensBlockBreaker.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java index a45599573..25867f5bc 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensBlockBreaker.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensBlockBreaker.java @@ -1,6 +1,6 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; -import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack; import net.citizensnpcs.util.AbstractBlockBreaker; import net.minecraft.core.BlockPos; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java similarity index 98% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java index 5bbd4cb60..d7a528584 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CitizensEntityTracker.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CitizensEntityTracker.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.lang.invoke.MethodHandle; import java.util.Set; @@ -12,7 +12,7 @@ import com.google.common.collect.ForwardingSet; import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; import net.citizensnpcs.npc.ai.NPCHolder; import net.citizensnpcs.util.NMS; import net.minecraft.network.protocol.game.ClientboundAnimatePacket; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CustomEntityRegistry.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CustomEntityRegistry.java similarity index 97% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CustomEntityRegistry.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CustomEntityRegistry.java index 286206c2e..445981f15 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/CustomEntityRegistry.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/CustomEntityRegistry.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.lang.invoke.MethodHandle; import java.util.Iterator; @@ -32,6 +32,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.AreaEffectCloud; +import net.minecraft.world.entity.Display; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.ExperienceOrb; import net.minecraft.world.entity.GlowSquid; @@ -429,6 +430,10 @@ public class CustomEntityRegistry extends DefaultedMappedRegistry> minecraftClassMap.put(EntityType.SHEEP, Sheep.class); minecraftClassMap.put(EntityType.SHULKER, Shulker.class); minecraftClassMap.put(EntityType.SHULKER_BULLET, ShulkerBullet.class); + minecraftClassMap.put(EntityType.SNIFFER, net.minecraft.world.entity.animal.sniffer.Sniffer.class); + minecraftClassMap.put(EntityType.BLOCK_DISPLAY, Display.ItemDisplay.class); + minecraftClassMap.put(EntityType.ITEM_DISPLAY, Display.TextDisplay.class); + minecraftClassMap.put(EntityType.TEXT_DISPLAY, Display.BlockDisplay.class); minecraftClassMap.put(EntityType.SILVERFISH, Silverfish.class); minecraftClassMap.put(EntityType.SKELETON, Skeleton.class); minecraftClassMap.put(EntityType.SKELETON_HORSE, SkeletonHorse.class); diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/EmptyAdvancementDataPlayer.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java similarity index 76% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/EmptyAdvancementDataPlayer.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java index f1b2f4205..6a61adaa8 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/EmptyAdvancementDataPlayer.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyAdvancementDataPlayer.java @@ -1,7 +1,9 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.io.File; import java.lang.invoke.MethodHandle; +import java.util.List; +import java.util.Map; import java.util.Set; import com.mojang.datafixers.DataFixer; @@ -18,7 +20,7 @@ import net.minecraft.server.players.PlayerList; public class EmptyAdvancementDataPlayer extends PlayerAdvancements { public EmptyAdvancementDataPlayer(DataFixer datafixer, PlayerList playerlist, ServerAdvancementManager advancementdataworld, File file, ServerPlayer entityplayer) { - super(datafixer, playerlist, advancementdataworld, CitizensAPI.getDataFolder(), entityplayer); + super(datafixer, playerlist, advancementdataworld, CitizensAPI.getDataFolder().toPath(), entityplayer); this.save(); } @@ -60,17 +62,16 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements { public static void clear(PlayerAdvancements data) { data.stopListening(); - data.advancements.clear(); try { - ((Set) I.invoke(data)).clear(); - ((Set) J.invoke(data)).clear(); - ((Set) K.invoke(data)).clear(); + ((Map) PROGRESS.invoke(data)).clear(); + for (MethodHandle handle : SETS) { + ((Set) handle.invoke(data)).clear(); + } } catch (Throwable e) { e.printStackTrace(); } } - private static final MethodHandle I = NMS.getGetter(PlayerAdvancements.class, "i"); - private static final MethodHandle J = NMS.getGetter(PlayerAdvancements.class, "j"); - private static final MethodHandle K = NMS.getGetter(PlayerAdvancements.class, "k"); + private static final MethodHandle PROGRESS = NMS.getFirstGetter(PlayerAdvancements.class, Map.class); + private static final List SETS = NMS.getFieldsOfType(PlayerAdvancements.class, Set.class); } diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/EmptyServerStatsCounter.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyServerStatsCounter.java similarity index 81% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/EmptyServerStatsCounter.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyServerStatsCounter.java index b86db615d..6bc87448c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/EmptyServerStatsCounter.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/EmptyServerStatsCounter.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import com.mojang.datafixers.DataFixer; @@ -36,7 +36,7 @@ public class EmptyServerStatsCounter extends ServerStatsCounter { @Override protected String toJson() { - return "{\"stats\":{},\"DataVersion\":" + Integer.valueOf(SharedConstants.getCurrentVersion().getWorldVersion()) - + "}"; + return "{\"stats\":{},\"DataVersion\":" + + Integer.valueOf(SharedConstants.getCurrentVersion().getDataVersion().getVersion()) + "}"; } } diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/ForwardingNPCHolder.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java similarity index 93% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/ForwardingNPCHolder.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java index ce0514735..ab1f04370 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/ForwardingNPCHolder.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/ForwardingNPCHolder.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import org.bukkit.entity.Entity; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSBoundingBox.java similarity index 94% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSBoundingBox.java index a33602558..8143ebffc 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSBoundingBox.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSBoundingBox.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.util.function.Supplier; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java similarity index 90% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java index 0b744d6e0..6b4747668 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/NMSImpl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/NMSImpl.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.lang.invoke.MethodHandle; import java.net.SocketAddress; @@ -27,20 +27,20 @@ import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; import org.bukkit.command.BlockCommandSender; -import org.bukkit.craftbukkit.v1_19_R2.CraftServer; -import org.bukkit.craftbukkit.v1_19_R2.CraftSound; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock; -import org.bukkit.craftbukkit.v1_19_R2.boss.CraftBossBar; -import org.bukkit.craftbukkit.v1_19_R2.command.CraftBlockCommandSender; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftWither; -import org.bukkit.craftbukkit.v1_19_R2.event.CraftEventFactory; -import org.bukkit.craftbukkit.v1_19_R2.event.CraftPortalEvent; -import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftInventoryAnvil; -import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftInventoryView; -import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_19_R3.CraftServer; +import org.bukkit.craftbukkit.v1_19_R3.CraftSound; +import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R3.boss.CraftBossBar; +import org.bukkit.craftbukkit.v1_19_R3.command.CraftBlockCommandSender; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_19_R3.entity.CraftWither; +import org.bukkit.craftbukkit.v1_19_R3.event.CraftEventFactory; +import org.bukkit.craftbukkit.v1_19_R3.event.CraftPortalEvent; +import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftInventoryAnvil; +import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftInventoryView; +import org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack; import org.bukkit.entity.EntityType; import org.bukkit.entity.FishHook; import org.bukkit.entity.Player; @@ -68,7 +68,6 @@ import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService; import com.mojang.authlib.yggdrasil.response.MinecraftProfilePropertiesResponse; import com.mojang.util.UUIDTypeAdapter; -import com.viaversion.viaversion.api.Via; import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; @@ -101,123 +100,127 @@ import net.citizensnpcs.api.trait.TraitInfo; import net.citizensnpcs.api.util.BoundingBox; import net.citizensnpcs.api.util.EntityDim; import net.citizensnpcs.api.util.Messaging; -import net.citizensnpcs.nms.v1_19_R2.entity.AllayController; -import net.citizensnpcs.nms.v1_19_R2.entity.ArmorStandController; -import net.citizensnpcs.nms.v1_19_R2.entity.AxolotlController; -import net.citizensnpcs.nms.v1_19_R2.entity.BatController; -import net.citizensnpcs.nms.v1_19_R2.entity.BeeController; -import net.citizensnpcs.nms.v1_19_R2.entity.BlazeController; -import net.citizensnpcs.nms.v1_19_R2.entity.CamelController; -import net.citizensnpcs.nms.v1_19_R2.entity.CatController; -import net.citizensnpcs.nms.v1_19_R2.entity.CaveSpiderController; -import net.citizensnpcs.nms.v1_19_R2.entity.ChickenController; -import net.citizensnpcs.nms.v1_19_R2.entity.CodController; -import net.citizensnpcs.nms.v1_19_R2.entity.CowController; -import net.citizensnpcs.nms.v1_19_R2.entity.CreeperController; -import net.citizensnpcs.nms.v1_19_R2.entity.DolphinController; -import net.citizensnpcs.nms.v1_19_R2.entity.DrownedController; -import net.citizensnpcs.nms.v1_19_R2.entity.EnderDragonController; -import net.citizensnpcs.nms.v1_19_R2.entity.EndermanController; -import net.citizensnpcs.nms.v1_19_R2.entity.EndermiteController; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; -import net.citizensnpcs.nms.v1_19_R2.entity.EvokerController; -import net.citizensnpcs.nms.v1_19_R2.entity.FoxController; -import net.citizensnpcs.nms.v1_19_R2.entity.FrogController; -import net.citizensnpcs.nms.v1_19_R2.entity.GhastController; -import net.citizensnpcs.nms.v1_19_R2.entity.GiantController; -import net.citizensnpcs.nms.v1_19_R2.entity.GlowSquidController; -import net.citizensnpcs.nms.v1_19_R2.entity.GoatController; -import net.citizensnpcs.nms.v1_19_R2.entity.GuardianController; -import net.citizensnpcs.nms.v1_19_R2.entity.GuardianElderController; -import net.citizensnpcs.nms.v1_19_R2.entity.HoglinController; -import net.citizensnpcs.nms.v1_19_R2.entity.HorseController; -import net.citizensnpcs.nms.v1_19_R2.entity.HorseDonkeyController; -import net.citizensnpcs.nms.v1_19_R2.entity.HorseMuleController; -import net.citizensnpcs.nms.v1_19_R2.entity.HorseSkeletonController; -import net.citizensnpcs.nms.v1_19_R2.entity.HorseZombieController; -import net.citizensnpcs.nms.v1_19_R2.entity.HumanController; -import net.citizensnpcs.nms.v1_19_R2.entity.IllusionerController; -import net.citizensnpcs.nms.v1_19_R2.entity.IronGolemController; -import net.citizensnpcs.nms.v1_19_R2.entity.LlamaController; -import net.citizensnpcs.nms.v1_19_R2.entity.MagmaCubeController; -import net.citizensnpcs.nms.v1_19_R2.entity.MushroomCowController; -import net.citizensnpcs.nms.v1_19_R2.entity.OcelotController; -import net.citizensnpcs.nms.v1_19_R2.entity.PandaController; -import net.citizensnpcs.nms.v1_19_R2.entity.ParrotController; -import net.citizensnpcs.nms.v1_19_R2.entity.PhantomController; -import net.citizensnpcs.nms.v1_19_R2.entity.PigController; -import net.citizensnpcs.nms.v1_19_R2.entity.PigZombieController; -import net.citizensnpcs.nms.v1_19_R2.entity.PiglinBruteController; -import net.citizensnpcs.nms.v1_19_R2.entity.PiglinController; -import net.citizensnpcs.nms.v1_19_R2.entity.PillagerController; -import net.citizensnpcs.nms.v1_19_R2.entity.PolarBearController; -import net.citizensnpcs.nms.v1_19_R2.entity.PufferFishController; -import net.citizensnpcs.nms.v1_19_R2.entity.RabbitController; -import net.citizensnpcs.nms.v1_19_R2.entity.RavagerController; -import net.citizensnpcs.nms.v1_19_R2.entity.SalmonController; -import net.citizensnpcs.nms.v1_19_R2.entity.SheepController; -import net.citizensnpcs.nms.v1_19_R2.entity.ShulkerController; -import net.citizensnpcs.nms.v1_19_R2.entity.SilverfishController; -import net.citizensnpcs.nms.v1_19_R2.entity.SkeletonController; -import net.citizensnpcs.nms.v1_19_R2.entity.SkeletonStrayController; -import net.citizensnpcs.nms.v1_19_R2.entity.SkeletonWitherController; -import net.citizensnpcs.nms.v1_19_R2.entity.SlimeController; -import net.citizensnpcs.nms.v1_19_R2.entity.SnowmanController; -import net.citizensnpcs.nms.v1_19_R2.entity.SpiderController; -import net.citizensnpcs.nms.v1_19_R2.entity.SquidController; -import net.citizensnpcs.nms.v1_19_R2.entity.StriderController; -import net.citizensnpcs.nms.v1_19_R2.entity.TadpoleController; -import net.citizensnpcs.nms.v1_19_R2.entity.TraderLlamaController; -import net.citizensnpcs.nms.v1_19_R2.entity.TropicalFishController; -import net.citizensnpcs.nms.v1_19_R2.entity.TurtleController; -import net.citizensnpcs.nms.v1_19_R2.entity.VexController; -import net.citizensnpcs.nms.v1_19_R2.entity.VillagerController; -import net.citizensnpcs.nms.v1_19_R2.entity.VindicatorController; -import net.citizensnpcs.nms.v1_19_R2.entity.WanderingTraderController; -import net.citizensnpcs.nms.v1_19_R2.entity.WardenController; -import net.citizensnpcs.nms.v1_19_R2.entity.WitchController; -import net.citizensnpcs.nms.v1_19_R2.entity.WitherController; -import net.citizensnpcs.nms.v1_19_R2.entity.WolfController; -import net.citizensnpcs.nms.v1_19_R2.entity.ZoglinController; -import net.citizensnpcs.nms.v1_19_R2.entity.ZombieController; -import net.citizensnpcs.nms.v1_19_R2.entity.ZombieHuskController; -import net.citizensnpcs.nms.v1_19_R2.entity.ZombieVillagerController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.AreaEffectCloudController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.BoatController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ChestBoatController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.DragonFireballController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.EggController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.EnderCrystalController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.EnderPearlController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.EnderSignalController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.EvokerFangsController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.FallingBlockController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.FireworkController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.FishingHookController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.GlowItemFrameController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ItemController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ItemFrameController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.LargeFireballController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.LeashController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.LlamaSpitController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MarkerController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MinecartChestController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MinecartCommandController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MinecartFurnaceController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MinecartHopperController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MinecartRideableController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.MinecartTNTController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.PaintingController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ShulkerBulletController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.SmallFireballController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.SnowballController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.SpectralArrowController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.TNTPrimedController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ThrownExpBottleController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ThrownPotionController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.ThrownTridentController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.TippedArrowController; -import net.citizensnpcs.nms.v1_19_R2.entity.nonliving.WitherSkullController; +import net.citizensnpcs.nms.v1_19_R3.entity.AllayController; +import net.citizensnpcs.nms.v1_19_R3.entity.ArmorStandController; +import net.citizensnpcs.nms.v1_19_R3.entity.AxolotlController; +import net.citizensnpcs.nms.v1_19_R3.entity.BatController; +import net.citizensnpcs.nms.v1_19_R3.entity.BeeController; +import net.citizensnpcs.nms.v1_19_R3.entity.BlazeController; +import net.citizensnpcs.nms.v1_19_R3.entity.CamelController; +import net.citizensnpcs.nms.v1_19_R3.entity.CatController; +import net.citizensnpcs.nms.v1_19_R3.entity.CaveSpiderController; +import net.citizensnpcs.nms.v1_19_R3.entity.ChickenController; +import net.citizensnpcs.nms.v1_19_R3.entity.CodController; +import net.citizensnpcs.nms.v1_19_R3.entity.CowController; +import net.citizensnpcs.nms.v1_19_R3.entity.CreeperController; +import net.citizensnpcs.nms.v1_19_R3.entity.DolphinController; +import net.citizensnpcs.nms.v1_19_R3.entity.DrownedController; +import net.citizensnpcs.nms.v1_19_R3.entity.EnderDragonController; +import net.citizensnpcs.nms.v1_19_R3.entity.EndermanController; +import net.citizensnpcs.nms.v1_19_R3.entity.EndermiteController; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EvokerController; +import net.citizensnpcs.nms.v1_19_R3.entity.FoxController; +import net.citizensnpcs.nms.v1_19_R3.entity.FrogController; +import net.citizensnpcs.nms.v1_19_R3.entity.GhastController; +import net.citizensnpcs.nms.v1_19_R3.entity.GiantController; +import net.citizensnpcs.nms.v1_19_R3.entity.GlowSquidController; +import net.citizensnpcs.nms.v1_19_R3.entity.GoatController; +import net.citizensnpcs.nms.v1_19_R3.entity.GuardianController; +import net.citizensnpcs.nms.v1_19_R3.entity.GuardianElderController; +import net.citizensnpcs.nms.v1_19_R3.entity.HoglinController; +import net.citizensnpcs.nms.v1_19_R3.entity.HorseController; +import net.citizensnpcs.nms.v1_19_R3.entity.HorseDonkeyController; +import net.citizensnpcs.nms.v1_19_R3.entity.HorseMuleController; +import net.citizensnpcs.nms.v1_19_R3.entity.HorseSkeletonController; +import net.citizensnpcs.nms.v1_19_R3.entity.HorseZombieController; +import net.citizensnpcs.nms.v1_19_R3.entity.HumanController; +import net.citizensnpcs.nms.v1_19_R3.entity.IllusionerController; +import net.citizensnpcs.nms.v1_19_R3.entity.IronGolemController; +import net.citizensnpcs.nms.v1_19_R3.entity.LlamaController; +import net.citizensnpcs.nms.v1_19_R3.entity.MagmaCubeController; +import net.citizensnpcs.nms.v1_19_R3.entity.MushroomCowController; +import net.citizensnpcs.nms.v1_19_R3.entity.OcelotController; +import net.citizensnpcs.nms.v1_19_R3.entity.PandaController; +import net.citizensnpcs.nms.v1_19_R3.entity.ParrotController; +import net.citizensnpcs.nms.v1_19_R3.entity.PhantomController; +import net.citizensnpcs.nms.v1_19_R3.entity.PigController; +import net.citizensnpcs.nms.v1_19_R3.entity.PigZombieController; +import net.citizensnpcs.nms.v1_19_R3.entity.PiglinBruteController; +import net.citizensnpcs.nms.v1_19_R3.entity.PiglinController; +import net.citizensnpcs.nms.v1_19_R3.entity.PillagerController; +import net.citizensnpcs.nms.v1_19_R3.entity.PolarBearController; +import net.citizensnpcs.nms.v1_19_R3.entity.PufferFishController; +import net.citizensnpcs.nms.v1_19_R3.entity.RabbitController; +import net.citizensnpcs.nms.v1_19_R3.entity.RavagerController; +import net.citizensnpcs.nms.v1_19_R3.entity.SalmonController; +import net.citizensnpcs.nms.v1_19_R3.entity.SheepController; +import net.citizensnpcs.nms.v1_19_R3.entity.ShulkerController; +import net.citizensnpcs.nms.v1_19_R3.entity.SilverfishController; +import net.citizensnpcs.nms.v1_19_R3.entity.SkeletonController; +import net.citizensnpcs.nms.v1_19_R3.entity.SkeletonStrayController; +import net.citizensnpcs.nms.v1_19_R3.entity.SkeletonWitherController; +import net.citizensnpcs.nms.v1_19_R3.entity.SlimeController; +import net.citizensnpcs.nms.v1_19_R3.entity.SnifferController; +import net.citizensnpcs.nms.v1_19_R3.entity.SnowmanController; +import net.citizensnpcs.nms.v1_19_R3.entity.SpiderController; +import net.citizensnpcs.nms.v1_19_R3.entity.SquidController; +import net.citizensnpcs.nms.v1_19_R3.entity.StriderController; +import net.citizensnpcs.nms.v1_19_R3.entity.TadpoleController; +import net.citizensnpcs.nms.v1_19_R3.entity.TraderLlamaController; +import net.citizensnpcs.nms.v1_19_R3.entity.TropicalFishController; +import net.citizensnpcs.nms.v1_19_R3.entity.TurtleController; +import net.citizensnpcs.nms.v1_19_R3.entity.VexController; +import net.citizensnpcs.nms.v1_19_R3.entity.VillagerController; +import net.citizensnpcs.nms.v1_19_R3.entity.VindicatorController; +import net.citizensnpcs.nms.v1_19_R3.entity.WanderingTraderController; +import net.citizensnpcs.nms.v1_19_R3.entity.WardenController; +import net.citizensnpcs.nms.v1_19_R3.entity.WitchController; +import net.citizensnpcs.nms.v1_19_R3.entity.WitherController; +import net.citizensnpcs.nms.v1_19_R3.entity.WolfController; +import net.citizensnpcs.nms.v1_19_R3.entity.ZoglinController; +import net.citizensnpcs.nms.v1_19_R3.entity.ZombieController; +import net.citizensnpcs.nms.v1_19_R3.entity.ZombieHuskController; +import net.citizensnpcs.nms.v1_19_R3.entity.ZombieVillagerController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.AreaEffectCloudController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.BlockDisplayController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.BoatController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ChestBoatController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.DragonFireballController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.EggController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.EnderCrystalController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.EnderPearlController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.EnderSignalController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.EvokerFangsController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.FallingBlockController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.FireworkController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.FishingHookController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.GlowItemFrameController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ItemController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ItemDisplayController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ItemFrameController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.LargeFireballController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.LeashController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.LlamaSpitController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MarkerController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MinecartChestController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MinecartCommandController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MinecartFurnaceController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MinecartHopperController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MinecartRideableController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.MinecartTNTController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.PaintingController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ShulkerBulletController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.SmallFireballController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.SnowballController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.SpectralArrowController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.TNTPrimedController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.TextDisplayController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ThrownExpBottleController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ThrownPotionController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.ThrownTridentController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.TippedArrowController; +import net.citizensnpcs.nms.v1_19_R3.entity.nonliving.WitherSkullController; import net.citizensnpcs.npc.EntityControllers; import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator; import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator; @@ -245,6 +248,7 @@ import net.citizensnpcs.trait.versioned.PiglinTrait; import net.citizensnpcs.trait.versioned.PolarBearTrait; import net.citizensnpcs.trait.versioned.PufferFishTrait; import net.citizensnpcs.trait.versioned.ShulkerTrait; +import net.citizensnpcs.trait.versioned.SnifferTrait.SnifferState; import net.citizensnpcs.trait.versioned.SnowmanTrait; import net.citizensnpcs.trait.versioned.SpellcasterTrait; import net.citizensnpcs.trait.versioned.TropicalFishTrait; @@ -286,7 +290,6 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.tags.FluidTags; import net.minecraft.util.Mth; import net.minecraft.world.Container; -import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity.RemovalReason; @@ -421,7 +424,7 @@ public class NMSImpl implements NMSBridge { int i = 0; f += EnchantmentHelper.getDamageBonus(source.getMainHandItem(), target.getMobType()); i += EnchantmentHelper.getKnockbackBonus(source); - boolean flag = target.hurt(DamageSource.mobAttack(source), f); + boolean flag = target.hurt(target.damageSources().mobAttack(source), f); if (!flag) return; if (i > 0) { @@ -696,7 +699,7 @@ public class NMSImpl implements NMSBridge { @Override public float getStepHeight(org.bukkit.entity.Entity entity) { - return NMSImpl.getHandle(entity).maxUpStep; + return NMSImpl.getHandle(entity).maxUpStep(); } @Override @@ -892,12 +895,6 @@ public class NMSImpl implements NMSBridge { registerTraitWithCommand(manager, SnowmanTrait.class); registerTraitWithCommand(manager, TropicalFishTrait.class); registerTraitWithCommand(manager, VillagerTrait.class); - try { - Via.getAPI(); - VIA_ENABLED = true; - } catch (Throwable t) { - VIA_ENABLED = false; - } } private void loadEntityTypes() { @@ -1019,6 +1016,10 @@ public class NMSImpl implements NMSBridge { EntityControllers.setEntityControllerForType(EntityType.WITHER_SKELETON, SkeletonWitherController.class); EntityControllers.setEntityControllerForType(EntityType.ZOMBIE, ZombieController.class); EntityControllers.setEntityControllerForType(EntityType.ZOMBIE_VILLAGER, ZombieVillagerController.class); + EntityControllers.setEntityControllerForType(EntityType.SNIFFER, SnifferController.class); + EntityControllers.setEntityControllerForType(EntityType.BLOCK_DISPLAY, BlockDisplayController.class); + EntityControllers.setEntityControllerForType(EntityType.ITEM_DISPLAY, TextDisplayController.class); + EntityControllers.setEntityControllerForType(EntityType.TEXT_DISPLAY, ItemDisplayController.class); } @Override @@ -1405,7 +1406,7 @@ public class NMSImpl implements NMSBridge { } return; case SITTING: - if (!camel.isPoseSitting()) { + if (!camel.isCamelSitting()) { camel.sitDown(); } return; @@ -1419,7 +1420,13 @@ public class NMSImpl implements NMSBridge { @Override public void setCustomName(org.bukkit.entity.Entity entity, Object component, String string) { - getHandle(entity).setCustomName((Component) component); + if (getHandle(entity) instanceof net.minecraft.world.entity.Display.TextDisplay) { + net.minecraft.world.entity.Display.TextDisplay disp = (net.minecraft.world.entity.Display.TextDisplay) getHandle( + entity); + disp.setText((Component) component); + } else { + getHandle(entity).setCustomName((Component) component); + } } @Override @@ -1579,9 +1586,16 @@ public class NMSImpl implements NMSBridge { getHandle(entity).setPose(pose); } + @Override + public void setSnifferState(org.bukkit.entity.Entity entity, SnifferState state) { + net.minecraft.world.entity.animal.sniffer.Sniffer handle = (net.minecraft.world.entity.animal.sniffer.Sniffer) getHandle( + entity); + handle.transitionTo(net.minecraft.world.entity.animal.sniffer.Sniffer.State.valueOf(state.name())); + } + @Override public void setStepHeight(org.bukkit.entity.Entity entity, float height) { - NMSImpl.getHandle(entity).maxUpStep = height; + NMSImpl.getHandle(entity).setMaxUpStep(height); } @Override @@ -2063,19 +2077,15 @@ public class NMSImpl implements NMSBridge { double d6 = d3 - d5; float f4 = (float) (d6 * 10.0D - 3.0D); if (f4 > 0.0F) { - try { - entity.playSound((SoundEvent) ENTITY_GET_SOUND_FALL.invoke(entity, (int) f4), 1.0F, 1.0F); - } catch (Throwable e) { - e.printStackTrace(); - } - entity.hurt(DamageSource.FLY_INTO_WALL, f4); + entity.playSound(entity.getFallDamageSound0((int) f4), 1.0F, 1.0F); + entity.hurt(entity.damageSources().flyIntoWall(), f4); } } if (entity.isOnGround() && !entity.level.isClientSide && entity.getSharedFlag(7) && !CraftEventFactory.callToggleGlideEvent(entity, false).isCancelled()) entity.setSharedFlag(7, false); } else { - BlockPos blockposition = new BlockPos(entity.getX(), (entity.getBoundingBox()).minY - 0.5D, + BlockPos blockposition = BlockPos.containing(entity.getX(), (entity.getBoundingBox()).minY - 0.5D, entity.getZ()); float f5 = entity.level.getBlockState(blockposition).getBlock().getFriction(); float f = entity.isOnGround() ? (f5 * 0.91F) : 0.91F; @@ -2100,7 +2110,7 @@ public class NMSImpl implements NMSBridge { } } } - entity.calculateEntityAnimation(entity, entity instanceof net.minecraft.world.entity.animal.FlyingAnimal); + entity.calculateEntityAnimation(entity instanceof net.minecraft.world.entity.animal.FlyingAnimal); } public static TreeMap getBehaviorMap(LivingEntity entity) { @@ -2408,7 +2418,8 @@ public class NMSImpl implements NMSBridge { } } - private static final MethodHandle ADVANCEMENTS_PLAYER_FIELD = NMS.getFinalSetter(ServerPlayer.class, "cq"); + private static final MethodHandle ADVANCEMENTS_PLAYER_FIELD = NMS.getFirstFinalSetter(ServerPlayer.class, + PlayerAdvancements.class); private static final Set BAD_CONTROLLER_LOOK = EnumSet.of(EntityType.POLAR_BEAR, EntityType.BEE, EntityType.SILVERFISH, EntityType.SHULKER, EntityType.ENDERMITE, EntityType.ENDER_DRAGON, EntityType.BAT, EntityType.SLIME, EntityType.DOLPHIN, EntityType.MAGMA_CUBE, EntityType.HORSE, EntityType.GHAST, @@ -2424,8 +2435,6 @@ public class NMSImpl implements NMSBridge { private static EntityDataAccessor ENDERMAN_CREEPY = null; private static final MethodHandle ENTITY_FISH_NUM_IN_SCHOOL = NMS.getFirstSetter(AbstractSchoolingFish.class, int.class); - private static final MethodHandle ENTITY_GET_SOUND_FALL = NMS.getMethodHandle(LivingEntity.class, "c", true, - int.class); private static CustomEntityRegistry ENTITY_REGISTRY; private static MethodHandle ENTITY_REGISTRY_SETTER; private static final MethodHandle FALLING_BLOCK_STATE_SETTER = NMS.getFirstSetter(FallingBlockEntity.class, @@ -2433,23 +2442,24 @@ public class NMSImpl implements NMSBridge { private static final MethodHandle FIND_DIMENSION_ENTRY_POINT = NMS.getFirstMethodHandleWithReturnType(Entity.class, true, PortalInfo.class, ServerLevel.class); // first int of block of 4 - private static final MethodHandle FISHING_HOOK_LIFE = NMS.getSetter(FishingHook.class, "aq"); + private static final MethodHandle FISHING_HOOK_LIFE = NMS.getSetter(FishingHook.class, "i"); private static final MethodHandle FLYING_MOVECONTROL_FLOAT_GETTER = NMS.getFirstGetter(FlyingMoveControl.class, boolean.class); private static final MethodHandle FLYING_MOVECONTROL_FLOAT_SETTER = NMS.getFirstSetter(FlyingMoveControl.class, boolean.class); private static final Location FROM_LOCATION = new Location(null, 0, 0, 0); - private static final MethodHandle HEAD_HEIGHT = NMS.getSetter(Entity.class, "ba"); + private static final MethodHandle HEAD_HEIGHT = NMS.getSetter(Entity.class, "bf"); private static final MethodHandle HEAD_HEIGHT_METHOD = NMS.getFirstMethodHandle(Entity.class, true, Pose.class, EntityDimensions.class); - private static final MethodHandle JUMP_FIELD = NMS.getGetter(LivingEntity.class, "bn"); + private static final MethodHandle JUMP_FIELD = NMS.getGetter(LivingEntity.class, "bi"); private static final MethodHandle MAKE_REQUEST = NMS.getMethodHandle(YggdrasilAuthenticationService.class, "makeRequest", true, URL.class, Object.class, Class.class); private static MethodHandle MOVE_CONTROLLER_OPERATION = NMS.getSetter(MoveControl.class, "k"); private static final MethodHandle NAVIGATION_CREATE_PATHFINDER = NMS .getFirstMethodHandleWithReturnType(PathNavigation.class, true, PathFinder.class, int.class); private static MethodHandle NAVIGATION_PATH = NMS.getFirstGetter(PathNavigation.class, Path.class); - private static final MethodHandle NAVIGATION_PATHFINDER = NMS.getFinalSetter(PathNavigation.class, "v"); + private static final MethodHandle NAVIGATION_PATHFINDER = NMS.getFirstFinalSetter(PathNavigation.class, + PathFinder.class); private static final MethodHandle NAVIGATION_WORLD_FIELD = NMS.getFirstSetter(PathNavigation.class, Level.class); public static final Location PACKET_CACHE_LOCATION = new Location(null, 0, 0, 0); private static final MethodHandle PLAYER_CHUNK_MAP_VIEW_DISTANCE_GETTER = NMS.getGetter(ChunkMap.class, "P"); @@ -2457,10 +2467,10 @@ public class NMSImpl implements NMSBridge { private static final MethodHandle PLAYER_INFO_ENTRIES_LIST = NMS .getFinalSetter(ClientboundPlayerInfoUpdatePacket.class, "b"); private static final MethodHandle PLAYERINFO_ENTRIES = PLAYER_INFO_ENTRIES_LIST; - private static MethodHandle PORTAL_ENTRANCE_POS_GETTER = NMS.getGetter(Entity.class, "ai"); - private static MethodHandle PORTAL_ENTRANCE_POS_SETTER = NMS.getSetter(Entity.class, "ai"); - private static final MethodHandle PUFFERFISH_C = NMS.getSetter(Pufferfish.class, "bX"); - private static final MethodHandle PUFFERFISH_D = NMS.getSetter(Pufferfish.class, "bY"); + private static MethodHandle PORTAL_ENTRANCE_POS_GETTER = NMS.getGetter(Entity.class, "aw"); + private static MethodHandle PORTAL_ENTRANCE_POS_SETTER = NMS.getSetter(Entity.class, "aw"); + private static final MethodHandle PUFFERFISH_C = NMS.getSetter(Pufferfish.class, "bS"); + private static final MethodHandle PUFFERFISH_D = NMS.getSetter(Pufferfish.class, "bT"); private static EntityDataAccessor RABBIT_TYPE_DATAWATCHER = null; private static final Random RANDOM = Util.getFastRandom(); private static MethodHandle SET_PROFILE_METHOD; @@ -2468,7 +2478,6 @@ public class NMSImpl implements NMSBridge { private static final MethodHandle SIZE_FIELD_SETTER = NMS.getFirstSetter(Entity.class, EntityDimensions.class); private static MethodHandle SKULL_META_PROFILE; private static MethodHandle TEAM_FIELD; - private static Boolean VIA_ENABLED = null; static { try { ENTITY_REGISTRY = new CustomEntityRegistry(BuiltInRegistries.ENTITY_TYPE); @@ -2479,7 +2488,8 @@ public class NMSImpl implements NMSBridge { e.printStackTrace(); } try { - ENDERMAN_CREEPY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bZ").get(null); + // Middle one + ENDERMAN_CREEPY = (EntityDataAccessor) NMS.getField(EnderMan.class, "bU").get(null); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerAnimationImpl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java similarity index 98% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerAnimationImpl.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java index d00ebb8e9..66c167a53 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerAnimationImpl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerAnimationImpl.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.util.Map; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerControllerJump.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerControllerJump.java similarity index 77% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerControllerJump.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerControllerJump.java index 32268d2ff..fa9446da0 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerControllerJump.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerControllerJump.java @@ -1,6 +1,6 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; public class PlayerControllerJump { private boolean a; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerMoveControl.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerMoveControl.java similarity index 97% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerMoveControl.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerMoveControl.java index 1ab307d45..7686f9148 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerMoveControl.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerMoveControl.java @@ -1,8 +1,8 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.util.Random; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; import net.citizensnpcs.util.NMS; import net.minecraft.util.Mth; import net.minecraft.world.entity.EntityType; diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNavigation.java similarity index 91% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNavigation.java index 0e61b3ea5..c15869108 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNavigation.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNavigation.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.util.Set; import java.util.stream.Collectors; @@ -7,7 +7,7 @@ import java.util.stream.Stream; import com.google.common.collect.ImmutableSet; import net.citizensnpcs.Settings; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; import net.minecraft.tags.BlockTags; @@ -27,7 +27,6 @@ import net.minecraft.world.level.pathfinder.Node; import net.minecraft.world.level.pathfinder.NodeEvaluator; import net.minecraft.world.level.pathfinder.Path; import net.minecraft.world.level.pathfinder.PathFinder; -import net.minecraft.world.level.pathfinder.WalkNodeEvaluator; import net.minecraft.world.phys.Vec3; public class PlayerNavigation extends PathNavigation { @@ -41,7 +40,7 @@ public class PlayerNavigation extends PathNavigation { protected final Level level; protected float maxDistanceToWaypoint = 0.5F; private float maxVisitedNodesMultiplier = 1.0F; - protected final EntityHumanNPC mob; + private final EntityHumanNPC mob; protected PlayerNodeEvaluator nodeEvaluator; protected Path path; private final PlayerPathfinder pathFinder; @@ -225,16 +224,19 @@ public class PlayerNavigation extends PathNavigation { return null; if (this.path != null && !this.path.isDone() && var0.contains(this.targetPos)) return this.path; + this.level.getProfiler().push("pathfind"); BlockPos var5 = var2 ? this.mob.blockPosition().above() : this.mob.blockPosition(); int var6 = (int) (var4 + var1); PathNavigationRegion var7 = new PathNavigationRegion(this.level, var5.offset(-var6, -var6, -var6), var5.offset(var6, var6, var6)); Path var8 = this.pathFinder.findPath(var7, this.mob, var0, var4, var3, this.maxVisitedNodesMultiplier); + this.level.getProfiler().pop(); if (var8 != null && var8.getTarget() != null) { this.targetPos = var8.getTarget(); this.reachRange = var3; - resetStuckTimeout(); + this.resetStuckTimeout(); } + return var8; } @@ -310,18 +312,25 @@ public class PlayerNavigation extends PathNavigation { } private int getSurfaceY() { - if (!this.mob.isInWater() || !canFloat()) - return Mth.floor(this.mob.getY() + 0.5D); - int var0 = this.mob.getBlockY(); - BlockState var1 = this.level.getBlockState(new BlockPos(this.mob.getX(), var0, this.mob.getZ())); - int var2 = 0; - while (var1.is(Blocks.WATER)) { - var0++; - var1 = this.level.getBlockState(new BlockPos(this.mob.getX(), var0, this.mob.getZ())); - if (++var2 > 16) - return this.mob.getBlockY(); + if (this.mob.isInWater() && this.canFloat()) { + int var0 = this.mob.getBlockY(); + BlockState var1 = this.level.getBlockState(BlockPos.containing(this.mob.getX(), var0, this.mob.getZ())); + int var2 = 0; + + do { + if (!var1.is(Blocks.WATER)) { + return var0; + } + + ++var0; + var1 = this.level.getBlockState(BlockPos.containing(this.mob.getX(), var0, this.mob.getZ())); + ++var2; + } while (var2 <= 16); + + return this.mob.getBlockY(); + } else { + return Mth.floor(this.mob.getY() + 0.5); } - return var0; } @Override @@ -335,9 +344,13 @@ public class PlayerNavigation extends PathNavigation { } protected boolean hasValidPathType(BlockPathTypes var0) { - if ((var0 == BlockPathTypes.WATER) || (var0 == BlockPathTypes.LAVA) || (var0 == BlockPathTypes.OPEN)) + if (var0 == BlockPathTypes.WATER) { return false; - return true; + } else if (var0 == BlockPathTypes.LAVA) { + return false; + } else { + return var0 != BlockPathTypes.OPEN; + } } @Override @@ -368,7 +381,7 @@ public class PlayerNavigation extends PathNavigation { @Override public boolean moveTo(double var0, double var2, double var4, double var6) { - return moveTo(createPath(new BlockPos(var0, var2, var4), 1), var6); + return moveTo(createPath(BlockPos.containing(var0, var2, var4), 1), var6); } @Override @@ -492,14 +505,15 @@ public class PlayerNavigation extends PathNavigation { protected void supertrimPath() { if (this.path == null) return; - for (int var0 = 0; var0 < this.path.getNodeCount(); var0++) { + for (int var0 = 0; var0 < this.path.getNodeCount(); ++var0) { Node var1 = this.path.getNode(var0); - Node var2 = (var0 + 1 < this.path.getNodeCount()) ? this.path.getNode(var0 + 1) : null; + Node var2 = var0 + 1 < this.path.getNodeCount() ? this.path.getNode(var0 + 1) : null; BlockState var3 = this.level.getBlockState(new BlockPos(var1.x, var1.y, var1.z)); if (var3.is(BlockTags.CAULDRONS)) { this.path.replaceNode(var0, var1.cloneAndMove(var1.x, var1.y + 1, var1.z)); - if (var2 != null && var1.y >= var2.y) + if (var2 != null && var1.y >= var2.y) { this.path.replaceNode(var0 + 1, var1.cloneAndMove(var2.x, var1.y + 1, var2.z)); + } } } } @@ -524,9 +538,7 @@ public class PlayerNavigation extends PathNavigation { if (isDone()) return; Vec3 var0 = this.path.getNextEntityPos(this.mob); - BlockPos var1 = new BlockPos(var0); - this.mob.getMoveControl().setWantedPosition(var0.x, this.level.getBlockState(var1.below()).isAir() ? var0.y - : WalkNodeEvaluator.getFloorLevel(this.level, var1), var0.z, this.speedModifier); + this.mob.getMoveControl().setWantedPosition(var0.x, this.getGroundY(var0), var0.z, this.speedModifier); } private void timeoutPath() { @@ -538,9 +550,11 @@ public class PlayerNavigation extends PathNavigation { protected void trimPath() { supertrimPath(); if (this.avoidSun) { - if (this.level.canSeeSky(new BlockPos(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ()))) + if (this.level.canSeeSky(BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5, this.mob.getZ()))) { return; - for (int var0 = 0; var0 < this.path.getNodeCount(); var0++) { + } + + for (int var0 = 0; var0 < this.path.getNodeCount(); ++var0) { Node var1 = this.path.getNode(var0); if (this.level.canSeeSky(new BlockPos(var1.x, var1.y, var1.z))) { this.path.truncateNodes(var0); diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNodeEvaluator.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNodeEvaluator.java new file mode 100644 index 000000000..f443d90e9 --- /dev/null +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNodeEvaluator.java @@ -0,0 +1,615 @@ +package net.citizensnpcs.nms.v1_19_R3.util; + +import java.util.EnumSet; +import java.util.Iterator; + +import it.unimi.dsi.fastutil.longs.Long2ObjectMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2BooleanMap; +import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.FluidTags; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.PathNavigationRegion; +import net.minecraft.world.level.block.BaseRailBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.CampfireBlock; +import net.minecraft.world.level.block.DoorBlock; +import net.minecraft.world.level.block.FenceGateBlock; +import net.minecraft.world.level.block.LeavesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.pathfinder.BlockPathTypes; +import net.minecraft.world.level.pathfinder.Node; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.pathfinder.Target; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class PlayerNodeEvaluator extends PlayerNodeEvaluatorBase { + private final Object2BooleanMap collisionCache = new Object2BooleanOpenHashMap(); + protected float oldWaterCost; + private final Long2ObjectMap pathTypesByPosCache = new Long2ObjectOpenHashMap(); + + private boolean canReachWithoutCollision(Node var0) { + AABB var1 = this.mob.getBoundingBox(); + Vec3 var2 = new Vec3(var0.x - this.mob.getX() + var1.getXsize() / 2.0, + var0.y - this.mob.getY() + var1.getYsize() / 2.0, var0.z - this.mob.getZ() + var1.getZsize() / 2.0); + int var3 = Mth.ceil(var2.length() / var1.getSize()); + var2 = var2.scale(1.0F / var3); + + for (int var4 = 1; var4 <= var3; ++var4) { + var1 = var1.move(var2); + if (this.hasCollisions(var1)) { + return false; + } + } + + return true; + } + + protected boolean canStartAt(BlockPos var0) { + BlockPathTypes var1 = this.getBlockPathType(this.mob, var0); + return var1 != BlockPathTypes.OPEN && this.mob.getPathfindingMalus(var1) >= 0.0F; + } + + @Override + public void done() { + this.mob.setPathfindingMalus(BlockPathTypes.WATER, this.oldWaterCost); + this.pathTypesByPosCache.clear(); + this.collisionCache.clear(); + super.done(); + } + + protected BlockPathTypes evaluateBlockPathType(BlockGetter var0, BlockPos var1, BlockPathTypes var2) { + boolean var3 = this.canPassDoors(); + if (var2 == BlockPathTypes.DOOR_WOOD_CLOSED && this.canOpenDoors() && var3) { + var2 = BlockPathTypes.WALKABLE_DOOR; + } + + if (var2 == BlockPathTypes.DOOR_OPEN && !var3) { + var2 = BlockPathTypes.BLOCKED; + } + + if (var2 == BlockPathTypes.RAIL && !(var0.getBlockState(var1).getBlock() instanceof BaseRailBlock) + && !(var0.getBlockState(var1.below()).getBlock() instanceof BaseRailBlock)) { + var2 = BlockPathTypes.UNPASSABLE_RAIL; + } + + return var2; + } + + protected Node findAcceptedNode(int var0, int var1, int var2, int var3, double var4, Direction var6, + BlockPathTypes var7) { + Node var8 = null; + BlockPos.MutableBlockPos var9 = new BlockPos.MutableBlockPos(); + double var10 = this.getFloorLevel(var9.set(var0, var1, var2)); + if (var10 - var4 > this.getMobJumpHeight()) { + return null; + } else { + BlockPathTypes var12 = this.getCachedBlockType(this.mob, var0, var1, var2); + float var13 = this.mob.getPathfindingMalus(var12); + double var14 = this.mob.getBbWidth() / 2.0; + if (var13 >= 0.0F) { + var8 = this.getNodeAndUpdateCostToMax(var0, var1, var2, var12, var13); + } + + if (doesBlockHavePartialCollision(var7) && var8 != null && var8.costMalus >= 0.0F + && !this.canReachWithoutCollision(var8)) { + var8 = null; + } + + if (var12 == BlockPathTypes.WALKABLE || this.isAmphibious() && var12 == BlockPathTypes.WATER) { + return var8; + } else { + if ((var8 == null || var8.costMalus < 0.0F) && var3 > 0 + && (var12 != BlockPathTypes.FENCE || this.canWalkOverFences()) + && var12 != BlockPathTypes.UNPASSABLE_RAIL && var12 != BlockPathTypes.TRAPDOOR + && var12 != BlockPathTypes.POWDER_SNOW) { + var8 = this.findAcceptedNode(var0, var1 + 1, var2, var3 - 1, var4, var6, var7); + if (var8 != null && (var8.type == BlockPathTypes.OPEN || var8.type == BlockPathTypes.WALKABLE) + && this.mob.getBbWidth() < 1.0F) { + double var16 = var0 - var6.getStepX() + 0.5; + double var18 = var2 - var6.getStepZ() + 0.5; + AABB var20 = new AABB(var16 - var14, + this.getFloorLevel(var9.set(var16, var1 + 1, var18)) + 0.001, var18 - var14, + var16 + var14, + this.mob.getBbHeight() + this + .getFloorLevel(var9.set((double) var8.x, (double) var8.y, (double) var8.z)) + - 0.002, + var18 + var14); + if (this.hasCollisions(var20)) { + var8 = null; + } + } + } + + if (!this.isAmphibious() && var12 == BlockPathTypes.WATER && !this.canFloat()) { + if (this.getCachedBlockType(this.mob, var0, var1 - 1, var2) != BlockPathTypes.WATER) { + return var8; + } + + while (var1 > this.mob.level.getMinBuildHeight()) { + --var1; + var12 = this.getCachedBlockType(this.mob, var0, var1, var2); + if (var12 != BlockPathTypes.WATER) { + return var8; + } + + var8 = this.getNodeAndUpdateCostToMax(var0, var1, var2, var12, + this.mob.getPathfindingMalus(var12)); + } + } + + if (var12 == BlockPathTypes.OPEN) { + int var16 = 0; + int var17 = var1; + + while (var12 == BlockPathTypes.OPEN) { + --var1; + if (var1 < this.mob.level.getMinBuildHeight()) { + return this.getBlockedNode(var0, var17, var2); + } + + if (var16++ >= this.mob.getMaxFallDistance()) { + return this.getBlockedNode(var0, var1, var2); + } + + var12 = this.getCachedBlockType(this.mob, var0, var1, var2); + var13 = this.mob.getPathfindingMalus(var12); + if (var12 != BlockPathTypes.OPEN && var13 >= 0.0F) { + var8 = this.getNodeAndUpdateCostToMax(var0, var1, var2, var12, var13); + break; + } + + if (var13 < 0.0F) { + return this.getBlockedNode(var0, var1, var2); + } + } + } + + if (doesBlockHavePartialCollision(var12) && var8 == null) { + var8 = this.getNode(var0, var1, var2); + var8.closed = true; + var8.type = var12; + var8.costMalus = var12.getMalus(); + } + + return var8; + } + } + } + + private Node getBlockedNode(int var0, int var1, int var2) { + Node var3 = this.getNode(var0, var1, var2); + var3.type = BlockPathTypes.BLOCKED; + var3.costMalus = -1.0F; + return var3; + } + + @Override + public BlockPathTypes getBlockPathType(BlockGetter var0, int var1, int var2, int var3) { + return getBlockPathTypeStatic(var0, new BlockPos.MutableBlockPos(var1, var2, var3)); + } + + public BlockPathTypes getBlockPathType(BlockGetter var0, int var1, int var2, int var3, EntityHumanNPC var4) { + EnumSet var5 = EnumSet.noneOf(BlockPathTypes.class); + BlockPathTypes var6 = BlockPathTypes.BLOCKED; + var6 = this.getBlockPathTypes(var0, var1, var2, var3, var5, var6, var4.blockPosition()); + if (var5.contains(BlockPathTypes.FENCE)) { + return BlockPathTypes.FENCE; + } else if (var5.contains(BlockPathTypes.UNPASSABLE_RAIL)) { + return BlockPathTypes.UNPASSABLE_RAIL; + } else { + BlockPathTypes var7 = BlockPathTypes.BLOCKED; + Iterator var9 = var5.iterator(); + + while (var9.hasNext()) { + BlockPathTypes varr9 = (BlockPathTypes) var9.next(); + if (var4.getPathfindingMalus(varr9) < 0.0F) { + return varr9; + } + + if (var4.getPathfindingMalus(varr9) >= var4.getPathfindingMalus(var7)) { + var7 = varr9; + } + } + + if (var6 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var7) == 0.0F && this.entityWidth <= 1) { + return BlockPathTypes.OPEN; + } else { + return var7; + } + } + } + + @Override + public BlockPathTypes getBlockPathType(BlockGetter var0, int var1, int var2, int var3, Mob var4) { + EnumSet var5 = EnumSet.noneOf(BlockPathTypes.class); + BlockPathTypes var6 = BlockPathTypes.BLOCKED; + var6 = this.getBlockPathTypes(var0, var1, var2, var3, var5, var6, var4.blockPosition()); + if (var5.contains(BlockPathTypes.FENCE)) { + return BlockPathTypes.FENCE; + } else if (var5.contains(BlockPathTypes.UNPASSABLE_RAIL)) { + return BlockPathTypes.UNPASSABLE_RAIL; + } else { + BlockPathTypes var7 = BlockPathTypes.BLOCKED; + Iterator var9 = var5.iterator(); + + while (var9.hasNext()) { + BlockPathTypes varr9 = (BlockPathTypes) var9.next(); + if (var4.getPathfindingMalus(varr9) < 0.0F) { + return varr9; + } + + if (var4.getPathfindingMalus(varr9) >= var4.getPathfindingMalus(var7)) { + var7 = varr9; + } + } + + if (var6 == BlockPathTypes.OPEN && var4.getPathfindingMalus(var7) == 0.0F && this.entityWidth <= 1) { + return BlockPathTypes.OPEN; + } else { + return var7; + } + } + } + + protected BlockPathTypes getBlockPathType(EntityHumanNPC var0, BlockPos var1) { + return this.getCachedBlockType(var0, var1.getX(), var1.getY(), var1.getZ()); + } + + public BlockPathTypes getBlockPathTypes(BlockGetter var0, int var1, int var2, int var3, EnumSet var4, + BlockPathTypes var5, BlockPos var6) { + for (int var7 = 0; var7 < this.entityWidth; ++var7) { + for (int var8 = 0; var8 < this.entityHeight; ++var8) { + for (int var9 = 0; var9 < this.entityDepth; ++var9) { + int var10 = var7 + var1; + int var11 = var8 + var2; + int var12 = var9 + var3; + BlockPathTypes var13 = this.getBlockPathType(var0, var10, var11, var12); + var13 = this.evaluateBlockPathType(var0, var6, var13); + if (var7 == 0 && var8 == 0 && var9 == 0) { + var5 = var13; + } + + var4.add(var13); + } + } + } + + return var5; + } + + protected BlockPathTypes getCachedBlockType(EntityHumanNPC var0, int var1, int var2, int var3) { + return (BlockPathTypes) this.pathTypesByPosCache.computeIfAbsent(BlockPos.asLong(var1, var2, var3), (var4) -> { + return this.getBlockPathType(this.level, var1, var2, var3, var0); + }); + } + + protected double getFloorLevel(BlockPos var0) { + return (this.canFloat() || this.isAmphibious()) && this.level.getFluidState(var0).is(FluidTags.WATER) + ? var0.getY() + 0.5 + : getFloorLevel(this.level, var0); + } + + @Override + public Target getGoal(double var0, double var2, double var4) { + return this.getTargetFromNode(this.getNode(Mth.floor(var0), Mth.floor(var2), Mth.floor(var4))); + } + + private double getMobJumpHeight() { + return Math.max(1.125, this.mob.maxUpStep()); + } + + @Override + public int getNeighbors(Node[] var0, Node var1) { + int var2 = 0; + int var3 = 0; + BlockPathTypes var4 = this.getCachedBlockType(this.mob, var1.x, var1.y + 1, var1.z); + BlockPathTypes var5 = this.getCachedBlockType(this.mob, var1.x, var1.y, var1.z); + if (this.mob.getPathfindingMalus(var4) >= 0.0F && var5 != BlockPathTypes.STICKY_HONEY) { + var3 = Mth.floor(Math.max(1.0F, this.mob.maxUpStep())); + } + + double var6 = this.getFloorLevel(new BlockPos(var1.x, var1.y, var1.z)); + Node var8 = this.findAcceptedNode(var1.x, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); + if (this.isNeighborValid(var8, var1)) { + var0[var2++] = var8; + } + + Node var9 = this.findAcceptedNode(var1.x - 1, var1.y, var1.z, var3, var6, Direction.WEST, var5); + if (this.isNeighborValid(var9, var1)) { + var0[var2++] = var9; + } + + Node var10 = this.findAcceptedNode(var1.x + 1, var1.y, var1.z, var3, var6, Direction.EAST, var5); + if (this.isNeighborValid(var10, var1)) { + var0[var2++] = var10; + } + + Node var11 = this.findAcceptedNode(var1.x, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); + if (this.isNeighborValid(var11, var1)) { + var0[var2++] = var11; + } + + Node var12 = this.findAcceptedNode(var1.x - 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); + if (this.isDiagonalValid(var1, var9, var11, var12)) { + var0[var2++] = var12; + } + + Node var13 = this.findAcceptedNode(var1.x + 1, var1.y, var1.z - 1, var3, var6, Direction.NORTH, var5); + if (this.isDiagonalValid(var1, var10, var11, var13)) { + var0[var2++] = var13; + } + + Node var14 = this.findAcceptedNode(var1.x - 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); + if (this.isDiagonalValid(var1, var9, var8, var14)) { + var0[var2++] = var14; + } + + Node var15 = this.findAcceptedNode(var1.x + 1, var1.y, var1.z + 1, var3, var6, Direction.SOUTH, var5); + if (this.isDiagonalValid(var1, var10, var8, var15)) { + var0[var2++] = var15; + } + + return var2; + } + + private Node getNodeAndUpdateCostToMax(int var0, int var1, int var2, BlockPathTypes var3, float var4) { + Node var5 = this.getNode(var0, var1, var2); + var5.type = var3; + var5.costMalus = Math.max(var5.costMalus, var4); + return var5; + } + + @Override + public Node getStart() { + BlockPos.MutableBlockPos var1 = new BlockPos.MutableBlockPos(); + int var0 = this.mob.getBlockY(); + BlockState var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); + BlockPos var3; + if (!this.mob.canStandOnFluid(var2.getFluidState())) { + if (this.canFloat() && this.mob.isInWater()) { + while (true) { + if (!var2.is(Blocks.WATER) && var2.getFluidState() != Fluids.WATER.getSource(false)) { + --var0; + break; + } + + ++var0; + var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); + } + } else if (this.mob.isOnGround()) { + var0 = Mth.floor(this.mob.getY() + 0.5); + } else { + for (var3 = this.mob.blockPosition(); (this.level.getBlockState(var3).isAir() + || this.level.getBlockState(var3).isPathfindable(this.level, var3, PathComputationType.LAND)) + && var3.getY() > this.mob.level.getMinBuildHeight(); var3 = var3.below()) { + } + + var0 = var3.above().getY(); + } + } else { + while (true) { + if (!this.mob.canStandOnFluid(var2.getFluidState())) { + --var0; + break; + } + + ++var0; + var2 = this.level.getBlockState(var1.set(this.mob.getX(), var0, this.mob.getZ())); + } + } + + var3 = this.mob.blockPosition(); + if (!this.canStartAt(var1.set(var3.getX(), var0, var3.getZ()))) { + AABB var4 = this.mob.getBoundingBox(); + if (this.canStartAt(var1.set(var4.minX, var0, var4.minZ)) + || this.canStartAt(var1.set(var4.minX, var0, var4.maxZ)) + || this.canStartAt(var1.set(var4.maxX, var0, var4.minZ)) + || this.canStartAt(var1.set(var4.maxX, var0, var4.maxZ))) { + return this.getStartNode(var1); + } + } + + return this.getStartNode(new BlockPos(var3.getX(), var0, var3.getZ())); + } + + protected Node getStartNode(BlockPos var0) { + Node var1 = this.getNode(var0); + var1.type = this.getBlockPathType(this.mob, var1.asBlockPos()); + var1.costMalus = this.mob.getPathfindingMalus(var1.type); + return var1; + } + + private boolean hasCollisions(AABB var0) { + return this.collisionCache.computeIfAbsent(var0, (var1) -> { + return !this.level.noCollision(this.mob, var0); + }); + } + + protected boolean isAmphibious() { + return false; + } + + protected boolean isDiagonalValid(Node var0, Node var1, Node var2, Node var3) { + if (var3 != null && var2 != null && var1 != null) { + if (var3.closed) { + return false; + } else if (var2.y <= var0.y && var1.y <= var0.y) { + if (var1.type != BlockPathTypes.WALKABLE_DOOR && var2.type != BlockPathTypes.WALKABLE_DOOR + && var3.type != BlockPathTypes.WALKABLE_DOOR) { + boolean var4 = var2.type == BlockPathTypes.FENCE && var1.type == BlockPathTypes.FENCE + && this.mob.getBbWidth() < 0.5; + return var3.costMalus >= 0.0F && (var2.y < var0.y || var2.costMalus >= 0.0F || var4) + && (var1.y < var0.y || var1.costMalus >= 0.0F || var4); + } else { + return false; + } + } else { + return false; + } + } else { + return false; + } + } + + protected boolean isNeighborValid(Node var0, Node var1) { + return var0 != null && !var0.closed && (var0.costMalus >= 0.0F || var1.costMalus < 0.0F); + } + + @Override + public void prepare(PathNavigationRegion var0, EntityHumanNPC var1) { + super.prepare(var0, var1); + this.oldWaterCost = var1.getPathfindingMalus(BlockPathTypes.WATER); + } + + @Override + public void prepare(PathNavigationRegion var0, Mob var1) { + super.prepare(var0, var1); + this.oldWaterCost = var1.getPathfindingMalus(BlockPathTypes.WATER); + } + + public static BlockPathTypes checkNeighbourBlocks(BlockGetter var0, BlockPos.MutableBlockPos var1, + BlockPathTypes var2) { + int var3 = var1.getX(); + int var4 = var1.getY(); + int var5 = var1.getZ(); + + for (int var6 = -1; var6 <= 1; ++var6) { + for (int var7 = -1; var7 <= 1; ++var7) { + for (int var8 = -1; var8 <= 1; ++var8) { + if (var6 != 0 || var8 != 0) { + var1.set(var3 + var6, var4 + var7, var5 + var8); + BlockState var9 = var0.getBlockState(var1); + if (var9.is(Blocks.CACTUS) || var9.is(Blocks.SWEET_BERRY_BUSH)) { + return BlockPathTypes.DANGER_OTHER; + } + + if (isBurningBlock(var9)) { + return BlockPathTypes.DANGER_FIRE; + } + + if (var0.getFluidState(var1).is(FluidTags.WATER)) { + return BlockPathTypes.WATER_BORDER; + } + } + } + } + } + + return var2; + } + + private static boolean doesBlockHavePartialCollision(BlockPathTypes var0) { + return var0 == BlockPathTypes.FENCE || var0 == BlockPathTypes.DOOR_WOOD_CLOSED + || var0 == BlockPathTypes.DOOR_IRON_CLOSED; + } + + protected static BlockPathTypes getBlockPathTypeRaw(BlockGetter var0, BlockPos var1) { + BlockState var2 = var0.getBlockState(var1); + Block var3 = var2.getBlock(); + Material var4 = var2.getMaterial(); + if (var2.isAir()) { + return BlockPathTypes.OPEN; + } else if (!var2.is(BlockTags.TRAPDOORS) && !var2.is(Blocks.LILY_PAD) && !var2.is(Blocks.BIG_DRIPLEAF)) { + if (var2.is(Blocks.POWDER_SNOW)) { + return BlockPathTypes.POWDER_SNOW; + } else if (!var2.is(Blocks.CACTUS) && !var2.is(Blocks.SWEET_BERRY_BUSH)) { + if (var2.is(Blocks.HONEY_BLOCK)) { + return BlockPathTypes.STICKY_HONEY; + } else if (var2.is(Blocks.COCOA)) { + return BlockPathTypes.COCOA; + } else { + FluidState var5 = var0.getFluidState(var1); + if (var5.is(FluidTags.LAVA)) { + return BlockPathTypes.LAVA; + } else if (isBurningBlock(var2)) { + return BlockPathTypes.DAMAGE_FIRE; + } else if (DoorBlock.isWoodenDoor(var2) && !(Boolean) var2.getValue(DoorBlock.OPEN)) { + return BlockPathTypes.DOOR_WOOD_CLOSED; + } else if (var3 instanceof DoorBlock && var4 == Material.METAL + && !(Boolean) var2.getValue(DoorBlock.OPEN)) { + return BlockPathTypes.DOOR_IRON_CLOSED; + } else if (var3 instanceof DoorBlock && var2.getValue(DoorBlock.OPEN)) { + return BlockPathTypes.DOOR_OPEN; + } else if (var3 instanceof BaseRailBlock) { + return BlockPathTypes.RAIL; + } else if (var3 instanceof LeavesBlock) { + return BlockPathTypes.LEAVES; + } else if (var2.is(BlockTags.FENCES) || var2.is(BlockTags.WALLS) + || var3 instanceof FenceGateBlock && !(Boolean) var2.getValue(FenceGateBlock.OPEN)) { + return BlockPathTypes.FENCE; + } else if (!var2.isPathfindable(var0, var1, PathComputationType.LAND)) { + return BlockPathTypes.BLOCKED; + } else { + return var5.is(FluidTags.WATER) ? BlockPathTypes.WATER : BlockPathTypes.OPEN; + } + } + } else { + return BlockPathTypes.DAMAGE_OTHER; + } + } else { + return BlockPathTypes.TRAPDOOR; + } + } + + public static BlockPathTypes getBlockPathTypeStatic(BlockGetter var0, BlockPos.MutableBlockPos var1) { + int var2 = var1.getX(); + int var3 = var1.getY(); + int var4 = var1.getZ(); + BlockPathTypes var5 = getBlockPathTypeRaw(var0, var1); + if (var5 == BlockPathTypes.OPEN && var3 >= var0.getMinBuildHeight() + 1) { + BlockPathTypes var6 = getBlockPathTypeRaw(var0, var1.set(var2, var3 - 1, var4)); + var5 = var6 != BlockPathTypes.WALKABLE && var6 != BlockPathTypes.OPEN && var6 != BlockPathTypes.WATER + && var6 != BlockPathTypes.LAVA ? BlockPathTypes.WALKABLE : BlockPathTypes.OPEN; + if (var6 == BlockPathTypes.DAMAGE_FIRE) { + var5 = BlockPathTypes.DAMAGE_FIRE; + } + + if (var6 == BlockPathTypes.DAMAGE_OTHER) { + var5 = BlockPathTypes.DAMAGE_OTHER; + } + + if (var6 == BlockPathTypes.STICKY_HONEY) { + var5 = BlockPathTypes.STICKY_HONEY; + } + + if (var6 == BlockPathTypes.POWDER_SNOW) { + var5 = BlockPathTypes.DANGER_POWDER_SNOW; + } + } + + if (var5 == BlockPathTypes.WALKABLE) { + var5 = checkNeighbourBlocks(var0, var1.set(var2, var3, var4), var5); + } + + return var5; + } + + public static double getFloorLevel(BlockGetter var0, BlockPos var1) { + BlockPos var2 = var1.below(); + VoxelShape var3 = var0.getBlockState(var2).getCollisionShape(var0, var2); + return var2.getY() + (var3.isEmpty() ? 0.0 : var3.max(Axis.Y)); + } + + public static boolean isBurningBlock(BlockState var0) { + return var0.is(BlockTags.FIRE) || var0.is(Blocks.LAVA) || var0.is(Blocks.MAGMA_BLOCK) + || CampfireBlock.isLitCampfire(var0) || var0.is(Blocks.LAVA_CAULDRON); + } + + private static final double DEFAULT_MOB_JUMP_HEIGHT = 1.125; + public static final double SPACE_BETWEEN_WALL_POSTS = 0.5; + +} diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluatorBase.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNodeEvaluatorBase.java similarity index 70% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluatorBase.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNodeEvaluatorBase.java index 727cc20c5..57c02eebc 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerNodeEvaluatorBase.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerNodeEvaluatorBase.java @@ -1,8 +1,8 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; import net.minecraft.world.entity.Mob; @@ -11,15 +11,16 @@ import net.minecraft.world.level.pathfinder.Node; import net.minecraft.world.level.pathfinder.NodeEvaluator; public abstract class PlayerNodeEvaluatorBase extends NodeEvaluator { - protected final Int2ObjectMap c = new Int2ObjectOpenHashMap(); protected boolean canFloat; protected boolean canOpenDoors; protected boolean canPassDoors; + protected boolean canWalkOverFences; protected int entityDepth; protected int entityHeight; protected int entityWidth; protected PathNavigationRegion level; protected EntityHumanNPC mob; + protected final Int2ObjectMap nodes = new Int2ObjectOpenHashMap(); @Override public boolean canFloat() { @@ -36,6 +37,11 @@ public abstract class PlayerNodeEvaluatorBase extends NodeEvaluator { return this.canPassDoors; } + @Override + public boolean canWalkOverFences() { + return this.canWalkOverFences; + } + @Override public void done() { this.level = null; @@ -44,18 +50,25 @@ public abstract class PlayerNodeEvaluatorBase extends NodeEvaluator { @Override protected Node getNode(BlockPos var0) { - return getNode(var0.getX(), var0.getY(), var0.getZ()); + return this.getNode(var0.getX(), var0.getY(), var0.getZ()); } @Override protected Node getNode(int var0, int var1, int var2) { - return this.c.computeIfAbsent(Node.createHash(var0, var1, var2), var3 -> new Node(var0, var1, var2)); + return this.nodes.computeIfAbsent(Node.createHash(var0, var1, var2), (var3) -> { + return new Node(var0, var1, var2); + }); + } + + @Override + protected net.minecraft.world.level.pathfinder.Target getTargetFromNode(Node var0) { + return new net.minecraft.world.level.pathfinder.Target(var0); } public void prepare(PathNavigationRegion var0, EntityHumanNPC var1) { - this.level = var0; this.mob = var1; - this.c.clear(); + this.level = var0; + this.nodes.clear(); this.entityWidth = Mth.floor(var1.getBbWidth() + 1.0F); this.entityHeight = Mth.floor(var1.getBbHeight() + 1.0F); this.entityDepth = Mth.floor(var1.getBbWidth() + 1.0F); @@ -64,7 +77,7 @@ public abstract class PlayerNodeEvaluatorBase extends NodeEvaluator { @Override public void prepare(PathNavigationRegion var0, Mob var1) { this.level = var0; - this.c.clear(); + this.nodes.clear(); this.entityWidth = Mth.floor(var1.getBbWidth() + 1.0F); this.entityHeight = Mth.floor(var1.getBbHeight() + 1.0F); this.entityDepth = Mth.floor(var1.getBbWidth() + 1.0F); @@ -84,4 +97,9 @@ public abstract class PlayerNodeEvaluatorBase extends NodeEvaluator { public void setCanPassDoors(boolean var0) { this.canPassDoors = var0; } + + @Override + public void setCanWalkOverFences(boolean var0) { + this.canWalkOverFences = var0; + } } diff --git a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerPathfinder.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerPathfinder.java similarity index 98% rename from v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerPathfinder.java rename to v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerPathfinder.java index b9a8a0699..8898b0f2c 100644 --- a/v1_19_R2/src/main/java/net/citizensnpcs/nms/v1_19_R2/util/PlayerPathfinder.java +++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/util/PlayerPathfinder.java @@ -1,4 +1,4 @@ -package net.citizensnpcs.nms.v1_19_R2.util; +package net.citizensnpcs.nms.v1_19_R3.util; import java.util.Comparator; import java.util.List; @@ -13,7 +13,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import net.citizensnpcs.Settings.Setting; -import net.citizensnpcs.nms.v1_19_R2.entity.EntityHumanNPC; +import net.citizensnpcs.nms.v1_19_R3.entity.EntityHumanNPC; import net.minecraft.core.BlockPos; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.Mob; diff --git a/v1_8_R3/pom.xml b/v1_8_R3/pom.xml index cd7b5bea9..e870ebf35 100644 --- a/v1_8_R3/pom.xml +++ b/v1_8_R3/pom.xml @@ -6,7 +6,7 @@ net.citizensnpcs citizens-parent - 2.0.30-SNAPSHOT + 2.0.31-SNAPSHOT citizens-v1_8_R3