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(); - } -}