diff --git a/.gitignore b/.gitignore
index 06fec2b..b0ae95e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,4 +14,5 @@ out
# Maven
log/
-target/
\ No newline at end of file
+target/
+dependency-reduced-pom.xml
\ No newline at end of file
diff --git a/api/pom.xml b/api/pom.xml
new file mode 100644
index 0000000..a955c4c
--- /dev/null
+++ b/api/pom.xml
@@ -0,0 +1,71 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib
+ 1.0.4
+
+
+ npclib-api
+
+
+
+ ${project.parent.groupId}
+ npclib-commons
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_8_R1
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_8_R2
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_8_R3
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_9_R1
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_9_R2
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_10_R1
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_11_R1
+ ${project.parent.version}
+ compile
+
+
+ ${project.parent.groupId}
+ npclib-nms-v1_12_R1
+ ${project.parent.version}
+ compile
+
+
+
diff --git a/commons/pom.xml b/commons/pom.xml
new file mode 100644
index 0000000..d480999
--- /dev/null
+++ b/commons/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib
+ 1.0.4
+
+
+ npclib-commons
+
+
+
+ org.spigotmc
+ spigot
+ 1.12.2-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/com/comphenix/tinyprotocol/Reflection.java b/commons/src/main/java/com/comphenix/tinyprotocol/Reflection.java
similarity index 100%
rename from src/com/comphenix/tinyprotocol/Reflection.java
rename to commons/src/main/java/com/comphenix/tinyprotocol/Reflection.java
diff --git a/src/com/comphenix/tinyprotocol/TinyProtocol.java b/commons/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
similarity index 100%
rename from src/com/comphenix/tinyprotocol/TinyProtocol.java
rename to commons/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
diff --git a/src/net/jitse/npclib/NPCLib.java b/commons/src/main/java/net/jitse/npclib/NPCLib.java
similarity index 68%
rename from src/net/jitse/npclib/NPCLib.java
rename to commons/src/main/java/net/jitse/npclib/NPCLib.java
index b154612..213aa4c 100644
--- a/src/net/jitse/npclib/NPCLib.java
+++ b/commons/src/main/java/net/jitse/npclib/NPCLib.java
@@ -5,20 +5,15 @@
package net.jitse.npclib;
import net.jitse.npclib.api.NPC;
-import net.jitse.npclib.listeners.packet.PacketListener;
-import net.jitse.npclib.listeners.player.PlayerChangedWorldListener;
-import net.jitse.npclib.listeners.player.PlayerMoveOrTeleportListener;
-import net.jitse.npclib.listeners.player.PlayerQuitListener;
-import net.jitse.npclib.listeners.world.ChunkLoadListener;
-import net.jitse.npclib.listeners.world.ChunkUnloadListener;
+import net.jitse.npclib.listeners.ChunkListener;
+import net.jitse.npclib.listeners.PacketListener;
+import net.jitse.npclib.listeners.PlayerListener;
import net.jitse.npclib.skin.Skin;
-import net.jitse.npclib.version.Version;
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
-import java.lang.reflect.InvocationTargetException;
import java.util.List;
/**
@@ -28,21 +23,31 @@ public class NPCLib {
private final Server server;
private final JavaPlugin plugin;
- private final Version version;
+ private final Class> npcClass;
public NPCLib(JavaPlugin plugin) {
this.plugin = plugin;
this.server = plugin.getServer();
String versionName = server.getClass().getPackage().getName().split("\\.")[3];
- version = Version.getByName(versionName).orElse(null);
- if (version == null) {
- server.getConsoleSender().sendMessage(ChatColor.RED + "NPCLib failed to initiate. Your server's version ("
- + versionName + ") is not supported.");
+ Class> npcClass = null;
+
+ try {
+ npcClass = Class.forName("net.jitse.npclib.nms." + versionName + ".NPC_" + versionName);
+ } catch (ClassNotFoundException e) {
+ // Version not supported, error below
}
- server.getConsoleSender().sendMessage(ChatColor.BLUE + "[NPCLib] " + ChatColor.WHITE + "Enabled for version " + version.toString() + ".");
+ this.npcClass = npcClass;
+
+ if (npcClass == null) {
+ server.getConsoleSender().sendMessage(ChatColor.RED + "NPCLib failed to initiate. Your server's version ("
+ + versionName + ") is not supported.");
+ return;
+ }
+
+ server.getConsoleSender().sendMessage(ChatColor.BLUE + "[NPCLib] " + ChatColor.WHITE + "Enabled for version " + versionName + ".");
registerInternal();
}
@@ -50,11 +55,8 @@ public class NPCLib {
private void registerInternal() {
PluginManager pluginManager = server.getPluginManager();
- pluginManager.registerEvents(new PlayerChangedWorldListener(), plugin);
- pluginManager.registerEvents(new PlayerQuitListener(), plugin);
- pluginManager.registerEvents(new PlayerMoveOrTeleportListener(), plugin);
- pluginManager.registerEvents(new ChunkLoadListener(), plugin);
- pluginManager.registerEvents(new ChunkUnloadListener(), plugin);
+ pluginManager.registerEvents(new PlayerListener(), plugin);
+ pluginManager.registerEvents(new ChunkListener(), plugin);
new PacketListener().start(plugin);
}
@@ -69,8 +71,8 @@ public class NPCLib {
*/
public NPC createNPC(Skin skin, double autoHideDistance, List lines) {
try {
- return version.createNPC(plugin, skin, autoHideDistance, lines);
- } catch (InstantiationException | IllegalAccessException | InvocationTargetException exception) {
+ return (NPC) npcClass.getConstructors()[0].newInstance(plugin, skin, autoHideDistance, lines);
+ } catch (Exception exception) {
server.getConsoleSender().sendMessage(ChatColor.RED + "NPCLib failed to create NPC. Please report this stacktrace:");
exception.printStackTrace();
}
@@ -109,4 +111,5 @@ public class NPCLib {
public NPC createNPC() {
return createNPC(null, 50, null);
}
+
}
diff --git a/src/net/jitse/npclib/NPCManager.java b/commons/src/main/java/net/jitse/npclib/NPCManager.java
similarity index 100%
rename from src/net/jitse/npclib/NPCManager.java
rename to commons/src/main/java/net/jitse/npclib/NPCManager.java
diff --git a/src/net/jitse/npclib/api/NPC.java b/commons/src/main/java/net/jitse/npclib/api/NPC.java
similarity index 95%
rename from src/net/jitse/npclib/api/NPC.java
rename to commons/src/main/java/net/jitse/npclib/api/NPC.java
index de88353..ca7b90b 100644
--- a/src/net/jitse/npclib/api/NPC.java
+++ b/commons/src/main/java/net/jitse/npclib/api/NPC.java
@@ -162,13 +162,4 @@ public abstract class NPC {
// Internal method.
protected abstract void sendHidePackets(Player player);
-
- public void teleport(Player player, Location location) {
- this.location = location;
-
- sendTeleportationPackets(player);
- }
-
- // Internal method.
- public abstract void sendTeleportationPackets(Player player);
}
diff --git a/src/net/jitse/npclib/events/NPCDestroyEvent.java b/commons/src/main/java/net/jitse/npclib/events/NPCDestroyEvent.java
similarity index 100%
rename from src/net/jitse/npclib/events/NPCDestroyEvent.java
rename to commons/src/main/java/net/jitse/npclib/events/NPCDestroyEvent.java
diff --git a/src/net/jitse/npclib/events/NPCInteractEvent.java b/commons/src/main/java/net/jitse/npclib/events/NPCInteractEvent.java
similarity index 100%
rename from src/net/jitse/npclib/events/NPCInteractEvent.java
rename to commons/src/main/java/net/jitse/npclib/events/NPCInteractEvent.java
diff --git a/src/net/jitse/npclib/events/NPCSpawnEvent.java b/commons/src/main/java/net/jitse/npclib/events/NPCSpawnEvent.java
similarity index 100%
rename from src/net/jitse/npclib/events/NPCSpawnEvent.java
rename to commons/src/main/java/net/jitse/npclib/events/NPCSpawnEvent.java
diff --git a/src/net/jitse/npclib/events/click/ClickType.java b/commons/src/main/java/net/jitse/npclib/events/click/ClickType.java
similarity index 100%
rename from src/net/jitse/npclib/events/click/ClickType.java
rename to commons/src/main/java/net/jitse/npclib/events/click/ClickType.java
diff --git a/src/net/jitse/npclib/events/trigger/TriggerType.java b/commons/src/main/java/net/jitse/npclib/events/trigger/TriggerType.java
similarity index 100%
rename from src/net/jitse/npclib/events/trigger/TriggerType.java
rename to commons/src/main/java/net/jitse/npclib/events/trigger/TriggerType.java
diff --git a/src/net/jitse/npclib/listeners/world/ChunkLoadListener.java b/commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java
similarity index 64%
rename from src/net/jitse/npclib/listeners/world/ChunkLoadListener.java
rename to commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java
index 618c6cd..4094128 100644
--- a/src/net/jitse/npclib/listeners/world/ChunkLoadListener.java
+++ b/commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java
@@ -2,7 +2,7 @@
* Copyright (c) 2018 Jitse Boonstra
*/
-package net.jitse.npclib.listeners.world;
+package net.jitse.npclib.listeners;
import net.jitse.npclib.NPCManager;
import net.jitse.npclib.api.NPC;
@@ -12,13 +12,37 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.ChunkLoadEvent;
+import org.bukkit.event.world.ChunkUnloadEvent;
import java.util.UUID;
/**
- * @author Jitse Boonstra
+ * @author Jitse Boonstras
*/
-public class ChunkLoadListener implements Listener {
+public class ChunkListener implements Listener {
+
+ @EventHandler
+ public void onChunkUnload(ChunkUnloadEvent event) {
+ Chunk chunk = event.getChunk();
+
+ for (NPC npc : NPCManager.getAllNPCs()) {
+ Chunk npcChunk = npc.getLocation().getChunk();
+
+ if (chunk.equals(npcChunk)) {
+ // Unloaded chunk with NPC in it. Hiding it from all players currently shown to.
+
+ for (UUID uuid : npc.getShown()) {
+ // Safety check so it doesn't send packets if the NPC has already
+ // been automatically despawned by the system.
+ if (npc.getAutoHidden().contains(uuid)) {
+ continue;
+ }
+
+ npc.hide(Bukkit.getPlayer(uuid), true);
+ }
+ }
+ }
+ }
@EventHandler
public void onChunkLoad(ChunkLoadEvent event) {
diff --git a/src/net/jitse/npclib/listeners/packet/PacketListener.java b/commons/src/main/java/net/jitse/npclib/listeners/PacketListener.java
similarity index 98%
rename from src/net/jitse/npclib/listeners/packet/PacketListener.java
rename to commons/src/main/java/net/jitse/npclib/listeners/PacketListener.java
index 432c273..1deb175 100644
--- a/src/net/jitse/npclib/listeners/packet/PacketListener.java
+++ b/commons/src/main/java/net/jitse/npclib/listeners/PacketListener.java
@@ -2,7 +2,7 @@
* Copyright (c) 2018 Jitse Boonstra
*/
-package net.jitse.npclib.listeners.packet;
+package net.jitse.npclib.listeners;
import com.comphenix.tinyprotocol.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
@@ -39,6 +39,7 @@ public class PacketListener {
@Override
public Object onPacketInAsync(Player player, Channel channel, Object packet) {
+
if (packetPlayInUseEntityClazz.isInstance(packet)) {
NPC npc = NPCManager.getAllNPCs().stream().filter(
check -> check.isActuallyShown(player) && check.getEntityId() == (int) entityIdField.get(packet))
diff --git a/src/net/jitse/npclib/listeners/player/PlayerMoveOrTeleportListener.java b/commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
similarity index 63%
rename from src/net/jitse/npclib/listeners/player/PlayerMoveOrTeleportListener.java
rename to commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
index b4e42c6..cff5a98 100644
--- a/src/net/jitse/npclib/listeners/player/PlayerMoveOrTeleportListener.java
+++ b/commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
@@ -2,7 +2,7 @@
* Copyright (c) 2018 Jitse Boonstra
*/
-package net.jitse.npclib.listeners.player;
+package net.jitse.npclib.listeners;
import net.jitse.npclib.NPCManager;
import net.jitse.npclib.api.NPC;
@@ -12,13 +12,46 @@ import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerMoveEvent;
+import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
/**
* @author Jitse Boonstra
*/
-public class PlayerMoveOrTeleportListener implements Listener {
+public class PlayerListener implements Listener {
+
+ @EventHandler
+ public void onPlayerQuit(PlayerQuitEvent event) {
+ Player player = event.getPlayer();
+ for (NPC npc : NPCManager.getAllNPCs()) {
+ if (npc.getAutoHidden().contains(player.getUniqueId())) {
+ npc.getAutoHidden().remove(player.getUniqueId());
+ }
+
+ // Don't need to use NPC#hide since the entity is not registered in the NMS server.
+ if (npc.getShown().contains(player.getUniqueId())) {
+ npc.getShown().remove(player.getUniqueId());
+ }
+ }
+ }
+
+ @EventHandler
+ public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
+ Player player = event.getPlayer();
+ World from = event.getFrom();
+
+ // The PlayerTeleportEvent is call, and will handle visibility in the new world.
+ for (NPC npc : NPCManager.getAllNPCs()) {
+ if (npc.getLocation().getWorld().equals(from)) {
+ if (!npc.getAutoHidden().contains(player.getUniqueId())) {
+ npc.getAutoHidden().add(player.getUniqueId());
+ npc.hide(player, true);
+ }
+ }
+ }
+ }
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
diff --git a/src/net/jitse/npclib/nms/holograms/Hologram.java b/commons/src/main/java/net/jitse/npclib/nms/holograms/Hologram.java
similarity index 100%
rename from src/net/jitse/npclib/nms/holograms/Hologram.java
rename to commons/src/main/java/net/jitse/npclib/nms/holograms/Hologram.java
diff --git a/src/net/jitse/npclib/skin/MineSkinFetcher.java b/commons/src/main/java/net/jitse/npclib/skin/MineSkinFetcher.java
similarity index 100%
rename from src/net/jitse/npclib/skin/MineSkinFetcher.java
rename to commons/src/main/java/net/jitse/npclib/skin/MineSkinFetcher.java
diff --git a/src/net/jitse/npclib/skin/Skin.java b/commons/src/main/java/net/jitse/npclib/skin/Skin.java
similarity index 100%
rename from src/net/jitse/npclib/skin/Skin.java
rename to commons/src/main/java/net/jitse/npclib/skin/Skin.java
diff --git a/nms/pom.xml b/nms/pom.xml
new file mode 100644
index 0000000..8fb4986
--- /dev/null
+++ b/nms/pom.xml
@@ -0,0 +1,34 @@
+
+
+ 4.0.0
+ pom
+
+ net.jitse
+ npclib
+ 1.0.4
+
+
+ npclib-nms
+
+
+ v1_8_R1
+ v1_8_R2
+ v1_8_R3
+ v1_9_R1
+ v1_9_R2
+ v1_10_R1
+ v1_11_R1
+ v1_12_R1
+
+
+
+
+ ${project.parent.groupId}
+ npclib-commons
+ ${project.parent.version}
+ provided
+
+
+
diff --git a/nms/v1_10_R1/pom.xml b/nms/v1_10_R1/pom.xml
new file mode 100644
index 0000000..3dcb2d9
--- /dev/null
+++ b/nms/v1_10_R1/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_10_R1
+
+
+
+ org.spigotmc
+ spigot
+ 1.10.2-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_10_R1/NPC_V1_10_R1.java b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_10_R1/NPC_V1_10_R1.java
rename to nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java
index 315f508..9387c26 100644
--- a/src/net/jitse/npclib/nms/v1_10_R1/NPC_V1_10_R1.java
+++ b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_10_R1 extends NPC {
+public class NPC_v1_10_R1 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_10_R1 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_10_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_10_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -100,9 +100,4 @@ public class NPC_V1_10_R1 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_11_R1/pom.xml b/nms/v1_11_R1/pom.xml
new file mode 100644
index 0000000..00e211e
--- /dev/null
+++ b/nms/v1_11_R1/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_11_R1
+
+
+
+ org.spigotmc
+ spigot
+ 1.11.2-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_11_R1/NPC_V1_11_R1.java b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_11_R1/NPC_V1_11_R1.java
rename to nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java
index 0ad2666..2a5e65f 100644
--- a/src/net/jitse/npclib/nms/v1_11_R1/NPC_V1_11_R1.java
+++ b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_11_R1 extends NPC {
+public class NPC_v1_11_R1 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_11_R1 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_11_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_11_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -100,9 +100,4 @@ public class NPC_V1_11_R1 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_12_R1/pom.xml b/nms/v1_12_R1/pom.xml
new file mode 100644
index 0000000..b15f1af
--- /dev/null
+++ b/nms/v1_12_R1/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_12_R1
+
+
+
+ org.spigotmc
+ spigot
+ 1.12.2-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java
similarity index 86%
rename from src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java
rename to nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java
index 3c61459..385e3b0 100644
--- a/src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java
+++ b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java
@@ -6,7 +6,10 @@ package net.jitse.npclib.nms.v1_12_R1;
import net.jitse.npclib.api.NPC;
import net.jitse.npclib.nms.holograms.Hologram;
-import net.jitse.npclib.nms.v1_12_R1.packets.*;
+import net.jitse.npclib.nms.v1_12_R1.packets.PacketPlayOutEntityHeadRotationWrapper;
+import net.jitse.npclib.nms.v1_12_R1.packets.PacketPlayOutNamedEntitySpawnWrapper;
+import net.jitse.npclib.nms.v1_12_R1.packets.PacketPlayOutPlayerInfoWrapper;
+import net.jitse.npclib.nms.v1_12_R1.packets.PacketPlayOutScoreboardTeamWrapper;
import net.jitse.npclib.skin.Skin;
import net.minecraft.server.v1_12_R1.*;
import org.bukkit.Bukkit;
@@ -20,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_12_R1 extends NPC {
+public class NPC_v1_12_R1 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -29,7 +32,7 @@ public class NPC_V1_12_R1 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_12_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_12_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -79,9 +82,9 @@ public class NPC_V1_12_R1 extends NPC {
hologram.spawn(player);
- // Todo: Test this new delay speed (custom skin render issue).
+
Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutPlayerInfoRemove), 10);
+ playerConnection.sendPacket(packetPlayOutPlayerInfoRemove), 5);
}
@Override
@@ -97,13 +100,4 @@ public class NPC_V1_12_R1 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
-
- PacketPlayOutEntityTeleport packetPlayOutEntityTeleport = new PacketPlayOutEntityTeleportWrapper().create(entityId, location);
-
- playerConnection.sendPacket(packetPlayOutEntityTeleport);
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_8_R1/pom.xml b/nms/v1_8_R1/pom.xml
new file mode 100644
index 0000000..b7996ae
--- /dev/null
+++ b/nms/v1_8_R1/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_8_R1
+
+
+
+ org.spigotmc
+ spigot
+ 1.8-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_8_R1/NPC_V1_8_R1.java b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_8_R1/NPC_V1_8_R1.java
rename to nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java
index 1ae0055..c606689 100644
--- a/src/net/jitse/npclib/nms/v1_8_R1/NPC_V1_8_R1.java
+++ b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_8_R1 extends NPC {
+public class NPC_v1_8_R1 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_8_R1 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_8_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_8_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -99,9 +99,4 @@ public class NPC_V1_8_R1 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_8_R2/pom.xml b/nms/v1_8_R2/pom.xml
new file mode 100644
index 0000000..9e5a42f
--- /dev/null
+++ b/nms/v1_8_R2/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_8_R2
+
+
+
+ org.spigotmc
+ spigot
+ 1.8.3-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_8_R2/NPC_V1_8_R2.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_8_R2/NPC_V1_8_R2.java
rename to nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java
index 25b52f3..3e15747 100644
--- a/src/net/jitse/npclib/nms/v1_8_R2/NPC_V1_8_R2.java
+++ b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_8_R2 extends NPC {
+public class NPC_v1_8_R2 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_8_R2 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_8_R2(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_8_R2(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -100,9 +100,4 @@ public class NPC_V1_8_R2 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_8_R3/pom.xml b/nms/v1_8_R3/pom.xml
new file mode 100644
index 0000000..5738747
--- /dev/null
+++ b/nms/v1_8_R3/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_8_R3
+
+
+
+ org.spigotmc
+ spigot
+ 1.8.8-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_8_R3/NPC_V1_8_R3.java b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_8_R3/NPC_V1_8_R3.java
rename to nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java
index 05b1caf..52895c1 100644
--- a/src/net/jitse/npclib/nms/v1_8_R3/NPC_V1_8_R3.java
+++ b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_8_R3 extends NPC {
+public class NPC_v1_8_R3 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_8_R3 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_8_R3(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_8_R3(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -100,9 +100,4 @@ public class NPC_V1_8_R3 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_9_R1/pom.xml b/nms/v1_9_R1/pom.xml
new file mode 100644
index 0000000..0ae9204
--- /dev/null
+++ b/nms/v1_9_R1/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_9_R1
+
+
+
+ org.spigotmc
+ spigot
+ 1.9-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_9_R1/NPC_V1_9_R1.java b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_9_R1/NPC_V1_9_R1.java
rename to nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java
index 905a52a..36f1721 100644
--- a/src/net/jitse/npclib/nms/v1_9_R1/NPC_V1_9_R1.java
+++ b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_9_R1 extends NPC {
+public class NPC_v1_9_R1 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_9_R1 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_9_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_9_R1(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -100,9 +100,4 @@ public class NPC_V1_9_R1 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/nms/v1_9_R2/pom.xml b/nms/v1_9_R2/pom.xml
new file mode 100644
index 0000000..8fcd700
--- /dev/null
+++ b/nms/v1_9_R2/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib-nms
+ 1.0.4
+
+
+ npclib-nms-v1_9_R2
+
+
+
+ org.spigotmc
+ spigot
+ 1.9.4-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/net/jitse/npclib/nms/v1_9_R2/NPC_V1_9_R2.java b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java
similarity index 95%
rename from src/net/jitse/npclib/nms/v1_9_R2/NPC_V1_9_R2.java
rename to nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java
index 5ec349d..21a40de 100644
--- a/src/net/jitse/npclib/nms/v1_9_R2/NPC_V1_9_R2.java
+++ b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java
@@ -23,7 +23,7 @@ import java.util.List;
/**
* @author Jitse Boonstra
*/
-public class NPC_V1_9_R2 extends NPC {
+public class NPC_v1_9_R2 extends NPC {
private Hologram hologram;
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
@@ -32,7 +32,7 @@ public class NPC_V1_9_R2 extends NPC {
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
- public NPC_V1_9_R2(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
+ public NPC_v1_9_R2(JavaPlugin plugin, Skin skin, double autoHideDistance, List lines) {
super(plugin, skin, autoHideDistance, lines);
}
@@ -100,9 +100,4 @@ public class NPC_V1_9_R2 extends NPC {
Bukkit.getScheduler().runTaskLater(plugin, () ->
playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
}
-
- @Override
- public void sendTeleportationPackets(Player player) {
- // Todo create this method.
- }
}
diff --git a/src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java
rename to nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutEntityHeadRotationWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java
rename to nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutNamedEntitySpawnWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutPlayerInfoWrapper.java b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutPlayerInfoWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutPlayerInfoWrapper.java
rename to nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutPlayerInfoWrapper.java
diff --git a/src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutScoreboardTeamWrapper.java b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutScoreboardTeamWrapper.java
similarity index 100%
rename from src/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutScoreboardTeamWrapper.java
rename to nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/packets/PacketPlayOutScoreboardTeamWrapper.java
diff --git a/plugin/pom.xml b/plugin/pom.xml
new file mode 100644
index 0000000..7818ea2
--- /dev/null
+++ b/plugin/pom.xml
@@ -0,0 +1,34 @@
+
+
+ 4.0.0
+
+
+ net.jitse
+ npclib
+ 1.0.4
+
+
+ npclib-plugin
+
+
+ ../target
+ NPCLib-v${project.parent.version}
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ ${project.parent.groupId}
+ npclib-api
+ ${project.parent.version}
+ compile
+
+
+
diff --git a/src/net/jitse/npclib/plugin/NPCLibPlugin.java b/plugin/src/main/java/net/jitse/npclib/plugin/NPCLibPlugin.java
similarity index 69%
rename from src/net/jitse/npclib/plugin/NPCLibPlugin.java
rename to plugin/src/main/java/net/jitse/npclib/plugin/NPCLibPlugin.java
index b3fbab9..2cd427d 100644
--- a/src/net/jitse/npclib/plugin/NPCLibPlugin.java
+++ b/plugin/src/main/java/net/jitse/npclib/plugin/NPCLibPlugin.java
@@ -23,7 +23,6 @@ import java.util.Arrays;
public class NPCLibPlugin extends JavaPlugin implements Listener {
private NPCLib npcLib;
- private NPC npc;
@Override
public void onEnable() {
@@ -33,6 +32,7 @@ public class NPCLibPlugin extends JavaPlugin implements Listener {
ChatColor.GRAY + "This is a test plugin usually used for development reasons. " +
"You can spawn NPCs by pressing [shift] in game.");
+
getServer().getPluginManager().registerEvents(this, this);
getServer().getPluginManager().registerEvents(new NPCListener(), this);
}
@@ -48,21 +48,17 @@ public class NPCLibPlugin extends JavaPlugin implements Listener {
return;
}
- if (npc != null) {
- npc.teleport(event.getPlayer(), event.getPlayer().getLocation());
- } else {
- MineSkinFetcher.fetchSkinFromIdAsync(168841, skin -> {
- npc = npcLib.createNPC(skin, Arrays.asList(
- ChatColor.BOLD + "NPC Library", "",
- "Create your own", "non-player characters",
- "with the simplistic", "API of NPCLib!"
- ));
- npc.create(event.getPlayer().getLocation());
+ MineSkinFetcher.fetchSkinFromIdAsync(168841, skin -> {
+ NPC npc = npcLib.createNPC(skin, Arrays.asList(
+ ChatColor.BOLD + "NPC Library", "",
+ "Create your own", "non-player characters",
+ "with the simplistic", "API of NPCLib!"
+ ));
+ npc.create(event.getPlayer().getLocation());
- for (Player player : getServer().getOnlinePlayers()) {
- npc.show(player);
- }
- });
- }
+ for (Player player : getServer().getOnlinePlayers()) {
+ npc.show(player);
+ }
+ });
}
}
diff --git a/src/net/jitse/npclib/plugin/listeners/NPCListener.java b/plugin/src/main/java/net/jitse/npclib/plugin/listeners/NPCListener.java
similarity index 100%
rename from src/net/jitse/npclib/plugin/listeners/NPCListener.java
rename to plugin/src/main/java/net/jitse/npclib/plugin/listeners/NPCListener.java
diff --git a/src/plugin.yml b/plugin/src/main/resources/plugin.yml
similarity index 100%
rename from src/plugin.yml
rename to plugin/src/main/resources/plugin.yml
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..11e2e5b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,79 @@
+
+
+
+ 4.0.0
+ pom
+
+ net.jitse
+ npclib
+ 1.0.4
+
+ NPCLib
+ https://github.com/JitseB/npclib
+
+
+ UTF-8
+
+
+
+
+ MIT
+ https://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ clean install
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.6.1
+
+ 1.8
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.1.0
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.12.2-R0.1-SNAPSHOT
+ provided
+
+
+
+
+ commons
+ nms
+ api
+ plugin
+
+
\ No newline at end of file
diff --git a/src/net/jitse/npclib/listeners/player/PlayerChangedWorldListener.java b/src/net/jitse/npclib/listeners/player/PlayerChangedWorldListener.java
deleted file mode 100644
index 11a83ca..0000000
--- a/src/net/jitse/npclib/listeners/player/PlayerChangedWorldListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2018 Jitse Boonstra
- */
-
-package net.jitse.npclib.listeners.player;
-
-import net.jitse.npclib.NPCManager;
-import net.jitse.npclib.api.NPC;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerChangedWorldEvent;
-
-/**
- * @author Jitse Boonstra
- */
-public class PlayerChangedWorldListener implements Listener {
-
- @EventHandler
- public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
- Player player = event.getPlayer();
- World from = event.getFrom();
-
- // The PlayerTeleportEvent is call, and will handle visibility in the new world.
- for (NPC npc : NPCManager.getAllNPCs()) {
- if (npc.getLocation().getWorld().equals(from)) {
- if (!npc.getAutoHidden().contains(player.getUniqueId())) {
- npc.getAutoHidden().add(player.getUniqueId());
- npc.hide(player, true);
- }
- }
- }
- }
-}
diff --git a/src/net/jitse/npclib/listeners/player/PlayerQuitListener.java b/src/net/jitse/npclib/listeners/player/PlayerQuitListener.java
deleted file mode 100644
index becb046..0000000
--- a/src/net/jitse/npclib/listeners/player/PlayerQuitListener.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2018 Jitse Boonstra
- */
-
-package net.jitse.npclib.listeners.player;
-
-import net.jitse.npclib.NPCManager;
-import net.jitse.npclib.api.NPC;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerQuitEvent;
-
-/**
- * @author Jitse Boonstra
- */
-public class PlayerQuitListener implements Listener {
-
- @EventHandler
- public void onPlayerQuit(PlayerQuitEvent event) {
- Player player = event.getPlayer();
- for (NPC npc : NPCManager.getAllNPCs()) {
- if (npc.getAutoHidden().contains(player.getUniqueId())) {
- npc.getAutoHidden().remove(player.getUniqueId());
- }
-
- if (npc.isActuallyShown(player)) {
- npc.hide(player);
- }
- }
- }
-}
diff --git a/src/net/jitse/npclib/listeners/world/ChunkUnloadListener.java b/src/net/jitse/npclib/listeners/world/ChunkUnloadListener.java
deleted file mode 100644
index a88bbe9..0000000
--- a/src/net/jitse/npclib/listeners/world/ChunkUnloadListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2018 Jitse Boonstra
- */
-
-package net.jitse.npclib.listeners.world;
-
-import net.jitse.npclib.NPCManager;
-import net.jitse.npclib.api.NPC;
-import org.bukkit.Bukkit;
-import org.bukkit.Chunk;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.world.ChunkUnloadEvent;
-
-import java.util.UUID;
-
-/**
- * @author Jitse Boonstra
- */
-public class ChunkUnloadListener implements Listener {
-
- @EventHandler
- public void onChunkUnload(ChunkUnloadEvent event) {
- Chunk chunk = event.getChunk();
-
- for (NPC npc : NPCManager.getAllNPCs()) {
- Chunk npcChunk = npc.getLocation().getChunk();
-
- if (chunk.equals(npcChunk)) {
- // Unloaded chunk with NPC in it. Hiding it from all players currently shown to.
-
- for (UUID uuid : npc.getShown()) {
- // Safety check so it doesn't send packets if the NPC has already
- // been automatically despawned by the system.
- if (npc.getAutoHidden().contains(uuid)) {
- continue;
- }
-
- npc.hide(Bukkit.getPlayer(uuid), true);
- }
- }
- }
- }
-}
diff --git a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityTeleportWrapper.java b/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityTeleportWrapper.java
deleted file mode 100644
index a1eeba3..0000000
--- a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityTeleportWrapper.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2018 Jitse Boonstra
- */
-
-package net.jitse.npclib.nms.v1_12_R1.packets;
-
-import com.comphenix.tinyprotocol.Reflection;
-import net.minecraft.server.v1_12_R1.PacketPlayOutEntityTeleport;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.block.BlockFace;
-
-/**
- * @author Jitse Boonstra
- */
-public class PacketPlayOutEntityTeleportWrapper {
-
- public PacketPlayOutEntityTeleport create(int entityId, Location location) {
- PacketPlayOutEntityTeleport packetPlayOutEntityTeleport = new PacketPlayOutEntityTeleport();
-
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "a", int.class)
- .set(packetPlayOutEntityTeleport, entityId);
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "b", double.class)
- .set(packetPlayOutEntityTeleport, location.getX());
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "c", double.class)
- .set(packetPlayOutEntityTeleport, location.getY());
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "d", double.class)
- .set(packetPlayOutEntityTeleport, location.getZ());
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "e", byte.class)
- .set(packetPlayOutEntityTeleport, (byte) ((int) (location.getYaw() * 256.0F / 360.0F)));
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "f", byte.class)
- .set(packetPlayOutEntityTeleport, (byte) ((int) (location.getPitch() * 256.0F / 360.0F)));
- Reflection.getField(packetPlayOutEntityTeleport.getClass(), "g", boolean.class)
- .set(packetPlayOutEntityTeleport, location.getBlock().getRelative(BlockFace.DOWN).getType() != Material.AIR);
-
- return packetPlayOutEntityTeleport;
- }
-}
diff --git a/src/net/jitse/npclib/version/Version.java b/src/net/jitse/npclib/version/Version.java
deleted file mode 100644
index a2acc90..0000000
--- a/src/net/jitse/npclib/version/Version.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2018 Jitse Boonstra
- */
-
-package net.jitse.npclib.version;
-
-import net.jitse.npclib.api.NPC;
-import net.jitse.npclib.nms.v1_10_R1.NPC_V1_10_R1;
-import net.jitse.npclib.nms.v1_11_R1.NPC_V1_11_R1;
-import net.jitse.npclib.nms.v1_12_R1.NPC_V1_12_R1;
-import net.jitse.npclib.nms.v1_8_R1.NPC_V1_8_R1;
-import net.jitse.npclib.nms.v1_8_R2.NPC_V1_8_R2;
-import net.jitse.npclib.nms.v1_8_R3.NPC_V1_8_R3;
-import net.jitse.npclib.nms.v1_9_R1.NPC_V1_9_R1;
-import net.jitse.npclib.nms.v1_9_R2.NPC_V1_9_R2;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-import java.util.Optional;
-
-/**
- * @author Jitse Boonstra
- */
-public enum Version {
-
- V1_8_R1("v1_8_R1", NPC_V1_8_R1.class),
- V1_8_R2("v1_8_R2", NPC_V1_8_R2.class),
- V1_8_R3("v1_8_R3", NPC_V1_8_R3.class),
- V1_9_R1("v1_9_R1", NPC_V1_9_R1.class),
- V1_9_R2("v1_9_R2", NPC_V1_9_R2.class),
- V1_10_R1("v1_10_R1", NPC_V1_10_R1.class),
- V1_11_R1("v1_11_R1", NPC_V1_11_R1.class),
- V1_12_R1("v1_12_R1", NPC_V1_12_R1.class);
-
- private String version;
- private Class> clazz;
-
- Version(String version, Class> clazz) {
- this.version = version;
- this.clazz = clazz;
- }
-
- public NPC createNPC(Object... params) throws InstantiationException, IllegalAccessException, InvocationTargetException {
- return (NPC) clazz.getConstructors()[0].newInstance(params);
- }
-
- public static Optional getByName(String version) {
- return Arrays.stream(values()).filter(value -> value.version.equals(version)).findFirst();
- }
-}