Skip to content

Commit

Permalink
Fixed respawn issue (#69) and updated version to 2.5.1.-SNAPSHOT.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jitse Boonstra authored and Jitse Boonstra committed Apr 15, 2020
1 parent a9d2e09 commit eb01c0f
Show file tree
Hide file tree
Showing 16 changed files with 60 additions and 18 deletions.
8 changes: 7 additions & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<artifactId>npclib</artifactId>
<groupId>net.jitse</groupId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-api</artifactId>
Expand All @@ -31,6 +31,12 @@
<version>1.15.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.15.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mojang</groupId>
<artifactId>authlib</artifactId>
Expand Down
42 changes: 39 additions & 3 deletions api/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.*;
import org.bukkit.scheduler.BukkitRunnable;

/**
* @author Jitse Boonstra
Expand Down Expand Up @@ -42,6 +44,40 @@ private void onPlayerLeave(Player player) {
npc.onLogout(player);
}

@EventHandler
public void onPlayerDeath(PlayerDeathEvent event) {
// Need to auto hide the NPCs from the player, or else the system will think they can see the NPC on respawn.
Player player = event.getEntity();
for (NPCBase npc : NPCManager.getAllNPCs()) {
if (npc.getWorld().equals(player.getWorld())) {
if (!npc.getAutoHidden().contains(player.getUniqueId())) {
npc.getAutoHidden().add(player.getUniqueId());
npc.hide(player, true);
}
}
}
}

@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) {
// If the player dies in the server spawn world, the world change event isn't called (nor is the PlayerTeleportEvent).
Player player = event.getPlayer();
Location respawn = event.getRespawnLocation();
if (respawn.getWorld() != null && respawn.getWorld().equals(player.getWorld())) {
// Waiting until the player is moved to the new location or else it'll mess things up.
// I.e. if the player is at great distance from the NPC spawning, they won't be able to see it.
new BukkitRunnable() {
@Override
public void run() {
if (player.isOnline() && player.getLocation().equals(respawn)) {
handleMove(player);
this.cancel();
}
}
}.runTaskTimerAsynchronously(instance.getPlugin(), 0, 1);
}
}

@EventHandler
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
Player player = event.getPlayer();
Expand Down Expand Up @@ -77,20 +113,20 @@ public void onPlayerTeleport(PlayerTeleportEvent event) {
}

private void handleMove(Player player) {
World world = player.getWorld();
Location location = player.getLocation();
for (NPCBase npc : NPCManager.getAllNPCs()) {
if (!npc.getShown().contains(player.getUniqueId())) {
continue; // NPC was never supposed to be shown to the player.
}

if (!npc.getWorld().equals(world)) {
if (!npc.getWorld().equals(location.getWorld())) {
continue; // NPC is not in the same world.
}

// If Bukkit doesn't track the NPC entity anymore, bypass the hiding distance variable.
// This will cause issues otherwise (e.g. custom skin disappearing).
double hideDistance = instance.getAutoHideDistance();
double distanceSquared = player.getLocation().distanceSquared(npc.getLocation());
double distanceSquared = location.distanceSquared(npc.getLocation());

int tempRange = Bukkit.getViewDistance() << 4;
boolean inRange = distanceSquared <= (hideDistance * hideDistance) && distanceSquared <= (tempRange * tempRange); // Avoids Math.pow due to how intensive it is. Could make a static utility function for it.
Expand Down
2 changes: 1 addition & 1 deletion nms/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_10_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_10_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_11_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_11_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_12_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_12_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_13_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_13_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_13_R2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_13_R2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_14_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_14_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_15_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_15_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_8_R2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_8_R2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_8_R3/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_8_R3</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_9_R1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_9_R1</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion nms/v1_9_R2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib-nms</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-nms-v1_9_R2</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>net.jitse</groupId>
<artifactId>npclib</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>
</parent>

<artifactId>npclib-plugin</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<groupId>net.jitse</groupId>
<artifactId>npclib</artifactId>
<version>2.5-SNAPSHOT</version>
<version>2.5.1-SNAPSHOT</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down

0 comments on commit eb01c0f

Please sign in to comment.