diff --git a/dist/pom.xml b/dist/pom.xml
index 659994e04..ebadd2ec2 100644
--- a/dist/pom.xml
+++ b/dist/pom.xml
@@ -5,7 +5,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens
pom
@@ -93,7 +93,7 @@
${project.groupId}
- citizens-v1_20_R1
+ citizens-v1_20_R2
${project.version}
jar
compile
@@ -189,7 +189,7 @@
${project.groupId}
- citizens-v1_20_R1
+ citizens-v1_20_R2
${project.version}
jar
compile
@@ -208,7 +208,7 @@
${project.groupId}
- citizens-v1_20_R1
+ citizens-v1_20_R2
${project.version}
jar
compile
diff --git a/main/pom.xml b/main/pom.xml
index b9b068c37..b507edd8b 100644
--- a/main/pom.xml
+++ b/main/pom.xml
@@ -4,12 +4,12 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-main
UTF-8
- 1.20.1-R0.1-SNAPSHOT
+ 1.20.2-R0.1-SNAPSHOT
2.11.2
${project.version}
7.1.0-SNAPSHOT
diff --git a/main/src/main/java/net/citizensnpcs/Citizens.java b/main/src/main/java/net/citizensnpcs/Citizens.java
index 3e761979f..83d33672f 100644
--- a/main/src/main/java/net/citizensnpcs/Citizens.java
+++ b/main/src/main/java/net/citizensnpcs/Citizens.java
@@ -30,7 +30,6 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.io.Files;
import com.mojang.authlib.GameProfile;
-import com.mojang.authlib.properties.Property;
import ch.ethz.globis.phtree.PhTreeHelper;
import net.byteflux.libby.BukkitLibraryManager;
@@ -64,6 +63,7 @@ import net.citizensnpcs.api.trait.TraitInfo;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.api.util.NBTStorage;
import net.citizensnpcs.api.util.Placeholders;
+import net.citizensnpcs.api.util.SpigotUtil;
import net.citizensnpcs.api.util.Storage;
import net.citizensnpcs.api.util.Translator;
import net.citizensnpcs.api.util.YamlStorage;
@@ -87,6 +87,7 @@ import net.citizensnpcs.trait.ShopTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.PlayerUpdateTask;
+import net.citizensnpcs.util.SkinProperty;
import net.citizensnpcs.util.Util;
import net.milkbowl.vault.economy.Economy;
@@ -108,9 +109,8 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
@Override
public String getTexture(SkullMeta meta) {
- GameProfile profile = NMS.getProfile(meta);
- return profile == null ? null
- : Iterables.getFirst(profile.getProperties().get("textures"), new Property("", "")).getValue();
+ SkinProperty sp = SkinProperty.fromMojangProfile(NMS.getProfile(meta));
+ return sp == null ? null : sp.value;
}
@Override
@@ -134,7 +134,8 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
profile = new GameProfile(UUID.randomUUID(), null);
}
}
- profile.getProperties().put("textures", new Property("textures", texture));
+ profile.getProperties().put("textures",
+ new com.mojang.authlib.properties.Property("textures", texture, null));
NMS.setProfile(meta, profile);
}
@@ -382,7 +383,7 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
config = new Settings(getDataFolder());
setupTranslator();
// Disable if the server is not using the compatible Minecraft version
- String mcVersion = Util.getMinecraftRevision();
+ String mcVersion = SpigotUtil.getMinecraftPackage();
try {
NMS.loadBridge(mcVersion);
} catch (Exception e) {
diff --git a/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java b/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java
index 6ca83b641..66ce076ba 100644
--- a/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java
+++ b/main/src/main/java/net/citizensnpcs/ProtocolLibListener.java
@@ -52,6 +52,7 @@ import net.citizensnpcs.trait.MirrorTrait;
import net.citizensnpcs.trait.RotationTrait;
import net.citizensnpcs.trait.RotationTrait.PacketRotationSession;
import net.citizensnpcs.util.NMS;
+import net.citizensnpcs.util.SkinProperty;
public class ProtocolLibListener implements Listener {
private final Class> flagsClass;
@@ -152,9 +153,10 @@ public class ProtocolLibListener implements Listener {
npcInfo.getProfile().getProperties().clear();
for (String key : playerProfile.getProperties().keySet()) {
npcInfo.getProfile().getProperties().putAll(key,
- Iterables.transform(playerProfile.getProperties().get(key),
- skin -> new WrappedSignedProperty(skin.getName(), skin.getValue(),
- skin.getSignature())));
+ Iterables.transform(playerProfile.getProperties().get(key), skin -> {
+ SkinProperty sp = SkinProperty.fromMojang(skin);
+ return new WrappedSignedProperty(sp.name, sp.value, sp.signature);
+ }));
}
changed = true;
}
@@ -219,7 +221,6 @@ public class ProtocolLibListener implements Listener {
Messaging.debug("OVERWRITTEN " + type + " " + packet.getHandle());
}
});
-
}
private NPC getNPCFromPacket(PacketEvent event) {
diff --git a/main/src/main/java/net/citizensnpcs/Settings.java b/main/src/main/java/net/citizensnpcs/Settings.java
index 6df4b3b50..b11bc3872 100644
--- a/main/src/main/java/net/citizensnpcs/Settings.java
+++ b/main/src/main/java/net/citizensnpcs/Settings.java
@@ -183,6 +183,9 @@ public class Settings {
KEEP_CHUNKS_LOADED("Whether to keep NPC chunks loaded", "npc.chunks.always-keep-loaded", false),
LOCALE("Controls translation files - defaults to your system language, set to en if English required",
"general.translation.locale", ""),
+ MAX_CONTROLLABLE_FLIGHT_SPEED(
+ "The maximum flying speed that controllable NPCs can reach, in Minecraft velocity units",
+ "npc.controllable.max-flying-speed", 0.75),
MAX_CONTROLLABLE_GROUND_SPEED("The maximum speed that controllable NPCs can reach, in Minecraft velocity units",
"npc.controllable.max-ground-speed", 0.5),
MAX_NPC_LIMIT_CHECKS(
@@ -267,7 +270,7 @@ public class Settings {
"Whether to use the Citizens pathfinder instead of the Minecraft pathfinder
Much more flexible, but may have different performance characteristics",
"npc.pathfinding.use-new-finder", false),
USE_SCOREBOARD_TEAMS("npc.scoreboard-teams.enable", true),
- WARN_ON_RELOAD("general.reload-warning-enabled", true);
+ WARN_ON_RELOAD("general.reload-warning-enabled", true),;
protected String comments;
private Duration duration;
diff --git a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java
index f470cf116..4bd234a5c 100644
--- a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java
+++ b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java
@@ -473,21 +473,25 @@ public class NPCCommands {
} else if (action.equalsIgnoreCase("add")) {
if (args.argsLength() == 2)
throw new CommandUsageException();
+
if (args.hasFlag('o') && !sender.hasPermission("citizens.admin"))
throw new NoPermissionsException();
+
String command = args.getJoinedStrings(2);
CommandTrait.Hand hand = args.hasFlag('l') && args.hasFlag('r') ? CommandTrait.Hand.BOTH
: args.hasFlag('l') ? CommandTrait.Hand.LEFT : CommandTrait.Hand.RIGHT;
if (args.hasFlag('s') && hand != CommandTrait.Hand.BOTH) {
hand = hand == CommandTrait.Hand.LEFT ? CommandTrait.Hand.SHIFT_LEFT : CommandTrait.Hand.SHIFT_RIGHT;
}
+
List perms = Lists.newArrayList();
if (permissions != null) {
perms.addAll(Arrays.asList(permissions.split(",")));
}
- if (command.toLowerCase().startsWith("npc select")) {
+
+ if (command.toLowerCase().startsWith("npc select"))
throw new CommandException("npc select not currently supported within commands. Use --id instead");
- }
+
try {
int id = commands.addCommand(new NPCCommandBuilder(command, hand).addPerms(perms)
.player(args.hasFlag('p') || args.hasFlag('o')).op(args.hasFlag('o')).cooldown(cooldown)
@@ -506,7 +510,7 @@ public class NPCCommands {
throw new CommandException(Messages.NPC_COMMAND_INVALID_ERROR_MESSAGE,
Util.listValuesPretty(CommandTraitError.values()));
- commands.clearHistory(which, args.argsLength() > 3 ? args.getString(3) : args.getString(3));
+ commands.clearHistory(which, args.argsLength() > 3 ? args.getString(3) : null);
Messaging.send(sender, Messages.NPC_COMMAND_ERRORS_CLEARED, Util.prettyEnum(which));
} else if (action.equalsIgnoreCase("sequential")) {
commands.setExecutionMode(commands.getExecutionMode() == ExecutionMode.SEQUENTIAL ? ExecutionMode.LINEAR
@@ -990,16 +994,23 @@ public class NPCCommands {
@Command(
aliases = { "npc" },
- usage = "follow (player name|NPC id) (-p[rotect])",
+ usage = "follow (player name|NPC id) (-p[rotect]) (--margin [margin])",
desc = "Toggles NPC following you",
flags = "p",
modifiers = { "follow" },
min = 1,
max = 2,
permission = "citizens.npc.follow")
- public void follow(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
+ public void follow(CommandContext args, CommandSender sender, NPC npc, @Flag("margin") Double margin)
+ throws CommandException {
boolean protect = args.hasFlag('p');
FollowTrait trait = npc.getOrAddTrait(FollowTrait.class);
+ if (margin != null) {
+ trait.setFollowingMargin(margin);
+ Messaging.sendTr(sender, Messages.FOLLOW_MARGIN_SET, npc.getName(), margin);
+ return;
+ }
+
trait.setProtect(protect);
String name = sender.getName();
if (args.argsLength() > 1) {
@@ -2092,14 +2103,15 @@ public class NPCCommands {
@Command(
aliases = { "npc" },
- usage = "pathto me | here | cursor | [x] [y] [z]",
+ usage = "pathto me | here | cursor | [x] [y] [z] (--margin [distance margin])",
desc = "Starts pathfinding to a certain location",
modifiers = { "pathto" },
min = 2,
max = 4,
permission = "citizens.npc.pathto")
public void pathto(CommandContext args, CommandSender sender, NPC npc,
- @Arg(value = 1, completions = { "me", "here", "cursor" }) String option) throws CommandException {
+ @Arg(value = 1, completions = { "me", "here", "cursor" }) String option, @Flag("margin") Double margin)
+ throws CommandException {
Location loc = npc.getStoredLocation();
if (args.argsLength() == 2) {
if ((option.equalsIgnoreCase("me") || option.equalsIgnoreCase("here"))) {
@@ -2115,6 +2127,9 @@ public class NPCCommands {
loc.setZ(args.getDouble(3));
}
npc.getNavigator().setTarget(loc);
+ if (margin != null) {
+ npc.getNavigator().getLocalParameters().distanceMargin(margin);
+ }
}
@Command(
@@ -2816,13 +2831,13 @@ public class NPCCommands {
return;
} else if (url != null || file != null) {
- Messaging.sendTr(sender, Messages.FETCHING_SKIN, file);
+ Messaging.sendTr(sender, Messages.FETCHING_SKIN, url == null ? file : url);
Bukkit.getScheduler().runTaskAsynchronously(CitizensAPI.getPlugin(), () -> {
try {
JSONObject data = null;
if (file != null) {
File skinsFolder = new File(CitizensAPI.getDataFolder(), "skins");
- File skin = new File(skinsFolder, file);
+ File skin = new File(skinsFolder, Placeholders.replace(file, sender, npc));
if (!skin.exists() || !skin.isFile() || skin.isHidden()
|| !skin.getParentFile().equals(skinsFolder)) {
Bukkit.getScheduler().runTask(CitizensAPI.getPlugin(),
@@ -2832,8 +2847,10 @@ public class NPCCommands {
data = MojangSkinGenerator.generateFromPNG(Files.readAllBytes(skin.toPath()),
args.hasFlag('s'));
} else {
- data = MojangSkinGenerator.generateFromURL(url, args.hasFlag('s'));
+ data = MojangSkinGenerator.generateFromURL(Placeholders.replace(url, sender, npc),
+ args.hasFlag('s'));
}
+
String uuid = (String) data.get("uuid");
JSONObject texture = (JSONObject) data.get("texture");
String textureEncoded = (String) texture.get("value");
diff --git a/main/src/main/java/net/citizensnpcs/npc/profile/ProfileFetchThread.java b/main/src/main/java/net/citizensnpcs/npc/profile/ProfileFetchThread.java
index 00008a005..a75d3f23d 100644
--- a/main/src/main/java/net/citizensnpcs/npc/profile/ProfileFetchThread.java
+++ b/main/src/main/java/net/citizensnpcs/npc/profile/ProfileFetchThread.java
@@ -14,9 +14,7 @@ import org.bukkit.Bukkit;
import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
-import com.mojang.authlib.Agent;
import com.mojang.authlib.GameProfile;
-import com.mojang.authlib.GameProfileRepository;
import com.mojang.authlib.ProfileLookupCallback;
import net.citizensnpcs.api.CitizensAPI;
@@ -122,8 +120,6 @@ class ProfileFetchThread implements Runnable {
private void fetchRequests(final Collection requests) {
Preconditions.checkNotNull(requests);
- final GameProfileRepository repo = NMS.getGameProfileRepository();
-
String[] playerNames = new String[requests.size()];
int i = 0;
@@ -131,16 +127,20 @@ class ProfileFetchThread implements Runnable {
playerNames[i++] = request.getPlayerName();
}
- repo.findProfilesByNames(playerNames, Agent.MINECRAFT, new ProfileLookupCallback() {
- @Override
+ NMS.findProfilesByNames(playerNames, new ProfileLookupCallback() {
+ @SuppressWarnings("unused")
public void onProfileLookupFailed(GameProfile profile, Exception e) {
+ onProfileLookupFailed(profile.getName(), e);
+ }
+
+ @Override
+ public void onProfileLookupFailed(String profileName, Exception e) {
if (Messaging.isDebugging()) {
- Messaging.debug(
- "Profile lookup for player '" + profile.getName() + "' failed: " + getExceptionMsg(e));
+ Messaging.debug("Profile lookup for player '" + profileName + "' failed: " + getExceptionMsg(e));
Messaging.debug(Throwables.getStackTraceAsString(e));
}
- ProfileRequest request = findRequest(profile.getName(), requests);
+ ProfileRequest request = findRequest(profileName, requests);
if (request == null)
return;
diff --git a/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java b/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java
index 3b7317731..c8cfe1eb4 100644
--- a/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java
+++ b/main/src/main/java/net/citizensnpcs/npc/skin/Skin.java
@@ -14,9 +14,7 @@ import org.bukkit.ChatColor;
import org.bukkit.scheduler.BukkitTask;
import com.google.common.base.Preconditions;
-import com.google.common.collect.Iterables;
import com.mojang.authlib.GameProfile;
-import com.mojang.authlib.properties.Property;
import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI;
@@ -28,6 +26,7 @@ import net.citizensnpcs.npc.profile.ProfileFetchHandler;
import net.citizensnpcs.npc.profile.ProfileFetcher;
import net.citizensnpcs.npc.profile.ProfileRequest;
import net.citizensnpcs.trait.SkinTrait;
+import net.citizensnpcs.util.SkinProperty;
/**
* Stores data for a single skin.
@@ -39,7 +38,7 @@ public class Skin {
private volatile boolean isValid = true;
private final Map pending = new WeakHashMap(15);
private BukkitTask retryTask;
- private volatile Property skinData;
+ private volatile SkinProperty skinData;
private volatile UUID skinId;
private final String skinName;
@@ -86,8 +85,7 @@ public class Skin {
String cachedName = npc.data().get(CACHED_SKIN_UUID_NAME_METADATA);
String texture = skinTrait.getTexture();
if (this.skinName.equals(cachedName) && texture != null && !texture.equals("cache")) {
- Property localData = new Property("textures", texture, skinTrait.getSignature());
- setNPCTexture(entity, localData);
+ setNPCTexture(entity, new SkinProperty("textures", texture, skinTrait.getSignature()));
// check if NPC prefers to use cached skin over the latest skin.
if (entity.getNPC().data().has("player-skin-use-latest")) {
@@ -297,7 +295,7 @@ public class Skin {
}
skinId = profile.getId();
- skinData = Iterables.getFirst(profile.getProperties().get("textures"), null);
+ skinData = SkinProperty.fromMojangProfile(profile);
List entities = new ArrayList(pending.keySet());
for (SkinnableEntity entity : entities) {
@@ -383,7 +381,8 @@ public class Skin {
return skin;
}
- private static void setNPCSkinData(SkinnableEntity entity, String skinName, UUID skinId, Property skinProperty) {
+ private static void setNPCSkinData(SkinnableEntity entity, String skinName, UUID skinId,
+ SkinProperty skinProperty) {
NPC npc = entity.getNPC();
SkinTrait skinTrait = npc.getOrAddTrait(SkinTrait.class);
@@ -391,28 +390,26 @@ public class Skin {
// for use when the latest skin is not required.
npc.data().setPersistent(CACHED_SKIN_UUID_NAME_METADATA, skinName);
npc.data().setPersistent(CACHED_SKIN_UUID_METADATA, skinId.toString());
- if (skinProperty.getValue() != null) {
- skinTrait.setTexture(skinProperty.getValue(),
- skinProperty.getSignature() == null ? "" : skinProperty.getSignature());
+ if (skinProperty.value != null) {
+ skinTrait.setTexture(skinProperty.value, skinProperty.signature == null ? "" : skinProperty.signature);
setNPCTexture(entity, skinProperty);
} else {
skinTrait.clearTexture();
}
}
- private static void setNPCTexture(SkinnableEntity entity, Property skinProperty) {
+ private static void setNPCTexture(SkinnableEntity entity, SkinProperty skinProperty) {
GameProfile profile = entity.getProfile();
// don't set property if already set since this sometimes causes
// packet errors that disconnect the client.
- Property current = Iterables.getFirst(profile.getProperties().get("textures"), null);
- if (current != null && current.getValue().equals(skinProperty.getValue())
- && (current.getSignature() != null && current.getSignature().equals(skinProperty.getSignature()))) {
+ SkinProperty current = SkinProperty.fromMojangProfile(profile);
+ if (current != null && current.value.equals(skinProperty.value) && current.signature != null
+ && current.signature.equals(skinProperty.signature)) {
return;
}
- profile.getProperties().removeAll("textures"); // ensure client does not crash due to duplicate properties.
- profile.getProperties().put("textures", skinProperty);
+ skinProperty.apply(profile);
}
private static final Map CACHE = new HashMap(20);
diff --git a/main/src/main/java/net/citizensnpcs/trait/Controllable.java b/main/src/main/java/net/citizensnpcs/trait/Controllable.java
index da97a24a5..b1e92f864 100644
--- a/main/src/main/java/net/citizensnpcs/trait/Controllable.java
+++ b/main/src/main/java/net/citizensnpcs/trait/Controllable.java
@@ -273,8 +273,8 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
return enabled;
}
- private double updateHorizontalSpeed(Entity handle, Entity passenger, double speed, float speedMod) {
- double maxSpeed = Setting.MAX_CONTROLLABLE_GROUND_SPEED.asDouble();
+ private double updateHorizontalSpeed(Entity handle, Entity passenger, double speed, float speedMod,
+ double maxSpeed) {
Vector vel = handle.getVelocity();
double oldSpeed = Math.sqrt(vel.getX() * vel.getX() + vel.getZ() * vel.getZ());
double horizontal = NMS.getHorizontalMovement(passenger);
@@ -304,7 +304,7 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
if (newSpeed > oldSpeed && speed < maxSpeed) {
return (float) Math.min(maxSpeed, (speed + ((maxSpeed - speed) / 50.0D)));
} else {
- return (float) Math.max(0, (speed - ((speed) / 50.0D)));
+ return (float) Math.max(0, (speed - (speed / 50.0D)));
}
}
@@ -332,7 +332,8 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
.modifiedSpeed((onGround ? GROUND_SPEED : AIR_SPEED));
if (!Util.isHorse(npc.getEntity().getType())) {
// use minecraft horse physics
- speed = updateHorizontalSpeed(npc.getEntity(), rider, speed, speedMod);
+ speed = updateHorizontalSpeed(npc.getEntity(), rider, speed, speedMod,
+ Setting.MAX_CONTROLLABLE_GROUND_SPEED.asDouble());
}
boolean shouldJump = NMS.shouldJump(rider);
@@ -420,11 +421,13 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
return;
}
- speed = updateHorizontalSpeed(npc.getEntity(), rider, speed, 1F);
+ speed = updateHorizontalSpeed(npc.getEntity(), rider, speed, 1F,
+ Setting.MAX_CONTROLLABLE_FLIGHT_SPEED.asDouble());
boolean shouldJump = NMS.shouldJump(rider);
if (shouldJump) {
npc.getEntity().setVelocity(npc.getEntity().getVelocity().setY(0.25F));
}
+
npc.getEntity().setVelocity(npc.getEntity().getVelocity().multiply(new Vector(1, 0.98, 1)));
setMountedYaw(npc.getEntity());
}
diff --git a/main/src/main/java/net/citizensnpcs/trait/FollowTrait.java b/main/src/main/java/net/citizensnpcs/trait/FollowTrait.java
index 07275636b..ed71d5fe8 100644
--- a/main/src/main/java/net/citizensnpcs/trait/FollowTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/FollowTrait.java
@@ -28,6 +28,8 @@ public class FollowTrait extends Trait {
@Persist
private UUID followingUUID;
@Persist
+ private double margin = -1;
+ @Persist
private boolean protect;
public FollowTrait() {
@@ -50,6 +52,10 @@ public class FollowTrait extends Trait {
return entity;
}
+ public double getFollowingMargin() {
+ return margin;
+ }
+
/**
* Returns whether the trait is actively following a {@link Entity}.
*/
@@ -109,11 +115,19 @@ public class FollowTrait extends Trait {
if (!npc.getNavigator().isNavigating()) {
npc.getNavigator().setTarget(entity, false);
+ if (margin > 0) {
+ npc.getNavigator().getLocalParameters().distanceMargin(margin);
+ }
+
} else {
flock.run();
}
}
+ public void setFollowingMargin(double margin) {
+ this.margin = margin;
+ }
+
/**
* Sets whether to protect the followed Entity (similar to wolves in Minecraft, attack whoever attacks the entity).
*/
diff --git a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java
index 7e801bb94..0b5c454dd 100644
--- a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java
@@ -22,6 +22,7 @@ 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.SpigotUtil;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
@@ -210,7 +211,7 @@ public class ScoreboardTrait extends Trait {
}
if (color != null) {
- if (SUPPORT_GLOWING_COLOR && Util.getMinecraftRevision().contains("1_12_R1")) {
+ if (SUPPORT_GLOWING_COLOR && SpigotUtil.getMinecraftPackage().contains("1_12_R1")) {
SUPPORT_GLOWING_COLOR = false;
}
if (SUPPORT_GLOWING_COLOR) {
diff --git a/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java b/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java
index 9da13977b..7df4ea914 100644
--- a/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/SkinTrait.java
@@ -39,9 +39,9 @@ public class SkinTrait extends Trait {
if (skinName == null)
return;
String filled = ChatColor.stripColor(Placeholders.replace(skinName, null, npc).toLowerCase());
- Messaging.debug("Filled skin placeholder", filled, "from", skinName);
if (!filled.equalsIgnoreCase(skinName) && !filled.equalsIgnoreCase(filledPlaceholder)) {
filledPlaceholder = filled;
+ Messaging.debug("Filled skin placeholder", filled, "from", skinName);
if (update) {
onSkinChange(true);
}
diff --git a/main/src/main/java/net/citizensnpcs/util/EmptyChannel.java b/main/src/main/java/net/citizensnpcs/util/EmptyChannel.java
index f038b0685..34e493478 100644
--- a/main/src/main/java/net/citizensnpcs/util/EmptyChannel.java
+++ b/main/src/main/java/net/citizensnpcs/util/EmptyChannel.java
@@ -50,7 +50,7 @@ public class EmptyChannel extends AbstractChannel {
@Override
protected boolean isCompatible(EventLoop arg0) {
- return true;
+ return false;
}
@Override
diff --git a/main/src/main/java/net/citizensnpcs/util/EmptySocket.java b/main/src/main/java/net/citizensnpcs/util/EmptySocket.java
deleted file mode 100644
index 741d68550..000000000
--- a/main/src/main/java/net/citizensnpcs/util/EmptySocket.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package net.citizensnpcs.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-public class EmptySocket extends Socket {
- @Override
- public InputStream getInputStream() {
- return new ByteArrayInputStream(EMPTY);
- }
-
- @Override
- public OutputStream getOutputStream() {
- return new ByteArrayOutputStream(5);
- }
-
- private static final byte[] EMPTY = new byte[50];
-}
\ No newline at end of file
diff --git a/main/src/main/java/net/citizensnpcs/util/Messages.java b/main/src/main/java/net/citizensnpcs/util/Messages.java
index 5f28de6c3..a6bace3b8 100644
--- a/main/src/main/java/net/citizensnpcs/util/Messages.java
+++ b/main/src/main/java/net/citizensnpcs/util/Messages.java
@@ -123,6 +123,7 @@ public class Messages {
public static final String FETCHING_SKIN = "citizens.commands.npc.skin.fetching";
public static final String FLYABLE_SET = "citizens.commands.npc.flyable.set";
public static final String FLYABLE_UNSET = "citizens.commands.npc.flyable.unset";
+ public static final String FOLLOW_MARGIN_SET = "citizens.commands.npc.follow.margin-set";
public static final String FOLLOW_PLAYER_NOT_INGAME = "citizens.commands.npc.follow.player-not-ingame";
public static final String FOLLOW_SET = "citizens.commands.npc.follow.set";
public static final String FOLLOW_UNSET = "citizens.commands.npc.follow.unset";
diff --git a/main/src/main/java/net/citizensnpcs/util/MojangSkinGenerator.java b/main/src/main/java/net/citizensnpcs/util/MojangSkinGenerator.java
index d132359e0..680b1cf40 100644
--- a/main/src/main/java/net/citizensnpcs/util/MojangSkinGenerator.java
+++ b/main/src/main/java/net/citizensnpcs/util/MojangSkinGenerator.java
@@ -1,6 +1,5 @@
package net.citizensnpcs.util;
-import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -22,7 +21,7 @@ public class MojangSkinGenerator {
throws InterruptedException, ExecutionException {
return EXECUTOR.submit(() -> {
DataOutputStream out = null;
- BufferedReader reader = null;
+ InputStreamReader reader = null;
try {
URL target = new URL("https://api.mineskin.org/generate/upload" + (slim ? "?model=slim" : ""));
HttpURLConnection con = (HttpURLConnection) target.openConnection();
@@ -49,15 +48,16 @@ public class MojangSkinGenerator {
out.writeBytes("--*****--\r\n");
out.flush();
out.close();
- if (con.getResponseCode() != 200) {
- if (Messaging.isDebugging()) {
- reader = new BufferedReader(new InputStreamReader(con.getErrorStream()));
- Messaging.log(new String(CharStreams.toString(reader)));
- }
- return null;
+ reader = new InputStreamReader(con.getInputStream());
+ String str = CharStreams.toString(reader);
+ if (Messaging.isDebugging()) {
+ Messaging.debug(str);
}
- reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
- JSONObject output = (JSONObject) new JSONParser().parse(reader);
+
+ if (con.getResponseCode() != 200)
+ return null;
+
+ JSONObject output = (JSONObject) new JSONParser().parse(str);
JSONObject data = (JSONObject) output.get("data");
con.disconnect();
return data;
@@ -82,7 +82,7 @@ public class MojangSkinGenerator {
throws InterruptedException, ExecutionException {
return EXECUTOR.submit(() -> {
DataOutputStream out = null;
- BufferedReader reader = null;
+ InputStreamReader reader = null;
try {
URL target = new URL("https://api.mineskin.org/generate/url");
HttpURLConnection con = (HttpURLConnection) target.openConnection();
@@ -103,15 +103,16 @@ public class MojangSkinGenerator {
}
out.writeBytes(req.toJSONString().replace("\\", ""));
out.close();
- if (con.getResponseCode() != 200) {
- if (Messaging.isDebugging()) {
- reader = new BufferedReader(new InputStreamReader(con.getErrorStream()));
- Messaging.log(new String(CharStreams.toString(reader)));
- }
- return null;
+ reader = new InputStreamReader(con.getInputStream());
+ String str = CharStreams.toString(reader);
+ if (Messaging.isDebugging()) {
+ Messaging.debug(str);
}
- reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
- JSONObject output = (JSONObject) new JSONParser().parse(reader);
+
+ if (con.getResponseCode() != 200)
+ return null;
+
+ JSONObject output = (JSONObject) new JSONParser().parse(str);
JSONObject data = (JSONObject) output.get("data");
con.disconnect();
return data;
diff --git a/main/src/main/java/net/citizensnpcs/util/NMS.java b/main/src/main/java/net/citizensnpcs/util/NMS.java
index f60149a7a..27ab6e0d7 100644
--- a/main/src/main/java/net/citizensnpcs/util/NMS.java
+++ b/main/src/main/java/net/citizensnpcs/util/NMS.java
@@ -39,7 +39,7 @@ import org.bukkit.util.Vector;
import com.google.common.collect.Lists;
import com.mojang.authlib.GameProfile;
-import com.mojang.authlib.GameProfileRepository;
+import com.mojang.authlib.ProfileLookupCallback;
import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.ai.NavigatorParameters;
@@ -167,6 +167,27 @@ public class NMS {
return BRIDGE.fillProfileProperties(profile, requireSecure);
}
+ public static void findProfilesByNames(String[] names, ProfileLookupCallback cb) {
+ if (FIND_PROFILES_BY_NAMES == null) {
+ try {
+ Class> agentClass = Class.forName("com.mojang.authlib.Agent");
+ Object minecraftAgent = agentClass.getField("MINECRAFT").get(null);
+ MethodHandle mh = getMethodHandle(BRIDGE.getGameProfileRepository().getClass(), "findProfilesByNames",
+ false, String[].class, agentClass, ProfileLookupCallback.class);
+ FIND_PROFILES_BY_NAMES = MethodHandles.insertArguments(mh, 2, minecraftAgent);
+ } catch (Exception e) {
+ FIND_PROFILES_BY_NAMES = getMethodHandle(BRIDGE.getGameProfileRepository().getClass(),
+ "findProfilesByNames", false, String[].class, ProfileLookupCallback.class);
+ }
+ }
+
+ try {
+ FIND_PROFILES_BY_NAMES.invoke(BRIDGE.getGameProfileRepository(), names, cb);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+
public static BlockBreaker getBlockBreaker(Entity entity, Block targetBlock, BlockBreakerConfiguration config) {
return BRIDGE.getBlockBreaker(entity, targetBlock, config);
}
@@ -418,10 +439,6 @@ public class NMS {
return null;
}
- public static GameProfileRepository getGameProfileRepository() {
- return BRIDGE.getGameProfileRepository();
- }
-
public static MethodHandle getGetter(Class> clazz, String name) {
return getGetter(clazz, name, true);
}
@@ -625,12 +642,12 @@ public class NMS {
public static void loadBridge(String rev) throws Exception {
Class> entity = null;
try {
- entity = Class.forName("net.minecraft.server.v" + rev + ".Entity");
+ entity = Class.forName("net.minecraft.server." + rev + ".Entity");
} catch (ClassNotFoundException ex) {
entity = Class.forName("net.minecraft.world.entity.Entity");
}
giveReflectiveAccess(entity, NMS.class);
- BRIDGE = (NMSBridge) Class.forName("net.citizensnpcs.nms.v" + rev + ".util.NMSImpl").getConstructor()
+ BRIDGE = (NMSBridge) Class.forName("net.citizensnpcs.nms." + rev + ".util.NMSImpl").getConstructor()
.newInstance();
}
@@ -883,8 +900,8 @@ public class NMS {
}
private static Method ADD_OPENS;
-
private static NMSBridge BRIDGE;
+ private static MethodHandle FIND_PROFILES_BY_NAMES = null;
private static Method GET_MODULE;
private static MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
private static Field MODIFIERS_FIELD;
diff --git a/main/src/main/java/net/citizensnpcs/util/NMSBridge.java b/main/src/main/java/net/citizensnpcs/util/NMSBridge.java
index 0383e1f33..a83d7d6c0 100644
--- a/main/src/main/java/net/citizensnpcs/util/NMSBridge.java
+++ b/main/src/main/java/net/citizensnpcs/util/NMSBridge.java
@@ -84,9 +84,9 @@ public interface NMSBridge {
public double getHeight(Entity entity);
- public float getHorizontalMovement(Entity entity);
+ public float getHorizontalMovement(Entity entity);;
- public CompoundTag getNBT(ItemStack item);;
+ public CompoundTag getNBT(ItemStack item);
public NPC getNPC(Entity entity);
@@ -149,9 +149,9 @@ public interface NMSBridge {
public void registerEntityClass(Class> clazz);
- public void remove(Entity entity);
+ public void remove(Entity entity);;
- public void removeFromServerPlayerList(Player player);;
+ public void removeFromServerPlayerList(Player player);
public void removeFromWorld(org.bukkit.entity.Entity entity);
@@ -167,7 +167,7 @@ public interface NMSBridge {
public void sendTabListRemove(Player recipient, Player listPlayer);
- public void sendTeamPacket(Player recipient, Team team, int mode);
+ public void sendTeamPacket(Player recipient, Team team, int mode);;
default public void setAggressive(Entity entity, boolean aggro) {
};
@@ -176,13 +176,13 @@ public interface NMSBridge {
throw new UnsupportedOperationException();
};
- public void setBodyYaw(Entity entity, float yaw);;
+ public void setBodyYaw(Entity entity, float yaw);
- public void setBoundingBox(Entity entity, BoundingBox box);
+ public void setBoundingBox(Entity entity, BoundingBox box);;
public default void setCamelPose(Entity entity, CamelPose pose) {
throw new UnsupportedOperationException();
- };
+ }
public void setCustomName(Entity entity, Object component, String string);
diff --git a/main/src/main/java/net/citizensnpcs/util/SkinProperty.java b/main/src/main/java/net/citizensnpcs/util/SkinProperty.java
new file mode 100644
index 000000000..c88615088
--- /dev/null
+++ b/main/src/main/java/net/citizensnpcs/util/SkinProperty.java
@@ -0,0 +1,56 @@
+package net.citizensnpcs.util;
+
+import java.lang.invoke.MethodHandle;
+import java.util.Collection;
+
+import com.mojang.authlib.GameProfile;
+import com.mojang.authlib.properties.Property;
+
+public class SkinProperty {
+ public final String name;
+ public final String signature;
+ public final String value;
+
+ public SkinProperty(String name, String value, String signature) {
+ this.name = name;
+ this.value = value;
+ this.signature = signature;
+ }
+
+ public void apply(GameProfile profile) {
+ profile.getProperties().removeAll("textures"); // ensure client does not crash due to duplicate properties.
+ profile.getProperties().put("textures", new com.mojang.authlib.properties.Property(name, value, signature));
+ }
+
+ public static SkinProperty fromMojang(com.mojang.authlib.properties.Property prop) {
+ if (prop == null)
+ return null;
+ if (GET_NAME_METHOD != null) {
+ try {
+ return new SkinProperty((String) GET_NAME_METHOD.invoke(prop), (String) GET_VALUE_METHOD.invoke(prop),
+ (String) GET_SIGNATURE_METHOD.invoke(prop));
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ return new SkinProperty(prop.name(), prop.value(), prop.signature());
+ }
+
+ public static SkinProperty fromMojangProfile(GameProfile profile) {
+ if (profile == null)
+ return null;
+ Collection textures = profile.getProperties().get("textures");
+ if (textures == null || textures.size() == 0)
+ return null;
+ return fromMojang(textures.iterator().next());
+ }
+
+ private static MethodHandle GET_NAME_METHOD = null;
+ private static MethodHandle GET_SIGNATURE_METHOD = null;
+ private static MethodHandle GET_VALUE_METHOD = null;
+ static {
+ GET_NAME_METHOD = NMS.getMethodHandle(com.mojang.authlib.properties.Property.class, "getName", false);
+ GET_SIGNATURE_METHOD = NMS.getMethodHandle(com.mojang.authlib.properties.Property.class, "getSignature", false);
+ GET_VALUE_METHOD = NMS.getMethodHandle(com.mojang.authlib.properties.Property.class, "getValue", false);
+ }
+}
diff --git a/main/src/main/java/net/citizensnpcs/util/Util.java b/main/src/main/java/net/citizensnpcs/util/Util.java
index e89df16b8..8016dec51 100644
--- a/main/src/main/java/net/citizensnpcs/util/Util.java
+++ b/main/src/main/java/net/citizensnpcs/util/Util.java
@@ -236,13 +236,6 @@ public class Util {
return new XORShiftRNG();
}
- public static String getMinecraftRevision() {
- if (MINECRAFT_REVISION == null) {
- MINECRAFT_REVISION = Bukkit.getServer().getClass().getPackage().getName();
- }
- return MINECRAFT_REVISION.substring(MINECRAFT_REVISION.lastIndexOf('.') + 2);
- }
-
public static String getTeamName(UUID id) {
return "CIT-" + id.toString().replace("-", "").substring(0, 12);
}
@@ -586,7 +579,6 @@ public class Util {
}
private static final Scoreboard DUMMY_SCOREBOARD = Bukkit.getScoreboardManager().getNewScoreboard();
- private static String MINECRAFT_REVISION;
private static final DecimalFormat TWO_DIGIT_DECIMAL = new DecimalFormat();
static {
diff --git a/main/src/main/resources/messages_en.properties b/main/src/main/resources/messages_en.properties
index 7300876b6..3205b868b 100644
--- a/main/src/main/resources/messages_en.properties
+++ b/main/src/main/resources/messages_en.properties
@@ -105,6 +105,7 @@ citizens.commands.npc.fox.fox-type-set=Fox type set to [[{0}]].
citizens.commands.npc.fox.invalid-fox-type=Invalid fox type specified. Valid types are [[{0}]].
citizens.commands.npc.follow.set=[[{0}]] is now following [[{1}]].
citizens.commands.npc.follow.unset=[[{0}]] is no longer following anyone.
+citizens.commands.npc.follow.margin-set=[[{0}]]''s will now follow [[{1}]] blocks away from the target.
citizens.commands.npc.frog.invalid-variant=Invalid frog variant. Valid variants are [[{0}]].
citizens.commands.npc.frog.variant-set=Variant set to [[{0}]].
citizens.commands.npc.gamemode.describe={0}''s gamemode is [[{1}]].
diff --git a/pom.xml b/pom.xml
index 979b6d5eb..e50b04e52 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,10 +6,10 @@
pom
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
Unknown
- 2.0.32
+ 2.0.33
3.5.0
3.5.0
3.1.1
@@ -44,7 +44,7 @@
v1_16_R3
v1_18_R2
v1_19_R3
- v1_20_R1
+ v1_20_R2
dist
@@ -63,7 +63,7 @@
v1_17_R1
v1_18_R2
v1_19_R3
- v1_20_R1
+ v1_20_R2
dist
@@ -71,7 +71,7 @@
dev
main
- v1_20_R1
+ v1_20_R2
dist
diff --git a/v1_10_R1/pom.xml b/v1_10_R1/pom.xml
index d6ec0e482..5a34ce579 100644
--- a/v1_10_R1/pom.xml
+++ b/v1_10_R1/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_10_R1
diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java
index 1574cb695..6be601b26 100644
--- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java
+++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java
@@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_10_R1.entity;
import java.io.IOException;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -36,7 +35,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_10_R1.AttributeInstance;
@@ -78,6 +76,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
this.npc = (CitizensNPC) npc;
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3);
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
playerInteractManager.setGameMode(EnumGamemode.SURVIVAL);
@@ -236,13 +235,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
// swallow
}
@@ -280,7 +276,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) {
moveWithFallDamage(0, 0);
}
if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) {
diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java
index edfc36f2a..dfee30f5b 100644
--- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java
+++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/PlayerControllerMove.java
@@ -83,8 +83,7 @@ public class PlayerControllerMove extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- speed.setValue(0.1D * this.e);
- float movement = (float) (this.e * speed.getValue()) * 10;
+ float movement = (float) (this.e * speed.getValue());
this.a.l(movement);
this.a.bg = movement;
if (shouldSlimeJump() || ((d2 >= NMS.getStepHeight(a.getBukkitEntity())) && (d0 * d0 + d1 * d1 < 1.0D))) {
diff --git a/v1_11_R1/pom.xml b/v1_11_R1/pom.xml
index d6827c7bf..38d6cdf42 100644
--- a/v1_11_R1/pom.xml
+++ b/v1_11_R1/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_11_R1
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java
index 37945c665..dceb6b7ba 100644
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java
+++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java
@@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_11_R1.entity;
import java.io.IOException;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -36,7 +35,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_11_R1.AttributeInstance;
@@ -79,6 +77,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3D);
this.npc = (CitizensNPC) npc;
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
@@ -258,13 +257,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
// swallow
}
@@ -338,7 +334,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) {
moveWithFallDamage(0, 0);
}
if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) {
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java
index 4c76044f1..7459f4b0e 100644
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java
+++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/PlayerControllerMove.java
@@ -85,10 +85,7 @@ public class PlayerControllerMove extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- if (!(this.a instanceof EntitySlime)) {
- speed.setValue(0.1D * this.e);
- }
- float movement = (float) (this.e * speed.getValue()) * 10;
+ float movement = (float) (this.e * speed.getValue());
this.a.l(movement);
this.a.bf = movement;
if (shouldSlimeJump() || ((d2 >= NMS.getStepHeight(a.getBukkitEntity())) && (d0 * d0 + d1 * d1 < 1.0D))) {
diff --git a/v1_12_R1/pom.xml b/v1_12_R1/pom.xml
index 4b45b6c3c..15dced94e 100644
--- a/v1_12_R1/pom.xml
+++ b/v1_12_R1/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_12_R1
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java
index b7cf9c3af..936b547ed 100644
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java
+++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java
@@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_12_R1.entity;
import java.io.IOException;
import java.lang.invoke.MethodHandle;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -39,7 +38,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_12_R1.AttributeInstance;
@@ -82,6 +80,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3D);
this.npc = (CitizensNPC) npc;
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
@@ -267,13 +266,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
// swallow
}
@@ -355,7 +351,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) {
moveWithFallDamage(0, 0, 0);
}
if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) {
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java
index a9980b713..c869fc492 100644
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java
+++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/PlayerControllerMove.java
@@ -48,10 +48,7 @@ public class PlayerControllerMove extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- if (!(this.a instanceof EntitySlime)) {
- speed.setValue(0.1D * this.e);
- }
- float movement = (float) (this.e * speed.getValue()) * 10;
+ float movement = (float) (this.e * speed.getValue());
this.a.k(movement);
this.a.bg = movement;
if (shouldSlimeJump() || ((d2 >= NMS.getStepHeight(a.getBukkitEntity())) && (d0 * d0 + d1 * d1 < 1.0D))) {
diff --git a/v1_13_R2/pom.xml b/v1_13_R2/pom.xml
index a2bac48d0..2bd21559a 100644
--- a/v1_13_R2/pom.xml
+++ b/v1_13_R2/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_13_R2
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java
index d03e11278..c559114bb 100644
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java
+++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java
@@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_13_R2.entity;
import java.io.IOException;
import java.lang.invoke.MethodHandle;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -39,7 +38,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_13_R2.AttributeInstance;
@@ -82,6 +80,8 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3D);
+
this.npc = (CitizensNPC) npc;
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
@@ -255,15 +255,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
- // swallow
}
AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
if (range == null) {
@@ -334,7 +330,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) {
moveWithFallDamage(0, 0, 0);
}
if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) {
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java
index 40ddc81f4..39d6acc55 100644
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java
+++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/PlayerControllerMove.java
@@ -50,10 +50,7 @@ public class PlayerControllerMove extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- if (!(this.a instanceof EntitySlime)) {
- speed.setValue(0.1D * this.e);
- }
- float movement = (float) (this.e * speed.getValue()) * 10;
+ float movement = (float) (this.e * speed.getValue());
this.a.o(movement);
this.a.bj = movement;
if (shouldSlimeJump() || ((d2 >= NMS.getStepHeight(a.getBukkitEntity())) && (d0 * d0 + d1 * d1 < 1.0D))) {
diff --git a/v1_14_R1/pom.xml b/v1_14_R1/pom.xml
index b60821802..2c5cd717f 100644
--- a/v1_14_R1/pom.xml
+++ b/v1_14_R1/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_14_R1
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java
index 4a6d62e0d..2c69e8d0f 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java
+++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java
@@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_14_R1.entity;
import java.io.IOException;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -38,7 +37,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_14_R1.AttributeInstance;
@@ -82,6 +80,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3D);
this.npc = (CitizensNPC) npc;
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
@@ -255,15 +254,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
- // swallow
}
AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
if (range == null) {
@@ -339,7 +334,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) {
moveWithFallDamage(new Vec3D(0, 0, 0));
}
Vec3D mot = getMot();
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java
index 981492a81..ed3b4b0b1 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java
+++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/PlayerControllerMove.java
@@ -49,11 +49,6 @@ public class PlayerControllerMove extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- if (this.a instanceof EntitySlime) {
- speed.setValue(0.3D * this.e);
- } else {
- speed.setValue(0.2D * this.e);
- }
float movement = (float) (this.e * speed.getValue());
this.a.o(movement);
this.a.bd = movement;
diff --git a/v1_15_R1/pom.xml b/v1_15_R1/pom.xml
index 3136f8f6f..ca5718a63 100644
--- a/v1_15_R1/pom.xml
+++ b/v1_15_R1/pom.xml
@@ -4,7 +4,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_15_R1
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java
index 2aab67f14..4e277caee 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java
+++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java
@@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_15_R1.entity;
import java.io.IOException;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -37,7 +36,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_15_R1.AttributeInstance;
@@ -82,6 +80,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
this.npc = (CitizensNPC) npc;
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3D);
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
playerInteractManager.setGameMode(EnumGamemode.SURVIVAL);
@@ -255,13 +254,10 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
// swallow
}
@@ -338,7 +334,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY(), getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY(), getBukkitEntity().getWorld()))) {
moveWithFallDamage(new Vec3D(0, 0, 0));
}
Vec3D mot = getMot();
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java
index 9d7c4c7cc..c593bad21 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java
+++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/PlayerControllerMove.java
@@ -49,7 +49,6 @@ public class PlayerControllerMove extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- speed.setValue(0.3D * this.e);
float movement = (float) (this.e * speed.getValue());
this.a.o(movement);
this.a.bb = movement;
diff --git a/v1_16_R3/pom.xml b/v1_16_R3/pom.xml
index b37bc939e..2b14af460 100644
--- a/v1_16_R3/pom.xml
+++ b/v1_16_R3/pom.xml
@@ -4,7 +4,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_16_R3
diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java
index 35dab3850..33604d354 100644
--- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java
+++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java
@@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_16_R3.entity;
import java.io.IOException;
-import java.net.Socket;
import java.util.List;
import java.util.Map;
@@ -38,7 +37,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_16_R3.AxisAlignedBB;
@@ -51,6 +49,7 @@ import net.minecraft.server.v1_16_R3.EntityPlayer;
import net.minecraft.server.v1_16_R3.EnumGamemode;
import net.minecraft.server.v1_16_R3.EnumItemSlot;
import net.minecraft.server.v1_16_R3.EnumProtocolDirection;
+import net.minecraft.server.v1_16_R3.GenericAttributes;
import net.minecraft.server.v1_16_R3.IBlockData;
import net.minecraft.server.v1_16_R3.IChatBaseComponent;
import net.minecraft.server.v1_16_R3.ItemStack;
@@ -75,6 +74,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
public EntityHumanNPC(MinecraftServer minecraftServer, WorldServer world, GameProfile gameProfile,
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3D);
this.npc = (CitizensNPC) npc;
if (npc != null) {
ai = new BasicMobAI(this);
@@ -235,15 +235,11 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setPacketListener(playerConnection);
- socket.close();
} catch (IOException e) {
- // swallow
}
invulnerableTicks = 0;
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
@@ -312,7 +308,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY(), getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY(), getBukkitEntity().getWorld()))) {
moveWithFallDamage(new Vec3D(0, 0, 0));
}
Vec3D mot = getMot();
diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java
index 4a97fe5e8..d666df8a8 100644
--- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java
+++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/util/EntityMoveControl.java
@@ -50,7 +50,6 @@ public class EntityMoveControl extends ControllerMove {
this.a.yaw = a(this.a.yaw, f, 90.0F);
NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
AttributeModifiable speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- speed.setValue(0.3D * this.e);
float movement = (float) (this.e * speed.getValue());
this.a.q(movement);
this.a.aT = movement;
diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java
index e6cb4796d..162aba42b 100644
--- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java
+++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java
@@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_17_R1.entity;
import java.io.IOException;
import java.lang.invoke.MethodHandle;
-import java.net.Socket;
import java.util.List;
import org.bukkit.Bukkit;
@@ -36,7 +35,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
@@ -133,7 +131,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) {
moveWithFallDamage(Vec3.ZERO);
}
Vec3 mot = getDeltaMovement();
@@ -256,13 +254,10 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- EmptyNetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
+ EmptyNetworkManager conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
connection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setListener(connection);
- socket.close();
} catch (IOException e) {
// swallow
}
diff --git a/v1_18_R2/pom.xml b/v1_18_R2/pom.xml
index 532de4afe..0e70aee77 100644
--- a/v1_18_R2/pom.xml
+++ b/v1_18_R2/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_18_R2
diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java
index eb533817b..8cd5a5142 100644
--- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java
+++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/EntityHumanNPC.java
@@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_18_R2.entity;
import java.io.IOException;
import java.lang.invoke.MethodHandle;
-import java.net.Socket;
import java.util.List;
import org.bukkit.Bukkit;
@@ -37,7 +36,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
@@ -134,7 +132,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) {
moveWithFallDamage(Vec3.ZERO);
}
Vec3 mot = getDeltaMovement();
@@ -256,15 +254,11 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- EmptyNetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
+ EmptyNetworkManager conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
connection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setListener(connection);
- socket.close();
} catch (IOException e) {
- // swallow
}
this.invulnerableTime = 0;
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
diff --git a/v1_19_R3/pom.xml b/v1_19_R3/pom.xml
index 6b1f7e746..c5a844e11 100644
--- a/v1_19_R3/pom.xml
+++ b/v1_19_R3/pom.xml
@@ -4,7 +4,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_19_R3
diff --git a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java
index d96068b63..b289bd6b3 100644
--- a/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java
+++ b/v1_19_R3/src/main/java/net/citizensnpcs/nms/v1_19_R3/entity/EntityHumanNPC.java
@@ -2,7 +2,6 @@ package net.citizensnpcs.nms.v1_19_R3.entity;
import java.io.IOException;
import java.lang.invoke.MethodHandle;
-import java.net.Socket;
import java.util.List;
import org.bukkit.Bukkit;
@@ -35,7 +34,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
@@ -123,7 +121,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) {
moveWithFallDamage(Vec3.ZERO);
}
Vec3 mot = getDeltaMovement();
@@ -238,15 +236,11 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- EmptyNetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
+ EmptyNetworkManager conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
connection = new EmptyNetHandler(minecraftServer, conn, this);
conn.setListener(connection);
- socket.close();
} catch (IOException e) {
- // swallow
}
this.invulnerableTime = 0;
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/network/EmptyNetHandler.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/network/EmptyNetHandler.java
deleted file mode 100644
index a6eca6bad..000000000
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/network/EmptyNetHandler.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.citizensnpcs.nms.v1_20_R1.network;
-
-import net.minecraft.network.Connection;
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.server.level.ServerPlayer;
-import net.minecraft.server.network.ServerGamePacketListenerImpl;
-
-public class EmptyNetHandler extends ServerGamePacketListenerImpl {
- public EmptyNetHandler(MinecraftServer minecraftServer, Connection networkManager, ServerPlayer entityPlayer) {
- super(minecraftServer, networkManager, entityPlayer);
- }
-
- @Override
- public void send(Packet> packet) {
- }
-}
\ No newline at end of file
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/network/EmptyNetworkManager.java b/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/network/EmptyNetworkManager.java
deleted file mode 100644
index c1a989388..000000000
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/network/EmptyNetworkManager.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.citizensnpcs.nms.v1_20_R1.network;
-
-import java.io.IOException;
-
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
-import net.minecraft.network.Connection;
-import net.minecraft.network.PacketSendListener;
-import net.minecraft.network.protocol.Packet;
-import net.minecraft.network.protocol.PacketFlow;
-
-public class EmptyNetworkManager extends Connection {
- public EmptyNetworkManager(PacketFlow flag) throws IOException {
- super(flag);
- NMSImpl.initNetworkManager(this);
- }
-
- @Override
- public boolean isConnected() {
- return true;
- }
-
- @Override
- public void send(Packet packet, PacketSendListener genericfuturelistener) {
- }
-}
\ No newline at end of file
diff --git a/v1_20_R1/pom.xml b/v1_20_R2/pom.xml
similarity index 96%
rename from v1_20_R1/pom.xml
rename to v1_20_R2/pom.xml
index fbf490379..b977498a8 100644
--- a/v1_20_R1/pom.xml
+++ b/v1_20_R2/pom.xml
@@ -4,12 +4,12 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
- citizens-v1_20_R1
+ citizens-v1_20_R2
UTF-8
- 1.20.1-R0.1-SNAPSHOT
+ 1.20.2-R0.1-SNAPSHOT
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java
index c4483abf2..438177914 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AllayController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AllayController.java
@@ -1,9 +1,9 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftAllay;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftAllay;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import com.google.common.collect.Lists;
@@ -11,15 +11,15 @@ import com.mojang.datafixers.util.Pair;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.protocol.game.ClientboundSetEquipmentPacket;
import net.minecraft.server.level.ServerLevel;
@@ -225,7 +225,7 @@ public class AllayController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java
index 47b1a2d0a..50ec91c71 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ArmorStandController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ArmorStandController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftArmorStand;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftArmorStand;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.MobAI;
-import net.citizensnpcs.nms.v1_20_R1.util.MobAI.ForwardingMobAI;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.MobAI;
+import net.citizensnpcs.nms.v1_20_R2.util.MobAI.ForwardingMobAI;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -127,7 +127,7 @@ public class ArmorStandController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java
index 30f2551f0..b2a826fcb 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/AxolotlController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/AxolotlController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftAxolotl;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftAxolotl;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import com.mojang.serialization.Dynamic;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -220,7 +220,7 @@ public class AxolotlController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java
index 00426dd2b..a84c7f719 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BatController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BatController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftBat;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftBat;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -174,7 +174,7 @@ public class BatController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java
index d9f271ffa..133a533f5 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BeeController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BeeController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftBee;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftBee;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -171,7 +171,7 @@ public class BeeController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java
index 74652f7ed..b87ff3852 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/BlazeController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/BlazeController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftBlaze;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftBlaze;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -166,7 +166,7 @@ public class BlazeController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java
index a34b939ef..26e1dfc5d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CamelController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CamelController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftCamel;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftCamel;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -248,7 +248,7 @@ public class CamelController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java
index d67cd5f76..705b49bfe 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CatController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CatController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftCat;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftCat;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -203,7 +203,7 @@ public class CatController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java
index 1a60ceb8d..8b6972c08 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CaveSpiderController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CaveSpiderController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftCaveSpider;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftCaveSpider;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -202,7 +202,7 @@ public class CaveSpiderController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java
index 36f5c22a2..afc68a388 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ChickenController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ChickenController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftChicken;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftChicken;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -211,7 +211,7 @@ public class ChickenController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java
index 2b3aa909c..93a2bbe16 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CodController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CodController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftCod;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftCod;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -240,7 +240,7 @@ public class CodController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java
index 440472de3..f033f77ce 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CowController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CowController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftCow;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftCow;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -219,7 +219,7 @@ public class CowController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java
index 010bb94cc..61c3d14b8 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/CreeperController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/CreeperController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftCreeper;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftCreeper;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -214,7 +214,7 @@ public class CreeperController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java
index e30774b0d..e03f9eb3f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DolphinController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DolphinController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftDolphin;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftDolphin;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -200,7 +200,7 @@ public class DolphinController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java
index b10790826..7b15c0be9 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/DrownedController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/DrownedController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftDrowned;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftDrowned;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -192,7 +192,7 @@ public class DrownedController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java
index 149ef3f20..eeb6fda56 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EnderDragonController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EnderDragonController.java
@@ -1,24 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
-
-import java.lang.invoke.MethodHandle;
-import java.util.List;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEnderDragon;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEnderDragon;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.versioned.EnderDragonTrait;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
-import net.minecraft.core.PositionImpl;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -130,18 +126,18 @@ public class EnderDragonController extends MobEntityController {
}
if (npc.data().get(NPC.Metadata.COLLIDABLE, false)) {
try {
- KNOCKBACK.invoke(this,
+ NMSImpl.ENDERDRAGON_KNOCKBACK.invoke(this,
this.level().getEntities(this,
subEntities[6].getBoundingBox().inflate(4.0, 2.0, 4.0).move(0.0, -2.0, 0.0),
EntitySelector.NO_CREATIVE_OR_SPECTATOR));
- KNOCKBACK.invoke(this,
+ NMSImpl.ENDERDRAGON_KNOCKBACK.invoke(this,
this.level().getEntities(this,
subEntities[7].getBoundingBox().inflate(4.0, 2.0, 4.0).move(0.0, -2.0, 0.0),
EntitySelector.NO_CREATIVE_OR_SPECTATOR));
- HURT.invoke(this, this.level().getEntities(this, subEntities[0].getBoundingBox().inflate(1.0),
- EntitySelector.NO_CREATIVE_OR_SPECTATOR));
- HURT.invoke(this, this.level().getEntities(this, subEntities[1].getBoundingBox().inflate(1.0),
- EntitySelector.NO_CREATIVE_OR_SPECTATOR));
+ NMSImpl.ENDERDRAGON_HURT.invoke(this, this.level().getEntities(this,
+ subEntities[0].getBoundingBox().inflate(1.0), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
+ NMSImpl.ENDERDRAGON_HURT.invoke(this, this.level().getEntities(this,
+ subEntities[1].getBoundingBox().inflate(1.0), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
} catch (Throwable t) {
t.printStackTrace();
}
@@ -262,7 +258,7 @@ public class EnderDragonController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
@@ -280,8 +276,5 @@ public class EnderDragonController extends MobEntityController {
}
return res;
}
-
- private static final MethodHandle HURT = NMS.getMethodHandle(EnderDragon.class, "c", true, List.class);
- private static final MethodHandle KNOCKBACK = NMS.getMethodHandle(EnderDragon.class, "b", true, List.class);
}
}
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java
index 24b4fa603..53c1e880f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermanController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermanController.java
@@ -1,24 +1,24 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import java.util.Optional;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEnderman;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEnderman;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -213,7 +213,7 @@ public class EndermanController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java
index 4b5ef58e2..3db8118c3 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EndermiteController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EndermiteController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEndermite;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEndermite;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -201,7 +201,7 @@ public class EndermiteController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EntityHumanNPC.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java
similarity index 91%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EntityHumanNPC.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java
index db1b1a392..4fbf07393 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EntityHumanNPC.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EntityHumanNPC.java
@@ -1,13 +1,12 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import java.io.IOException;
import java.lang.invoke.MethodHandle;
-import java.net.Socket;
import java.util.List;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin;
@@ -21,20 +20,19 @@ 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_20_R1.network.EmptyNetHandler;
-import net.citizensnpcs.nms.v1_20_R1.network.EmptyNetworkManager;
-import net.citizensnpcs.nms.v1_20_R1.util.EmptyAdvancementDataPlayer;
-import net.citizensnpcs.nms.v1_20_R1.util.EmptyServerStatsCounter;
-import net.citizensnpcs.nms.v1_20_R1.util.MobAI;
-import net.citizensnpcs.nms.v1_20_R1.util.MobAI.ForwardingMobAI;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.network.EmptyConnection;
+import net.citizensnpcs.nms.v1_20_R2.network.EmptyPacketListener;
+import net.citizensnpcs.nms.v1_20_R2.util.EmptyAdvancementDataPlayer;
+import net.citizensnpcs.nms.v1_20_R2.util.EmptyServerStatsCounter;
+import net.citizensnpcs.nms.v1_20_R2.util.MobAI;
+import net.citizensnpcs.nms.v1_20_R2.util.MobAI.ForwardingMobAI;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
@@ -43,9 +41,11 @@ import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.contents.LiteralContents;
import net.minecraft.network.protocol.PacketFlow;
import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.level.ClientInformation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.level.ServerPlayerGameMode;
+import net.minecraft.server.network.CommonListenerCookie;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.stats.ServerStatsCounter;
import net.minecraft.tags.TagKey;
@@ -65,8 +65,9 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
private final SkinPacketTracker skinTracker;
private EmptyServerStatsCounter statsCache;
- public EntityHumanNPC(MinecraftServer minecraftServer, ServerLevel world, GameProfile gameProfile, NPC npc) {
- super(minecraftServer, world, gameProfile);
+ public EntityHumanNPC(MinecraftServer minecraftServer, ServerLevel world, GameProfile gameProfile,
+ ClientInformation ci, NPC npc) {
+ super(minecraftServer, world, gameProfile, ci);
this.npc = (CitizensNPC) npc;
if (npc != null) {
ai = new BasicMobAI(this);
@@ -76,7 +77,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
} catch (Throwable e) {
e.printStackTrace();
}
- initialise(minecraftServer);
+ initialise(minecraftServer, ci);
} else {
skinTracker = null;
}
@@ -101,9 +102,9 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
public void die(DamageSource damagesource) {
// players that die are not normally removed from the world. when the
// NPC dies, we are done with the instance and it should be removed.
- if (dead) {
+ if (dead)
return;
- }
+
super.die(damagesource);
Bukkit.getScheduler().runTaskLater(CitizensAPI.getPlugin(), () -> {
((ServerLevel) level()).removePlayerImmediately(EntityHumanNPC.this, RemovalReason.KILLED);
@@ -117,26 +118,30 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
super.doTick();
return;
}
+
super.baseTick();
boolean navigating = npc.getNavigator().isNavigating() || ai.getMoveControl().hasWanted();
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation())
- && SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(getY(), getBukkitEntity().getWorld()))) {
moveWithFallDamage(Vec3.ZERO);
}
+
Vec3 mot = getDeltaMovement();
if (Math.abs(mot.x) < EPSILON && Math.abs(mot.y) < EPSILON && Math.abs(mot.z) < EPSILON) {
setDeltaMovement(Vec3.ZERO);
}
+
if (navigating) {
if (!ai.getNavigation().isDone()) {
ai.getNavigation().tick();
}
moveOnCurrentHeading();
}
+
tickAI();
- detectEquipmentUpdates();
+ detectEquipmentUpdatesPublic();
noPhysics = isSpectator();
if (isSpectator()) {
this.onGround = false;
@@ -231,16 +236,13 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
return damaged;
}
- private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- EmptyNetworkManager conn = null;
+ private void initialise(MinecraftServer minecraftServer, ClientInformation clientInfo) {
try {
- conn = new EmptyNetworkManager(PacketFlow.CLIENTBOUND);
- connection = new EmptyNetHandler(minecraftServer, conn, this);
- conn.setListener(connection);
- socket.close();
+ EmptyConnection conn = new EmptyConnection(PacketFlow.CLIENTBOUND);
+ connection = new EmptyPacketListener(minecraftServer, conn, this,
+ new CommonListenerCookie(getProfile(), 0, clientInfo));
} catch (IOException e) {
- // swallow
+ e.printStackTrace();
}
this.invulnerableTime = 0;
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
@@ -253,9 +255,9 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
@Override
public boolean isInWall() {
- if (npc == null || noPhysics || isSleeping()) {
+ if (npc == null || noPhysics || isSleeping())
return super.isInWall();
- }
+
return Util.inBlock(getBukkitEntity());
}
@@ -356,6 +358,7 @@ public class EntityHumanNPC extends ServerPlayer implements NPCHolder, Skinnable
super.tick();
if (npc == null)
return;
+
Bukkit.getServer().getPluginManager().unsubscribeFromPermission("bukkit.broadcast.user", getBukkitEntity());
updatePackets(npc.getNavigator().isNavigating());
npc.update();
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java
index db8ac928f..004a21757 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/EvokerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/EvokerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEvoker;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEvoker;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -187,7 +187,7 @@ public class EvokerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java
index 4dfc18729..33d4a6948 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FoxController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FoxController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftFox;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftFox;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -197,7 +197,7 @@ public class FoxController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java
index f95f5969b..0873b18e0 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/FrogController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/FrogController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftFrog;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftFrog;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -200,7 +200,7 @@ public class FrogController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java
index 6936a9a94..b059c7dfd 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GhastController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GhastController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftGhast;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftGhast;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -166,7 +166,7 @@ public class GhastController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java
index ad3ea0518..2bee4dce2 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GiantController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GiantController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftGiant;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftGiant;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class GiantController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java
index 76894e241..c29f28089 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GlowSquidController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GlowSquidController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftGlowSquid;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftGlowSquid;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class GlowSquidController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java
index b7a13f8dc..1b24e9b29 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GoatController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GoatController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftGoat;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftGoat;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -197,7 +197,7 @@ public class GoatController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java
index 07b2fbfd6..8353a650d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftGuardian;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftGuardian;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -202,7 +202,7 @@ public class GuardianController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java
index fd158ead3..b3e6a6f54 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/GuardianElderController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/GuardianElderController.java
@@ -1,21 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftElderGuardian;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftElderGuardian;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -202,7 +201,7 @@ public class GuardianElderController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java
index a88e1a695..73a5384e9 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HoglinController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HoglinController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftHoglin;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftHoglin;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -192,7 +192,7 @@ public class HoglinController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java
index 468155893..56fc76250 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftHorse;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftHorse;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -243,7 +243,7 @@ public class HorseController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java
index 89dce95d0..17c687b10 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseDonkeyController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseDonkeyController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftDonkey;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftDonkey;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -243,7 +243,7 @@ public class HorseDonkeyController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java
index 89d3bf7ce..6b5e364cf 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseMuleController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseMuleController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMule;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMule;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -242,7 +242,7 @@ public class HorseMuleController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java
index bcd51af13..88dfbd64d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseSkeletonController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseSkeletonController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSkeletonHorse;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSkeletonHorse;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -242,7 +242,7 @@ public class HorseSkeletonController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java
index 425c9d906..700c3fb3d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HorseZombieController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HorseZombieController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftZombieHorse;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftZombieHorse;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -243,7 +243,7 @@ public class HorseZombieController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HumanController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java
similarity index 90%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HumanController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java
index 6c5c09d00..640a5f7e0 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/HumanController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/HumanController.java
@@ -1,10 +1,10 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
@@ -19,6 +19,7 @@ import net.citizensnpcs.trait.ScoreboardTrait;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.level.ClientInformation;
import net.minecraft.server.level.ServerLevel;
public class HumanController extends AbstractEntityController {
@@ -40,7 +41,8 @@ public class HumanController extends AbstractEntityController {
npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name);
}
final GameProfile profile = new GameProfile(uuid, name);
- final EntityHumanNPC handle = new EntityHumanNPC(MinecraftServer.getServer(), nmsWorld, profile, npc);
+ final EntityHumanNPC handle = new EntityHumanNPC(MinecraftServer.getServer(), nmsWorld, profile,
+ ClientInformation.createDefault(), npc);
Skin skin = handle.getSkinTracker().getSkin();
if (skin != null) {
skin.apply(handle);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java
index 6d1d8b22c..805ace668 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IllusionerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IllusionerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftIllusioner;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftIllusioner;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -187,7 +187,7 @@ public class IllusionerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java
index 84e391b27..d88495785 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/IronGolemController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/IronGolemController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftIronGolem;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftIronGolem;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class IronGolemController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java
index 1b0e591ae..860734d76 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/LlamaController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/LlamaController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftLlama;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftLlama;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.Controllable;
@@ -18,7 +18,7 @@ import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -242,7 +242,7 @@ public class LlamaController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java
index a44a6097d..e00f61c57 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MagmaCubeController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MagmaCubeController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMagmaCube;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMagmaCube;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -203,7 +203,7 @@ public class MagmaCubeController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MobEntityController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MobEntityController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java
index 8e3c8b5d5..113b14bea 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MobEntityController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MobEntityController.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import java.lang.reflect.Constructor;
import java.util.Map;
@@ -6,13 +6,13 @@ import java.util.WeakHashMap;
import org.bukkit.Location;
import org.bukkit.block.BlockFace;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
import org.bukkit.entity.Entity;
import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
-import net.citizensnpcs.nms.v1_20_R1.util.PitchableLookControl;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.PitchableLookControl;
import net.citizensnpcs.npc.AbstractEntityController;
import net.citizensnpcs.trait.ScoreboardTrait;
import net.minecraft.world.entity.EntityType;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java
index 919c9caa4..d7863444b 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/MushroomCowController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/MushroomCowController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMushroomCow;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMushroomCow;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -206,7 +206,7 @@ public class MushroomCowController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java
index 3df3700d5..8da5bd5ba 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/OcelotController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/OcelotController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftOcelot;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftOcelot;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -203,7 +203,7 @@ public class OcelotController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java
index 51a84a407..5eaf2c00a 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PandaController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PandaController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPanda;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPanda;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -197,7 +197,7 @@ public class PandaController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java
index 01f476aa7..64315c69b 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ParrotController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ParrotController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftParrot;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftParrot;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -177,7 +177,7 @@ public class ParrotController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java
index 2152d6931..e6e657784 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PhantomController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PhantomController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPhantom;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPhantom;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -232,7 +232,7 @@ public class PhantomController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java
index cce243b50..e86cfeb49 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPig;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPig;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -204,7 +204,7 @@ public class PigController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java
index ffe16dfa5..067b34ea9 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PigZombieController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PigZombieController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPigZombie;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPigZombie;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -186,7 +186,7 @@ public class PigZombieController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java
index d42b9ef3d..2ba33efe0 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinBruteController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinBruteController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPiglinBrute;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPiglinBrute;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -189,7 +189,7 @@ public class PiglinBruteController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java
index e09c61f89..fe335b6c7 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PiglinController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PiglinController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPiglin;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPiglin;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -189,7 +189,7 @@ public class PiglinController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java
index 0774e97ce..f17a695e2 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PillagerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PillagerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPillager;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPillager;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -197,7 +197,7 @@ public class PillagerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java
index afb7db3f7..1ab24ee57 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PolarBearController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PolarBearController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPolarBear;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPolarBear;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.server.level.ServerLevel;
@@ -171,7 +171,7 @@ public class PolarBearController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java
index 8ea4b5e4e..52b6e1b96 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/PufferFishController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/PufferFishController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPufferFish;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPufferFish;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.versioned.PufferFishTrait;
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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -243,7 +243,7 @@ public class PufferFishController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java
index b01b0b1a1..794656ebd 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RabbitController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RabbitController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftRabbit;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftRabbit;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -217,7 +217,7 @@ public class RabbitController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java
index 80eb67af4..ad14131c3 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/RavagerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/RavagerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftRavager;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftRavager;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -202,7 +202,7 @@ public class RavagerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java
index 28773850f..ab523f106 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SalmonController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SalmonController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSalmon;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSalmon;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -231,7 +231,7 @@ public class SalmonController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java
index f97b3d474..737a41928 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SheepController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SheepController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSheep;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSheep;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -196,7 +196,7 @@ public class SheepController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java
index 3d161ad74..9954f042e 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ShulkerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ShulkerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftShulker;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftShulker;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -199,7 +199,7 @@ public class ShulkerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java
index a0da56a4a..ddda89b5a 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SilverfishController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SilverfishController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSilverfish;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSilverfish;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SilverfishController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java
index b4b778c48..88667bee4 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSkeleton;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSkeleton;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SkeletonController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java
index aa236acc8..508409ee5 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonStrayController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonStrayController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftStray;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftStray;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SkeletonStrayController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java
index c26d321c5..73779b9da 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SkeletonWitherController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SkeletonWitherController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWitherSkeleton;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWitherSkeleton;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SkeletonWitherController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java
index 8be4a9cb0..117cdfcd7 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SlimeController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SlimeController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSlime;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSlime;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -204,7 +204,7 @@ public class SlimeController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java
index ba911f532..17efae144 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnifferController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnifferController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSniffer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSniffer;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -213,7 +213,7 @@ public class SnifferController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java
index 6bbee87a3..ea2214b54 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SnowmanController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SnowmanController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSnowman;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSnowman;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SnowmanController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java
index 5d87ad96f..10020af9a 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SpiderController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SpiderController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSpider;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSpider;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SpiderController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java
index 169c81589..693dcccb4 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/SquidController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/SquidController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSquid;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSquid;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class SquidController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java
index 91800b9dc..0fb39b12a 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/StriderController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/StriderController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftStrider;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftStrider;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -186,7 +186,7 @@ public class StriderController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java
index c2fe9e639..02d3c5da1 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TadpoleController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TadpoleController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTadpole;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTadpole;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -231,7 +231,7 @@ public class TadpoleController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java
index 235435104..f019fb512 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TraderLlamaController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TraderLlamaController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTraderLlama;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTraderLlama;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.trait.HorseModifiers;
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;
@@ -215,7 +215,7 @@ public class TraderLlamaController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java
index e61479756..3ab1e28fd 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TropicalFishController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TropicalFishController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTropicalFish;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTropicalFish;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -233,7 +233,7 @@ public class TropicalFishController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java
index aab81367c..7d5b698ee 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/TurtleController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/TurtleController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTurtle;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTurtle;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.EntityMoveControl;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.EntityMoveControl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -208,7 +208,7 @@ public class TurtleController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java
index 0a174e8a0..fdd19c7fd 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VexController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VexController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftVex;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftVex;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -164,7 +164,7 @@ public class VexController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java
index 62a20ee49..3b98ca62f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VillagerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VillagerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftVillager;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftVillager;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -233,7 +233,7 @@ public class VillagerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java
index 172a7e316..e2537a494 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/VindicatorController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/VindicatorController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftVindicator;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftVindicator;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -197,7 +197,7 @@ public class VindicatorController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java
index a49261f52..61176857f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WanderingTraderController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WanderingTraderController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWanderingTrader;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWanderingTrader;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -237,7 +237,7 @@ public class WanderingTraderController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java
index 4c9251c1c..dd2ed643f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WardenController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WardenController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWarden;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWarden;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -194,7 +194,7 @@ public class WardenController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java
index 0fcc63e52..226632855 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitchController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitchController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWitch;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWitch;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -195,7 +195,7 @@ public class WitchController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java
similarity index 92%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java
index e666bbb78..99d8d7292 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WitherController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WitherController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWither;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWither;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -175,7 +175,7 @@ public class WitherController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java
index f01176fc7..a0f56ab52 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/WolfController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/WolfController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWolf;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWolf;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -204,7 +204,7 @@ public class WolfController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java
index a5d7a91c2..0ef4b3314 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZoglinController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZoglinController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftZoglin;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftZoglin;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -188,7 +188,7 @@ public class ZoglinController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java
index 9d5e5b463..55b97342e 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftZombie;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftZombie;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -186,7 +186,7 @@ public class ZombieController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java
index a968635c3..f9d1ffa8d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieHuskController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieHuskController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftHusk;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftHusk;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -186,7 +186,7 @@ public class ZombieHuskController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java
index 089216821..d55f79a4d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/ZombieVillagerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/ZombieVillagerController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity;
+package net.citizensnpcs.nms.v1_20_R2.entity;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftVillagerZombie;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftVillagerZombie;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -187,7 +187,7 @@ public class ZombieVillagerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java
index dfa5d6f06..500420ca5 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/AreaEffectCloudController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/AreaEffectCloudController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftAreaEffectCloud;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftAreaEffectCloud;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -108,7 +108,7 @@ public class AreaEffectCloudController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java
index 74f7021a4..92f404064 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BlockDisplayController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BlockDisplayController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftBlockDisplay;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftBlockDisplay;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -108,7 +108,7 @@ public class BlockDisplayController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java
index ad58a769a..90ca7045c 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/BoatController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/BoatController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftBoat;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftBoat;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
-import net.minecraft.core.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
@@ -173,7 +173,7 @@ public class BoatController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java
index 3fe2d9419..e3bbbeafc 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ChestBoatController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ChestBoatController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftChestBoat;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftChestBoat;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
-import net.minecraft.core.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
@@ -174,7 +174,7 @@ public class ChestBoatController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java
index 789f8ce32..89022334a 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/DragonFireballController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/DragonFireballController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftDragonFireball;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftDragonFireball;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -117,7 +117,7 @@ public class DragonFireballController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java
similarity index 89%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java
index 43a8345c6..d867069f9 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EggController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EggController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEgg;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEgg;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.AbstractEntityController;
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;
@@ -122,7 +122,7 @@ public class EggController extends AbstractEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java
index a721b8853..2f893d247 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderCrystalController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderCrystalController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEnderCrystal;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEnderCrystal;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -108,7 +108,7 @@ public class EnderCrystalController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java
index 831d1a709..cd083df5d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderPearlController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderPearlController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEnderPearl;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEnderPearl;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.entity.EnderPearl;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -109,7 +109,7 @@ public class EnderPearlController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java
index 5ffc6d105..24b890ad2 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EnderSignalController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EnderSignalController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEnderSignal;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEnderSignal;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.entity.EnderSignal;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -109,7 +109,7 @@ public class EnderSignalController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java
similarity index 89%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java
index c74802a4a..5921ece9b 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/EvokerFangsController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/EvokerFangsController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEvokerFangs;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEvokerFangs;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -117,7 +117,7 @@ public class EvokerFangsController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java
index 3750d087b..0d0e677ab 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ExperienceOrbController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ExperienceOrbController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftExperienceOrb;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftExperienceOrb;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class ExperienceOrbController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java
similarity index 90%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java
index 7d30aed02..524c1f511 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FallingBlockController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FallingBlockController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftFallingBlock;
-import org.bukkit.craftbukkit.v1_20_R1.util.CraftMagicNumbers;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftFallingBlock;
+import org.bukkit.craftbukkit.v1_20_R2.util.CraftMagicNumbers;
import org.bukkit.entity.FallingBlock;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.AbstractEntityController;
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;
@@ -127,7 +127,7 @@ public class FallingBlockController extends AbstractEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java
index 5df179aa8..23db45cd1 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FireworkController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FireworkController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftFirework;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftFirework;
import org.bukkit.entity.Firework;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class FireworkController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java
index 6cd10882a..93334b646 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/FishingHookController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/FishingHookController.java
@@ -1,28 +1,28 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftFishHook;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.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_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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.ClientInformation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.tags.TagKey;
@@ -46,7 +46,7 @@ public class FishingHookController extends MobEntityController {
protected org.bukkit.entity.Entity createEntity(Location at, NPC npc) {
ServerLevel level = ((CraftWorld) at.getWorld()).getHandle();
ServerPlayer sp = new ServerPlayer(level.getServer(), level,
- new GameProfile(UUID.randomUUID(), "dummyfishhook")) {
+ new GameProfile(UUID.randomUUID(), "dummyfishhook"), ClientInformation.createDefault()) {
};
sp.setPos(at.getX(), at.getY(), at.getZ());
sp.setYRot(at.getYaw());
@@ -135,7 +135,7 @@ public class FishingHookController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java
similarity index 89%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java
index fd2f41780..f0639d196 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/GlowItemFrameController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/GlowItemFrameController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftGlowItemFrame;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftGlowItemFrame;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ItemFrameController.EntityItemFrameNPC;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ItemFrameController.EntityItemFrameNPC;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
-import net.minecraft.core.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.tags.TagKey;
@@ -119,7 +119,7 @@ public class GlowItemFrameController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java
index 9b2421b56..977db0575 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/InteractionController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/InteractionController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftInteraction;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftInteraction;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class InteractionController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java
similarity index 89%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java
index 5843673e7..2b6176094 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftItem;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftItem;
+import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack;
import org.bukkit.entity.Item;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.AbstractEntityController;
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;
@@ -122,7 +122,7 @@ public class ItemController extends AbstractEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java
similarity index 86%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java
index ba3e83b49..2f00a0f8d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemDisplayController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemDisplayController.java
@@ -1,23 +1,23 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftItemDisplay;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftItemDisplay;
+import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -115,7 +115,7 @@ public class ItemDisplayController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java
similarity index 90%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java
index 5016b82d5..d09604e19 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ItemFrameController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ItemFrameController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftItemFrame;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftItemFrame;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
-import net.minecraft.core.PositionImpl;
+
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.tags.TagKey;
@@ -118,7 +118,7 @@ public class ItemFrameController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java
index ce98de5d4..592e8130e 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LargeFireballController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LargeFireballController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftLargeFireball;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftLargeFireball;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -111,7 +111,7 @@ public class LargeFireballController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java
index bfd1c773c..969a71516 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LeashController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LeashController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftLeash;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftLeash;
import org.bukkit.entity.LeashHitch;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -108,7 +108,7 @@ public class LeashController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java
similarity index 89%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java
index 867db5c25..423e31302 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/LlamaSpitController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/LlamaSpitController.java
@@ -1,22 +1,22 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
import org.bukkit.Location;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftLlamaSpit;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftLlamaSpit;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
import net.citizensnpcs.npc.AbstractEntityController;
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;
@@ -119,7 +119,7 @@ public class LlamaSpitController extends AbstractEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java
index a620db84d..50679959f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MarkerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MarkerController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMarker;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMarker;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class MarkerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java
index 7e0322c3f..c60d1a711 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartChestController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartChestController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMinecartChest;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMinecartChest;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class MinecartChestController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java
index 7a42e4c9a..de973e8a2 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartCommandController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartCommandController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMinecartCommand;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMinecartCommand;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class MinecartCommandController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java
index 9208b5e8a..cbe23c19e 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartFurnaceController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartFurnaceController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMinecartFurnace;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMinecartFurnace;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class MinecartFurnaceController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java
similarity index 91%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java
index 0907822ed..de4a97aff 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartHopperController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartHopperController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -90,7 +90,7 @@ public class MinecartHopperController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java
index 707f8e45e..56ec6a2fc 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartRideableController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartRideableController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftMinecartRideable;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMinecartRideable;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class MinecartRideableController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java
similarity index 91%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java
index 6b668d76b..6ddd7f5e4 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartSpawnerController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartSpawnerController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -90,7 +90,7 @@ public class MinecartSpawnerController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java
similarity index 91%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java
index 2da9d2065..134c116b9 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/MinecartTNTController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/MinecartTNTController.java
@@ -1,16 +1,16 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.entity.Minecart;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -90,7 +90,7 @@ public class MinecartTNTController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java
index 4dae895af..2ff83a073 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/PaintingController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/PaintingController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPainting;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPainting;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -107,7 +107,7 @@ public class PaintingController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java
index d47c79af8..5b913fb2b 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ShulkerBulletController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ShulkerBulletController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftShulkerBullet;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftShulkerBullet;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class ShulkerBulletController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java
index 10860f2e7..b3196cf0f 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SmallFireballController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SmallFireballController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSmallFireball;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSmallFireball;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class SmallFireballController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java
index edbf640e2..c68ee0629 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SnowballController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SnowballController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftSnowball;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftSnowball;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class SnowballController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java
index 9c20a9384..61ad8ef85 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/SpectralArrowController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/SpectralArrowController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftArrow;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftArrow;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
import org.bukkit.entity.Arrow;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class SpectralArrowController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java
index aea997e01..c23024224 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TNTPrimedController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TNTPrimedController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTNTPrimed;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTNTPrimed;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class TNTPrimedController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java
index d3344f175..c3a2dcd7e 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TextDisplayController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TextDisplayController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTextDisplay;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTextDisplay;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class TextDisplayController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java
similarity index 88%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java
index 61d6f61b1..d83a89685 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownExpBottleController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownExpBottleController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftThrownExpBottle;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftThrownExpBottle;
import org.bukkit.entity.ThrownExpBottle;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class ThrownExpBottleController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java
similarity index 89%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java
index de9bc44b1..ec51e1ea6 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownPotionController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownPotionController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftThrownPotion;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftThrownPotion;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -107,7 +107,7 @@ public class ThrownPotionController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java
index 816479b01..22dca2a73 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/ThrownTridentController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/ThrownTridentController.java
@@ -1,21 +1,21 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTrident;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTrident;
import org.bukkit.entity.Trident;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -103,7 +103,7 @@ public class ThrownTridentController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java
index 0c402575b..0c8a82be0 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/TippedArrowController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/TippedArrowController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftTippedArrow;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftTippedArrow;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class TippedArrowController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java
similarity index 87%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java
index 5a3afd710..c2843cb37 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/entity/nonliving/WitherSkullController.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/entity/nonliving/WitherSkullController.java
@@ -1,20 +1,20 @@
-package net.citizensnpcs.nms.v1_20_R1.entity.nonliving;
+package net.citizensnpcs.nms.v1_20_R2.entity.nonliving;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.v1_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWitherSkull;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWitherSkull;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.MobEntityController;
-import net.citizensnpcs.nms.v1_20_R1.util.ForwardingNPCHolder;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSBoundingBox;
-import net.citizensnpcs.nms.v1_20_R1.util.NMSImpl;
+import net.citizensnpcs.nms.v1_20_R2.entity.MobEntityController;
+import net.citizensnpcs.nms.v1_20_R2.util.ForwardingNPCHolder;
+import net.citizensnpcs.nms.v1_20_R2.util.NMSBoundingBox;
+import net.citizensnpcs.nms.v1_20_R2.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;
@@ -102,7 +102,7 @@ public class WitherSkullController extends MobEntityController {
}
@Override
- public Entity teleportTo(ServerLevel worldserver, PositionImpl location) {
+ public Entity teleportTo(ServerLevel worldserver, Vec3 location) {
if (npc == null)
return super.teleportTo(worldserver, location);
return NMSImpl.teleportAcrossWorld(this, worldserver, location);
diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java
new file mode 100644
index 000000000..c10cc4d26
--- /dev/null
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyConnection.java
@@ -0,0 +1,41 @@
+package net.citizensnpcs.nms.v1_20_R2.network;
+
+import java.io.IOException;
+import java.net.SocketAddress;
+
+import net.citizensnpcs.nms.v1_20_R2.util.NMSImpl;
+import net.citizensnpcs.util.EmptyChannel;
+import net.minecraft.network.Connection;
+import net.minecraft.network.PacketListener;
+import net.minecraft.network.PacketSendListener;
+import net.minecraft.network.protocol.Packet;
+import net.minecraft.network.protocol.PacketFlow;
+
+public class EmptyConnection extends Connection {
+ public EmptyConnection(PacketFlow flag) throws IOException {
+ super(flag);
+ channel = new EmptyChannel(null);
+ address = new SocketAddress() {
+ private static final long serialVersionUID = 8207338859896320185L;
+ };
+ }
+
+ @Override
+ public boolean isConnected() {
+ return true;
+ }
+
+ @Override
+ public void send(Packet packet, PacketSendListener genericfuturelistener) {
+ }
+
+ @Override
+ public void setListener(PacketListener pl) {
+ try {
+ NMSImpl.CONNECTION_PACKET_LISTENER.invoke(this, pl);
+ NMSImpl.CONNECTION_DISCONNECT_LISTENER.invoke(this, null);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
diff --git a/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyPacketListener.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyPacketListener.java
new file mode 100644
index 000000000..c5e45f64c
--- /dev/null
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/network/EmptyPacketListener.java
@@ -0,0 +1,19 @@
+package net.citizensnpcs.nms.v1_20_R2.network;
+
+import net.minecraft.network.Connection;
+import net.minecraft.network.protocol.Packet;
+import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.server.network.CommonListenerCookie;
+import net.minecraft.server.network.ServerGamePacketListenerImpl;
+
+public class EmptyPacketListener extends ServerGamePacketListenerImpl {
+ public EmptyPacketListener(MinecraftServer minecraftServer, Connection networkManager, ServerPlayer entityPlayer,
+ CommonListenerCookie clc) {
+ super(minecraftServer, networkManager, entityPlayer, clc);
+ }
+
+ @Override
+ public void send(Packet> packet) {
+ }
+}
\ No newline at end of file
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CitizensBlockBreaker.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java
similarity index 97%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CitizensBlockBreaker.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java
index 9de5208c6..201714f67 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CitizensBlockBreaker.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensBlockBreaker.java
@@ -1,6 +1,6 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack;
import net.citizensnpcs.util.AbstractBlockBreaker;
import net.minecraft.core.BlockPos;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CitizensEntityTracker.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java
similarity index 91%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CitizensEntityTracker.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java
index 956882c42..3819d15f4 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CitizensEntityTracker.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CitizensEntityTracker.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.lang.invoke.MethodHandle;
import java.util.Set;
@@ -13,7 +13,7 @@ import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.event.NPCSeenByPlayerEvent;
import net.citizensnpcs.api.npc.NPC;
-import net.citizensnpcs.nms.v1_20_R1.entity.EntityHumanNPC;
+import net.citizensnpcs.nms.v1_20_R2.entity.EntityHumanNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
@@ -55,7 +55,7 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity {
}
public CitizensEntityTracker(ChunkMap map, TrackedEntity entry) {
- this(map, getTracker(entry), getTrackingDistance(entry), getE(entry), getF(entry));
+ this(map, getTracker(entry), getTrackingDistance(entry), getUpdateInterval(entry), getTrackDelta(entry));
}
public void updateLastPlayer(ServerPlayer lastUpdatedPlayer) {
@@ -131,18 +131,18 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity {
super.updatePlayer(entityplayer);
}
- private static int getE(TrackedEntity entry) {
+ private static int getUpdateInterval(TrackedEntity entry) {
try {
- return (int) E.invoke(TRACKER_ENTRY.invoke(entry));
+ return (int) UPDATE_INTERVAL.invoke(TRACKER_ENTRY.invoke(entry));
} catch (Throwable e) {
e.printStackTrace();
}
return 0;
}
- private static boolean getF(TrackedEntity entry) {
+ private static boolean getTrackDelta(TrackedEntity entry) {
try {
- return (boolean) F.invoke(TRACKER_ENTRY.invoke(entry));
+ return (boolean) TRACK_DELTA.invoke(TRACKER_ENTRY.invoke(entry));
} catch (Throwable e) {
e.printStackTrace();
}
@@ -167,8 +167,8 @@ public class CitizensEntityTracker extends ChunkMap.TrackedEntity {
return 0;
}
- private static final MethodHandle E = NMS.getGetter(ServerEntity.class, "e");
- private static final MethodHandle F = NMS.getGetter(ServerEntity.class, "f");
+ private static final MethodHandle UPDATE_INTERVAL = NMS.getGetter(ServerEntity.class, "h");
+ private static final MethodHandle TRACK_DELTA = NMS.getGetter(ServerEntity.class, "i");
private static volatile Boolean REQUIRES_SYNC;
private static final MethodHandle TRACKER = NMS.getFirstGetter(TrackedEntity.class, Entity.class);
private static final MethodHandle TRACKER_ENTRY = NMS.getFirstGetter(TrackedEntity.class, ServerEntity.class);
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CustomEntityRegistry.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CustomEntityRegistry.java
similarity index 99%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CustomEntityRegistry.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CustomEntityRegistry.java
index 6fe033b29..df444fdb1 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/CustomEntityRegistry.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/CustomEntityRegistry.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.lang.invoke.MethodHandle;
import java.util.Iterator;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EmptyAdvancementDataPlayer.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java
similarity index 80%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EmptyAdvancementDataPlayer.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java
index e7ac4d7ea..7d4ae98b3 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EmptyAdvancementDataPlayer.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyAdvancementDataPlayer.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.io.File;
import java.lang.invoke.MethodHandle;
@@ -10,7 +10,7 @@ import com.mojang.datafixers.DataFixer;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.util.NMS;
-import net.minecraft.advancements.Advancement;
+import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.advancements.AdvancementProgress;
import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager;
@@ -25,7 +25,7 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements {
}
@Override
- public boolean award(Advancement advancement, String s) {
+ public boolean award(AdvancementHolder advancement, String s) {
return false;
}
@@ -34,12 +34,16 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements {
}
@Override
- public AdvancementProgress getOrStartProgress(Advancement advancement) {
+ public AdvancementProgress getOrStartProgress(AdvancementHolder advancement) {
return new AdvancementProgress();
}
@Override
- public boolean revoke(Advancement advancement, String s) {
+ public void reload(ServerAdvancementManager sam) {
+ }
+
+ @Override
+ public boolean revoke(AdvancementHolder advancement, String s) {
return false;
}
@@ -53,7 +57,7 @@ public class EmptyAdvancementDataPlayer extends PlayerAdvancements {
}
@Override
- public void setSelectedTab(Advancement advancement) {
+ public void setSelectedTab(AdvancementHolder advancement) {
}
@Override
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EmptyServerStatsCounter.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyServerStatsCounter.java
similarity index 95%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EmptyServerStatsCounter.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyServerStatsCounter.java
index cb694acfb..028ea398c 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EmptyServerStatsCounter.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EmptyServerStatsCounter.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import com.mojang.datafixers.DataFixer;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityJumpControl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityJumpControl.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityJumpControl.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityJumpControl.java
index 9936b1736..e7d5d04df 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityJumpControl.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityJumpControl.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityMoveControl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java
similarity index 98%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityMoveControl.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java
index 74b1a3d4f..2755b8d1a 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityMoveControl.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityMoveControl.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.Random;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNavigation.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java
similarity index 98%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNavigation.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java
index 5eabc706a..4ab0f52f7 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNavigation.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNavigation.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.Set;
import java.util.stream.Collectors;
@@ -137,7 +137,7 @@ public class EntityNavigation extends PathNavigation {
@Override
protected boolean canUpdatePath() {
- return (this.mob.onGround() || isInLiquid() || this.mob.isPassenger());
+ return (this.mob.onGround() || this.mob.isInLiquid() || this.mob.isPassenger());
}
@Override
@@ -330,11 +330,6 @@ public class EntityNavigation extends PathNavigation {
return (this.path == null || this.path.isDone());
}
- @Override
- protected boolean isInLiquid() {
- return (this.mob.isInWaterOrBubble() || this.mob.isInLava());
- }
-
@Override
public boolean isInProgress() {
return !isDone();
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNodeEvaluator.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java
similarity index 99%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNodeEvaluator.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java
index 054bcecec..cabe58fd3 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNodeEvaluator.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluator.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.EnumSet;
import java.util.Iterator;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNodeEvaluatorBase.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluatorBase.java
similarity index 98%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNodeEvaluatorBase.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluatorBase.java
index abe259842..cfd57abbf 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityNodeEvaluatorBase.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityNodeEvaluatorBase.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityPathfinder.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java
similarity index 61%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityPathfinder.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java
index 84638406e..59c2cb1dc 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/EntityPathfinder.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/EntityPathfinder.java
@@ -1,6 +1,7 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.Comparator;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -9,6 +10,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@@ -64,54 +66,73 @@ public class EntityPathfinder extends PathFinder {
private Path findPath(ProfilerFiller var0, Node var1, Map var2, float var3, int var4,
float var5) {
Set var6 = var2.keySet();
- var1.g = 0.0F;
- var1.h = getBestH(var1, var6);
+ var1.f = 0.0F;
+ var1.h = this.getBestH(var1, var6);
var1.f = var1.h;
this.openSet.clear();
this.openSet.insert(var1);
+ Set var7 = ImmutableSet.of();
int var8 = 0;
Set var9 = Sets.newHashSetWithExpectedSize(var6.size());
int var10 = (int) (this.maxVisitedNodes * var5);
- while (!this.openSet.isEmpty() && ++var8 < var10) {
- Node node = this.openSet.pop();
- node.closed = true;
- for (Target target : var6) {
- if (node.distanceManhattan(target) <= var4) {
- target.setReached();
- var9.add(target);
+
+ while (!this.openSet.isEmpty()) {
+ ++var8;
+ if (var8 >= var10) {
+ break;
+ }
+
+ Node var11 = this.openSet.pop();
+ var11.closed = true;
+ Iterator var13i = var6.iterator();
+
+ while (var13i.hasNext()) {
+ Target var13 = (Target) var13i.next();
+ if (var11.distanceManhattan(var13) <= var4) {
+ var13.setReached();
+ var9.add(var13);
}
}
- if (!var9.isEmpty())
+
+ if (!var9.isEmpty()) {
break;
- if (node.distanceTo(var1) >= var3)
- continue;
- int i = this.nodeEvaluator.getNeighbors(this.neighbors, node);
- for (int var13 = 0; var13 < i; var13++) {
- Node var14 = this.neighbors[var13];
- float var15 = node.distanceTo(var14);
- node.walkedDistance += var15;
- float var16 = node.g + var15 + var14.costMalus;
- if (var14.walkedDistance < var3 && (!var14.inOpenSet() || var16 < var14.g)) {
- var14.cameFrom = node;
- var14.g = var16;
- var14.h = getBestH(var14, var6) * 1.5F;
- if (var14.inOpenSet()) {
- this.openSet.changeCost(var14, var14.g + var14.h);
- } else {
- var14.f = var14.g + var14.h;
- this.openSet.insert(var14);
+ }
+
+ if (!(var11.distanceTo(var1) >= var3)) {
+ int var12 = this.nodeEvaluator.getNeighbors(this.neighbors, var11);
+
+ for (int var13 = 0; var13 < var12; ++var13) {
+ Node var14 = this.neighbors[var13];
+ float var15 = this.distance(var11, var14);
+ var14.walkedDistance = var11.walkedDistance + var15;
+ float var16 = var11.f + var15 + var14.costMalus;
+ if (var14.walkedDistance < var3 && (!var14.inOpenSet() || var16 < var14.f)) {
+ var14.cameFrom = var11;
+ var14.f = var16;
+ var14.h = this.getBestH(var14, var6) * 1.5F;
+ if (var14.inOpenSet()) {
+ this.openSet.changeCost(var14, var14.f + var14.h);
+ } else {
+ var14.h += var14.f;
+ this.openSet.insert(var14);
+ }
}
}
}
}
- Optional var11 = !var9.isEmpty()
- ? var9.stream().map(p -> reconstructPath(p.getBestNode(), var2.get(p), true)).min(
- Comparator.comparingInt(Path::getNodeCount))
- : getFallbackDestinations(var2, var6).findFirst();
- if (!var11.isPresent())
+
+ Optional var11 = !var9.isEmpty() ? var9.stream().map((var1x) -> {
+ return this.reconstructPath(var1x.getBestNode(), var2.get(var1x), true);
+ }).min(Comparator.comparingInt(Path::getNodeCount)) : getFallbackDestinations(var2, var6).findFirst();
+ /*var6.stream().map((var1x) -> {
+ return this.reconstructPath(var1x.getBestNode(), (BlockPos)var2.get(var1x), false);
+ }).min(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount))*/
+ if (var11.isEmpty()) {
return null;
- Path var12 = var11.get();
- return var12;
+ } else {
+ Path var12 = var11.get();
+ return var12;
+ }
}
private float getBestH(Node var0, Set var1) {
@@ -134,13 +155,15 @@ public class EntityPathfinder extends PathFinder {
}
private Path reconstructPath(Node var0, BlockPos var1, boolean var2) {
- List var3 = Lists.newArrayList();
+ List var3 = Lists.newArrayList();
Node var4 = var0;
- var3.add(0, var4);
+ var3.add(0, var0);
+
while (var4.cameFrom != null) {
var4 = var4.cameFrom;
var3.add(0, var4);
}
+
return new Path(var3, var1, var2);
}
}
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/ForwardingNPCHolder.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java
similarity index 93%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/ForwardingNPCHolder.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java
index 1ea87a60c..08fbd13cf 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/ForwardingNPCHolder.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/ForwardingNPCHolder.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import org.bukkit.entity.Entity;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/MobAI.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java
similarity index 99%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/MobAI.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java
index e2f9f4cdd..7f5f646d3 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/MobAI.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/MobAI.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.Map;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSBoundingBox.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSBoundingBox.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSBoundingBox.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSBoundingBox.java
index d9af8fefd..260cbdcc2 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSBoundingBox.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSBoundingBox.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.function.Supplier;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java
similarity index 90%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java
index 03f5d3602..c05076ee4 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/NMSImpl.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/NMSImpl.java
@@ -1,8 +1,6 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.lang.invoke.MethodHandle;
-import java.net.SocketAddress;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -29,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_20_R1.CraftServer;
-import org.bukkit.craftbukkit.v1_20_R1.CraftSound;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
-import org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock;
-import org.bukkit.craftbukkit.v1_20_R1.boss.CraftBossBar;
-import org.bukkit.craftbukkit.v1_20_R1.command.CraftBlockCommandSender;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftEntity;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftWither;
-import org.bukkit.craftbukkit.v1_20_R1.event.CraftEventFactory;
-import org.bukkit.craftbukkit.v1_20_R1.event.CraftPortalEvent;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftInventoryAnvil;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftInventoryView;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.v1_20_R2.CraftServer;
+import org.bukkit.craftbukkit.v1_20_R2.CraftSound;
+import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
+import org.bukkit.craftbukkit.v1_20_R2.block.CraftBlock;
+import org.bukkit.craftbukkit.v1_20_R2.boss.CraftBossBar;
+import org.bukkit.craftbukkit.v1_20_R2.command.CraftBlockCommandSender;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
+import org.bukkit.craftbukkit.v1_20_R2.entity.CraftWither;
+import org.bukkit.craftbukkit.v1_20_R2.event.CraftEventFactory;
+import org.bukkit.craftbukkit.v1_20_R2.event.CraftPortalEvent;
+import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftInventoryAnvil;
+import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftInventoryView;
+import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.FishHook;
import org.bukkit.entity.Player;
@@ -64,13 +62,8 @@ import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.GameProfileRepository;
-import com.mojang.authlib.HttpAuthenticationService;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.properties.Property;
-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 net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.CitizensAPI;
@@ -102,127 +95,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_20_R1.entity.AllayController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ArmorStandController;
-import net.citizensnpcs.nms.v1_20_R1.entity.AxolotlController;
-import net.citizensnpcs.nms.v1_20_R1.entity.BatController;
-import net.citizensnpcs.nms.v1_20_R1.entity.BeeController;
-import net.citizensnpcs.nms.v1_20_R1.entity.BlazeController;
-import net.citizensnpcs.nms.v1_20_R1.entity.CamelController;
-import net.citizensnpcs.nms.v1_20_R1.entity.CatController;
-import net.citizensnpcs.nms.v1_20_R1.entity.CaveSpiderController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ChickenController;
-import net.citizensnpcs.nms.v1_20_R1.entity.CodController;
-import net.citizensnpcs.nms.v1_20_R1.entity.CowController;
-import net.citizensnpcs.nms.v1_20_R1.entity.CreeperController;
-import net.citizensnpcs.nms.v1_20_R1.entity.DolphinController;
-import net.citizensnpcs.nms.v1_20_R1.entity.DrownedController;
-import net.citizensnpcs.nms.v1_20_R1.entity.EnderDragonController;
-import net.citizensnpcs.nms.v1_20_R1.entity.EndermanController;
-import net.citizensnpcs.nms.v1_20_R1.entity.EndermiteController;
-import net.citizensnpcs.nms.v1_20_R1.entity.EvokerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.FoxController;
-import net.citizensnpcs.nms.v1_20_R1.entity.FrogController;
-import net.citizensnpcs.nms.v1_20_R1.entity.GhastController;
-import net.citizensnpcs.nms.v1_20_R1.entity.GiantController;
-import net.citizensnpcs.nms.v1_20_R1.entity.GlowSquidController;
-import net.citizensnpcs.nms.v1_20_R1.entity.GoatController;
-import net.citizensnpcs.nms.v1_20_R1.entity.GuardianController;
-import net.citizensnpcs.nms.v1_20_R1.entity.GuardianElderController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HoglinController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HorseController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HorseDonkeyController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HorseMuleController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HorseSkeletonController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HorseZombieController;
-import net.citizensnpcs.nms.v1_20_R1.entity.HumanController;
-import net.citizensnpcs.nms.v1_20_R1.entity.IllusionerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.IronGolemController;
-import net.citizensnpcs.nms.v1_20_R1.entity.LlamaController;
-import net.citizensnpcs.nms.v1_20_R1.entity.MagmaCubeController;
-import net.citizensnpcs.nms.v1_20_R1.entity.MushroomCowController;
-import net.citizensnpcs.nms.v1_20_R1.entity.OcelotController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PandaController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ParrotController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PhantomController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PigController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PigZombieController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PiglinBruteController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PiglinController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PillagerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PolarBearController;
-import net.citizensnpcs.nms.v1_20_R1.entity.PufferFishController;
-import net.citizensnpcs.nms.v1_20_R1.entity.RabbitController;
-import net.citizensnpcs.nms.v1_20_R1.entity.RavagerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SalmonController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SheepController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ShulkerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SilverfishController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SkeletonController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SkeletonStrayController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SkeletonWitherController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SlimeController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SnifferController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SnowmanController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SpiderController;
-import net.citizensnpcs.nms.v1_20_R1.entity.SquidController;
-import net.citizensnpcs.nms.v1_20_R1.entity.StriderController;
-import net.citizensnpcs.nms.v1_20_R1.entity.TadpoleController;
-import net.citizensnpcs.nms.v1_20_R1.entity.TraderLlamaController;
-import net.citizensnpcs.nms.v1_20_R1.entity.TropicalFishController;
-import net.citizensnpcs.nms.v1_20_R1.entity.TurtleController;
-import net.citizensnpcs.nms.v1_20_R1.entity.VexController;
-import net.citizensnpcs.nms.v1_20_R1.entity.VillagerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.VindicatorController;
-import net.citizensnpcs.nms.v1_20_R1.entity.WanderingTraderController;
-import net.citizensnpcs.nms.v1_20_R1.entity.WardenController;
-import net.citizensnpcs.nms.v1_20_R1.entity.WitchController;
-import net.citizensnpcs.nms.v1_20_R1.entity.WitherController;
-import net.citizensnpcs.nms.v1_20_R1.entity.WolfController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ZoglinController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ZombieController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ZombieHuskController;
-import net.citizensnpcs.nms.v1_20_R1.entity.ZombieVillagerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.AreaEffectCloudController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.BlockDisplayController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.BoatController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ChestBoatController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.DragonFireballController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.EggController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.EnderCrystalController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.EnderPearlController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.EnderSignalController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.EvokerFangsController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.FallingBlockController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.FireworkController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.FishingHookController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.GlowItemFrameController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.InteractionController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ItemController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ItemDisplayController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ItemFrameController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.LargeFireballController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.LeashController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.LlamaSpitController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MarkerController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MinecartChestController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MinecartCommandController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MinecartFurnaceController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MinecartHopperController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MinecartRideableController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.MinecartTNTController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.PaintingController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ShulkerBulletController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.SmallFireballController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.SnowballController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.SpectralArrowController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.TNTPrimedController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.TextDisplayController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ThrownExpBottleController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ThrownPotionController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.ThrownTridentController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.TippedArrowController;
-import net.citizensnpcs.nms.v1_20_R1.entity.nonliving.WitherSkullController;
+import net.citizensnpcs.nms.v1_20_R2.entity.AllayController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ArmorStandController;
+import net.citizensnpcs.nms.v1_20_R2.entity.AxolotlController;
+import net.citizensnpcs.nms.v1_20_R2.entity.BatController;
+import net.citizensnpcs.nms.v1_20_R2.entity.BeeController;
+import net.citizensnpcs.nms.v1_20_R2.entity.BlazeController;
+import net.citizensnpcs.nms.v1_20_R2.entity.CamelController;
+import net.citizensnpcs.nms.v1_20_R2.entity.CatController;
+import net.citizensnpcs.nms.v1_20_R2.entity.CaveSpiderController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ChickenController;
+import net.citizensnpcs.nms.v1_20_R2.entity.CodController;
+import net.citizensnpcs.nms.v1_20_R2.entity.CowController;
+import net.citizensnpcs.nms.v1_20_R2.entity.CreeperController;
+import net.citizensnpcs.nms.v1_20_R2.entity.DolphinController;
+import net.citizensnpcs.nms.v1_20_R2.entity.DrownedController;
+import net.citizensnpcs.nms.v1_20_R2.entity.EnderDragonController;
+import net.citizensnpcs.nms.v1_20_R2.entity.EndermanController;
+import net.citizensnpcs.nms.v1_20_R2.entity.EndermiteController;
+import net.citizensnpcs.nms.v1_20_R2.entity.EvokerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.FoxController;
+import net.citizensnpcs.nms.v1_20_R2.entity.FrogController;
+import net.citizensnpcs.nms.v1_20_R2.entity.GhastController;
+import net.citizensnpcs.nms.v1_20_R2.entity.GiantController;
+import net.citizensnpcs.nms.v1_20_R2.entity.GlowSquidController;
+import net.citizensnpcs.nms.v1_20_R2.entity.GoatController;
+import net.citizensnpcs.nms.v1_20_R2.entity.GuardianController;
+import net.citizensnpcs.nms.v1_20_R2.entity.GuardianElderController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HoglinController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HorseController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HorseDonkeyController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HorseMuleController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HorseSkeletonController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HorseZombieController;
+import net.citizensnpcs.nms.v1_20_R2.entity.HumanController;
+import net.citizensnpcs.nms.v1_20_R2.entity.IllusionerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.IronGolemController;
+import net.citizensnpcs.nms.v1_20_R2.entity.LlamaController;
+import net.citizensnpcs.nms.v1_20_R2.entity.MagmaCubeController;
+import net.citizensnpcs.nms.v1_20_R2.entity.MushroomCowController;
+import net.citizensnpcs.nms.v1_20_R2.entity.OcelotController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PandaController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ParrotController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PhantomController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PigController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PigZombieController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PiglinBruteController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PiglinController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PillagerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PolarBearController;
+import net.citizensnpcs.nms.v1_20_R2.entity.PufferFishController;
+import net.citizensnpcs.nms.v1_20_R2.entity.RabbitController;
+import net.citizensnpcs.nms.v1_20_R2.entity.RavagerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SalmonController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SheepController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ShulkerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SilverfishController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SkeletonController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SkeletonStrayController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SkeletonWitherController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SlimeController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SnifferController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SnowmanController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SpiderController;
+import net.citizensnpcs.nms.v1_20_R2.entity.SquidController;
+import net.citizensnpcs.nms.v1_20_R2.entity.StriderController;
+import net.citizensnpcs.nms.v1_20_R2.entity.TadpoleController;
+import net.citizensnpcs.nms.v1_20_R2.entity.TraderLlamaController;
+import net.citizensnpcs.nms.v1_20_R2.entity.TropicalFishController;
+import net.citizensnpcs.nms.v1_20_R2.entity.TurtleController;
+import net.citizensnpcs.nms.v1_20_R2.entity.VexController;
+import net.citizensnpcs.nms.v1_20_R2.entity.VillagerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.VindicatorController;
+import net.citizensnpcs.nms.v1_20_R2.entity.WanderingTraderController;
+import net.citizensnpcs.nms.v1_20_R2.entity.WardenController;
+import net.citizensnpcs.nms.v1_20_R2.entity.WitchController;
+import net.citizensnpcs.nms.v1_20_R2.entity.WitherController;
+import net.citizensnpcs.nms.v1_20_R2.entity.WolfController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ZoglinController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ZombieController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ZombieHuskController;
+import net.citizensnpcs.nms.v1_20_R2.entity.ZombieVillagerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.AreaEffectCloudController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.BlockDisplayController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.BoatController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ChestBoatController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.DragonFireballController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.EggController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.EnderCrystalController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.EnderPearlController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.EnderSignalController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.EvokerFangsController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.FallingBlockController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.FireworkController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.FishingHookController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.GlowItemFrameController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.InteractionController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ItemController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ItemDisplayController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ItemFrameController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.LargeFireballController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.LeashController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.LlamaSpitController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MarkerController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MinecartChestController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MinecartCommandController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MinecartFurnaceController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MinecartHopperController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MinecartRideableController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.MinecartTNTController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.PaintingController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ShulkerBulletController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.SmallFireballController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.SnowballController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.SpectralArrowController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.TNTPrimedController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.TextDisplayController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ThrownExpBottleController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ThrownPotionController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.ThrownTridentController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.TippedArrowController;
+import net.citizensnpcs.nms.v1_20_R2.entity.nonliving.WitherSkullController;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
@@ -256,7 +249,6 @@ import net.citizensnpcs.trait.versioned.SpellcasterTrait;
import net.citizensnpcs.trait.versioned.TropicalFishTrait;
import net.citizensnpcs.trait.versioned.VillagerTrait;
import net.citizensnpcs.trait.versioned.WardenTrait;
-import net.citizensnpcs.util.EmptyChannel;
import net.citizensnpcs.util.EntityPacketTracker;
import net.citizensnpcs.util.EntityPacketTracker.PacketAggregator;
import net.citizensnpcs.util.Messages;
@@ -265,7 +257,6 @@ import net.citizensnpcs.util.NMSBridge;
import net.citizensnpcs.util.PlayerAnimation;
import net.citizensnpcs.util.Util;
import net.minecraft.core.BlockPos;
-import net.minecraft.core.PositionImpl;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.network.Connection;
import net.minecraft.network.chat.Component;
@@ -365,6 +356,8 @@ import net.minecraft.world.scores.PlayerTeam;
@SuppressWarnings("unchecked")
public class NMSImpl implements NMSBridge {
+ public static MethodHandle CONNECTION_PACKET_LISTENER = NMS.getSetter(Connection.class, "q");
+ public static MethodHandle CONNECTION_DISCONNECT_LISTENER = NMS.getSetter(Connection.class, "p");
public NMSImpl() {
loadEntityTypes();
}
@@ -559,22 +552,7 @@ public class NMSImpl implements NMSBridge {
if (Bukkit.isPrimaryThread())
throw new IllegalStateException("NMS.fillProfileProperties cannot be invoked from the main thread.");
MinecraftSessionService sessionService = ((CraftServer) Bukkit.getServer()).getServer().getSessionService();
- if (!(sessionService instanceof YggdrasilMinecraftSessionService)) {
- return sessionService.fillProfileProperties(profile, requireSecure);
- }
- YggdrasilAuthenticationService auth = ((YggdrasilMinecraftSessionService) sessionService)
- .getAuthenticationService();
- URL url = HttpAuthenticationService
- .constantURL(getAuthServerBaseUrl() + UUIDTypeAdapter.fromUUID(profile.getId()));
- url = HttpAuthenticationService.concatenateURL(url, "unsigned=" + !requireSecure);
- MinecraftProfilePropertiesResponse response = (MinecraftProfilePropertiesResponse) MAKE_REQUEST.invoke(auth,
- url, null, MinecraftProfilePropertiesResponse.class);
- if (response == null)
- return profile;
- GameProfile result = new GameProfile(response.getId(), response.getName());
- result.getProperties().putAll(response.getProperties());
- profile.getProperties().putAll(response.getProperties());
- return result;
+ return sessionService.fetchProfile(profile.getId(), requireSecure).profile();
}
public String getAuthServerBaseUrl() {
@@ -735,7 +713,7 @@ public class NMSImpl implements NMSBridge {
@Override
public String getSoundPath(Sound flag) throws CommandException {
try {
- SoundEvent effect = CraftSound.getSoundEffect(flag);
+ SoundEvent effect = CraftSound.bukkitToMinecraft(flag);
if (effect == null)
throw new CommandException(Messages.INVALID_SOUND);
return effect.getLocation().getPath();
@@ -1367,7 +1345,7 @@ public class NMSImpl implements NMSBridge {
? !((NPCHolder) from).getNPC().data().get("removefromtablist", Setting.DISABLE_TABLIST.asBoolean())
: false;
ClientboundPlayerInfoUpdatePacket.Entry entry = new ClientboundPlayerInfoUpdatePacket.Entry(from.getUUID(),
- from.getGameProfile(), list, from.latency, from.gameMode.getGameModeForPlayer(),
+ from.getGameProfile(), list, from.connection.latency(), from.gameMode.getGameModeForPlayer(),
list ? from.getTabListDisplayName() : Component.empty(),
from.getChatSession() == null ? null : from.getChatSession().asData());
try {
@@ -1802,7 +1780,7 @@ public class NMSImpl implements NMSBridge {
public void updateMountedInteractionHeight(org.bukkit.entity.Entity entity, org.bukkit.entity.Entity mount,
double offset) {
Interaction handle = (Interaction) getHandle(entity);
- offset += -0.5 + getHandle(mount).getPassengersRidingOffset();
+ offset += -0.5 + getHandle(mount).getDimensions(Pose.SITTING).height * 0.75;
((org.bukkit.entity.Interaction) entity).setInteractionHeight((float) offset);
mount.addPassenger(entity);
handle.setPose(Pose.SNIFFING);
@@ -2255,14 +2233,6 @@ public class NMSImpl implements NMSBridge {
.get(new ResourceLocation(npc.data().get(meta, snd == null ? "" : snd.toString())));
}
- public static void initNetworkManager(Connection network) {
- network.channel = new EmptyChannel(null);
- SocketAddress socketAddress = new SocketAddress() {
- private static final long serialVersionUID = 8207338859896320185L;
- };
- network.address = socketAddress;
- }
-
public static boolean isLeashed(NPC npc, Supplier isLeashed, Mob entity) {
return NMS.isLeashed(npc, isLeashed, () -> entity.dropLeash(true, false));
}
@@ -2298,8 +2268,8 @@ public class NMSImpl implements NMSBridge {
public static void resetPuffTicks(Pufferfish fish) {
try {
- PUFFERFISH_C.invoke(fish, 0);
- PUFFERFISH_D.invoke(fish, 0);
+ PUFFERFISH_INFLATE.invoke(fish, 0);
+ PUFFERFISH_DEFLATE.invoke(fish, 0);
} catch (Throwable e) {
e.printStackTrace();
}
@@ -2466,7 +2436,7 @@ public class NMSImpl implements NMSBridge {
}
}
- public static Entity teleportAcrossWorld(Entity entity, ServerLevel worldserver, PositionImpl location) {
+ public static Entity teleportAcrossWorld(Entity entity, ServerLevel worldserver, Vec3 location) {
if (FIND_DIMENSION_ENTRY_POINT == null || entity.isRemoved())
return null;
NPC npc = ((NPCHolder) entity).getNPC();
@@ -2528,7 +2498,6 @@ public class NMSImpl implements NMSBridge {
private static final MethodHandle ADVANCEMENTS_PLAYER_SETTER = NMS.getFirstFinalSetter(ServerPlayer.class,
PlayerAdvancements.class);
-
private static final MethodHandle ATTRIBUTE_PROVIDER_MAP = NMS.getFirstGetter(AttributeSupplier.class, Map.class);
private static final MethodHandle ATTRIBUTE_PROVIDER_MAP_SETTER = NMS.getFirstFinalSetter(AttributeSupplier.class,
Map.class);
@@ -2547,8 +2516,11 @@ public class NMSImpl implements NMSBridge {
private static final MethodHandle CRAFT_BOSSBAR_HANDLE_FIELD = NMS.getFirstSetter(CraftBossBar.class,
ServerBossEvent.class);
private static final float DEFAULT_SPEED = 1F;
- public static MethodHandle ENDERDRAGON_CHECK_WALLS = NMS.getFirstMethodHandleWithReturnType(EnderDragon.class, true,
- boolean.class, AABB.class);
+ public static final MethodHandle ENDERDRAGON_CHECK_WALLS = NMS.getFirstMethodHandleWithReturnType(EnderDragon.class,
+ true, boolean.class, AABB.class);
+ public static final MethodHandle ENDERDRAGON_HURT = NMS.getMethodHandle(EnderDragon.class, "c", true, List.class);
+ public static final MethodHandle ENDERDRAGON_KNOCKBACK = NMS.getMethodHandle(EnderDragon.class, "b", true,
+ List.class);
private static EntityDataAccessor ENDERMAN_CREEPY = null;
private static final MethodHandle ENTITY_FISH_NUM_IN_SCHOOL = NMS.getFirstSetter(AbstractSchoolingFish.class,
int.class);
@@ -2569,14 +2541,12 @@ public class NMSImpl implements NMSBridge {
private static final MethodHandle HEAD_HEIGHT_METHOD = NMS.getFirstMethodHandle(Entity.class, true, Pose.class,
EntityDimensions.class);
private static EntityDataAccessor INTERACTION_HEIGHT = null;
- private static final MethodHandle JUMP_FIELD = NMS.getGetter(LivingEntity.class, "bk");
+ private static final MethodHandle JUMP_FIELD = NMS.getGetter(LivingEntity.class, "bj");
private static final MethodHandle LOOK_CONTROL_SETTER = NMS.getFirstSetter(Mob.class, LookControl.class);
- 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 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_PATH = NMS.getFirstGetter(PathNavigation.class, Path.class);
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);
@@ -2588,12 +2558,12 @@ public class NMSImpl implements NMSBridge {
private static final MethodHandle PLAYER_INFO_ENTRIES_LIST = NMS
.getFirstFinalSetter(ClientboundPlayerInfoUpdatePacket.class, List.class);
private static final MethodHandle PLAYERINFO_ENTRIES = PLAYER_INFO_ENTRIES_LIST;
- 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 PORTAL_ENTRANCE_POS_GETTER = NMS.getGetter(Entity.class, "ax");
+ private static final MethodHandle PORTAL_ENTRANCE_POS_SETTER = NMS.getSetter(Entity.class, "ax");
private static final MethodHandle POSITION_CODEC_GETTER = NMS.getFirstGetter(ServerEntity.class,
VecDeltaCodec.class);
- private static final MethodHandle PUFFERFISH_C = NMS.getSetter(Pufferfish.class, "bT");
- private static final MethodHandle PUFFERFISH_D = NMS.getSetter(Pufferfish.class, "bU");
+ private static final MethodHandle PUFFERFISH_DEFLATE = NMS.getSetter(Pufferfish.class, "bU");
+ private static final MethodHandle PUFFERFISH_INFLATE = NMS.getSetter(Pufferfish.class, "bT");
private static EntityDataAccessor RABBIT_TYPE_DATAWATCHER = null;
private static final Random RANDOM = Util.getFastRandom();
private static final MethodHandle SERVER_ENTITY_GETTER = NMS.getFirstGetter(TrackedEntity.class,
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/PitchableLookControl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java
similarity index 94%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/PitchableLookControl.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java
index cc249647a..5eaf8749d 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/PitchableLookControl.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PitchableLookControl.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.function.Supplier;
diff --git a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/PlayerAnimationImpl.java b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java
similarity index 98%
rename from v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/PlayerAnimationImpl.java
rename to v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java
index a2ab1f2ae..662bbf0d2 100644
--- a/v1_20_R1/src/main/java/net/citizensnpcs/nms/v1_20_R1/util/PlayerAnimationImpl.java
+++ b/v1_20_R2/src/main/java/net/citizensnpcs/nms/v1_20_R2/util/PlayerAnimationImpl.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_20_R1.util;
+package net.citizensnpcs.nms.v1_20_R2.util;
import java.util.Map;
diff --git a/v1_8_R3/pom.xml b/v1_8_R3/pom.xml
index 8c44f1ba2..fbe987ca0 100644
--- a/v1_8_R3/pom.xml
+++ b/v1_8_R3/pom.xml
@@ -6,7 +6,7 @@
net.citizensnpcs
citizens-parent
- 2.0.32-SNAPSHOT
+ 2.0.33-SNAPSHOT
citizens-v1_8_R3
diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java
index 68bb35c8e..94aad55e2 100644
--- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java
+++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java
@@ -1,7 +1,6 @@
package net.citizensnpcs.nms.v1_8_R3.entity;
import java.io.IOException;
-import java.net.Socket;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -36,7 +35,6 @@ import net.citizensnpcs.npc.skin.SkinPacketTracker;
import net.citizensnpcs.npc.skin.SkinnableEntity;
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.trait.SkinTrait;
-import net.citizensnpcs.util.EmptySocket;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_8_R3.AttributeInstance;
@@ -74,6 +72,8 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
PlayerInteractManager playerInteractManager, NPC npc) {
super(minecraftServer, world, gameProfile, playerInteractManager);
this.npc = (CitizensNPC) npc;
+ this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.3);
+
if (npc != null) {
skinTracker = new SkinPacketTracker(this);
playerInteractManager.setGameMode(WorldSettings.EnumGamemode.SURVIVAL);
@@ -233,17 +233,13 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
}
private void initialise(MinecraftServer minecraftServer) {
- Socket socket = new EmptySocket();
- NetworkManager conn = null;
try {
- conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
+ NetworkManager conn = new EmptyNetworkManager(EnumProtocolDirection.CLIENTBOUND);
playerConnection = new EmptyNetHandler(minecraftServer, conn, this);
conn.a(playerConnection);
- socket.close();
} catch (IOException e) {
- // swallow
} catch (NoSuchMethodError err) {
- // swallow, reported by a single user on Discord
+ // reported by a single user on Discord
}
AttributeInstance range = getAttributeInstance(GenericAttributes.FOLLOW_RANGE);
if (range == null) {
@@ -281,7 +277,7 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
if (!navigating && getBukkitEntity() != null
&& (!npc.hasTrait(Gravity.class) || npc.getOrAddTrait(Gravity.class).hasGravity())
&& Util.isLoaded(getBukkitEntity().getLocation(LOADED_LOCATION))
- && SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld())) {
+ && (!npc.isProtected() || SpigotUtil.checkYSafe(locY, getBukkitEntity().getWorld()))) {
moveWithFallDamage(0, 0);
}
if (Math.abs(motX) < EPSILON && Math.abs(motY) < EPSILON && Math.abs(motZ) < EPSILON) {
diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java
index 95fb7af31..9dc286fc4 100644
--- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java
+++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java
@@ -1813,7 +1813,6 @@ public class NMSImpl implements NMSBridge {
public static MethodHandle ENDERDRAGON_CHECK_WALLS = NMS.getFirstMethodHandleWithReturnType(EntityEnderDragon.class,
true, boolean.class, AxisAlignedBB.class);
-
private static Method ENTITY_ATTACK_A = NMS.getMethod(Entity.class, "a", true, EntityLiving.class, Entity.class);
private static Map, Integer> ENTITY_CLASS_TO_INT;
private static Map, String> ENTITY_CLASS_TO_NAME;
diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java
index b4963dedb..767c3c305 100644
--- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java
+++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/PlayerControllerMove.java
@@ -70,30 +70,29 @@ public class PlayerControllerMove extends ControllerMove {
@Override
public void c() {
this.a.ba = 0F;
- if (this.f) {
- this.f = false;
- double dX = this.b - this.a.locX;
- double dZ = this.d - this.a.locZ;
- double dY = this.c - this.a.locY;
- double dXZ = Math.sqrt(dX * dX + dZ * dZ);
- if (Math.abs(dY) < 1.0 && dXZ < 0.025)
- return;
- float f = (float) Math.toDegrees(Math.atan2(dZ, dX)) - 90.0F;
- this.a.yaw = a(this.a.yaw, f, 90.0F);
- NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
- AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
- speed.setValue(0.1D * this.e);
- float movement = (float) (this.e * speed.getValue()) * 10;
- this.a.k(movement);
- this.a.ba = movement;
- if (shouldSlimeJump() || ((dY >= NMS.getStepHeight(a.getBukkitEntity())) && dXZ < 0.4)) {
- this.h = cg();
- this.h /= 3;
- if (this.a instanceof EntityHumanNPC) {
- ((EntityHumanNPC) this.a).getControllerJump().a();
- } else {
- ((EntityInsentient) this.a).getControllerJump().a();
- }
+ if (!this.f)
+ return;
+ this.f = false;
+ double dX = this.b - this.a.locX;
+ double dZ = this.d - this.a.locZ;
+ double dY = this.c - this.a.locY;
+ double dXZ = Math.sqrt(dX * dX + dZ * dZ);
+ if (Math.abs(dY) < 1.0 && dXZ < 0.025)
+ return;
+ float f = (float) Math.toDegrees(Math.atan2(dZ, dX)) - 90.0F;
+ this.a.yaw = a(this.a.yaw, f, 90.0F);
+ NMS.setHeadYaw(a.getBukkitEntity(), this.a.yaw);
+ AttributeInstance speed = this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
+ float movement = (float) (this.e * speed.getValue());
+ this.a.k(movement);
+ this.a.ba = movement;
+ if (shouldSlimeJump() || ((dY >= NMS.getStepHeight(a.getBukkitEntity())) && dXZ < 0.4)) {
+ this.h = cg();
+ this.h /= 3;
+ if (this.a instanceof EntityHumanNPC) {
+ ((EntityHumanNPC) this.a).getControllerJump().a();
+ } else {
+ ((EntityInsentient) this.a).getControllerJump().a();
}
}
}