diff --git a/pom.xml b/pom.xml
index b496607..fa6f9bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.alttd
AltitudeTag
- 1.0.1
+ 1.0.2
UTF-8
diff --git a/src/main/java/com/alttd/altitudetag/AltitudeTag.java b/src/main/java/com/alttd/altitudetag/AltitudeTag.java
index 0cd9531..4e4dbb7 100644
--- a/src/main/java/com/alttd/altitudetag/AltitudeTag.java
+++ b/src/main/java/com/alttd/altitudetag/AltitudeTag.java
@@ -114,17 +114,17 @@ public class AltitudeTag extends JavaPlugin
*
* @param tagger the new tagger.
*/
- public static void setTagger(UUID tagger)
+ public static void setTagger(UUID tagger, TagCause cause)
{
- // announce that a new person is it
Player previousPlayer = Bukkit.getPlayer(instance.tagger);
if (tagger != null)
{
- NotificationHandler.sendGlobalNotifications(previousPlayer != null
- ? previousPlayer.getName()
- : null, Bukkit.getPlayer(tagger).getName());
+ NotificationHandler.sendGlobalNotifications(previousPlayer != null ? previousPlayer.getName() : null,
+ Bukkit.getPlayer(tagger).getName(),
+ cause);
}
+
instance.tagger = tagger;
}
diff --git a/src/main/java/com/alttd/altitudetag/NotificationHandler.java b/src/main/java/com/alttd/altitudetag/NotificationHandler.java
index 9fd324a..60bc1ad 100644
--- a/src/main/java/com/alttd/altitudetag/NotificationHandler.java
+++ b/src/main/java/com/alttd/altitudetag/NotificationHandler.java
@@ -64,15 +64,21 @@ public class NotificationHandler
});
}
- public static void sendGlobalNotifications(String attacker, String victim)
+ public static void sendGlobalNotifications(String attacker, String victim, TagCause cause)
{
- if (attacker == null && Config.NOTIFICATION_GLOBAL_CHAT_OTHER_REASON_ENABLED.getValue())
+ if (cause == TagCause.DISCONNECT_EMPTY)
+ {
+ return;
+ }
+
+ if (cause != TagCause.NORMAL && Config.NOTIFICATION_GLOBAL_CHAT_OTHER_REASON_ENABLED.getValue())
{
// TODO make this actually do what it's supposed to
Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(Lang.renderString(Config.NOTIFICATION_GLOBAL_CHAT_OTHER_REASON_MESSAGE.getValue(),
"{target}", victim)));
}
- if (attacker != null && Config.NOTIFICATION_GLOBAL_CHAT_AFTER_TAG_ENABLED.getValue())
+
+ if (cause == TagCause.NORMAL && Config.NOTIFICATION_GLOBAL_CHAT_AFTER_TAG_ENABLED.getValue())
{
Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(Lang.renderString(Config.NOTIFICATION_GLOBAL_CHAT_AFTER_TAG_MESSAGE.getValue(),
"{target}", victim,
diff --git a/src/main/java/com/alttd/altitudetag/TagCause.java b/src/main/java/com/alttd/altitudetag/TagCause.java
new file mode 100644
index 0000000..e2503e0
--- /dev/null
+++ b/src/main/java/com/alttd/altitudetag/TagCause.java
@@ -0,0 +1,10 @@
+package com.alttd.altitudetag;
+
+public enum TagCause
+{
+ NORMAL,
+ TIMEOUT,
+ DISCONNECT_TRANSFER,
+ DISCONNECT_EMPTY,
+ FIRST_CONNECT
+}
diff --git a/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java b/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java
index cde855b..42f6b77 100644
--- a/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java
+++ b/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java
@@ -1,10 +1,10 @@
package com.alttd.altitudetag.listeners;
import java.util.Optional;
-import java.util.UUID;
import com.alttd.altitudetag.AltitudeTag;
import com.alttd.altitudetag.NotificationHandler;
+import com.alttd.altitudetag.TagCause;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -19,7 +19,7 @@ public class ConnectionListener implements Listener
{
if (AltitudeTag.getTagger() == null)
{
- AltitudeTag.setTagger(event.getPlayer().getUniqueId());
+ AltitudeTag.setTagger(event.getPlayer().getUniqueId(), TagCause.FIRST_CONNECT);
}
if (AltitudeTag.getBossBar() != null)
{
@@ -30,23 +30,24 @@ public class ConnectionListener implements Listener
@EventHandler
public void onLeave(PlayerQuitEvent event)
{
- if (event.getPlayer().getUniqueId().equals(AltitudeTag.getTagger()))
+ if (!event.getPlayer().getUniqueId().equals(AltitudeTag.getTagger()))
{
- if (Bukkit.getOnlinePlayers().size() == 1)
- {
- AltitudeTag.setTagger(null);
- }
- else
- {
- Optional extends Player> optional = Bukkit.getOnlinePlayers().stream().filter(p -> p != event.getPlayer()).findAny();
- if (!optional.isPresent())
- {
- throw new IllegalStateException("There is more than one player on but for some reason they are all: " + event.getPlayer().getUniqueId());
- }
- UUID uuid = optional.get().getUniqueId();
- AltitudeTag.setTagger(uuid);
- NotificationHandler.sendVictimTitle(optional.get(), false);
- }
+ return;
}
+
+ if (Bukkit.getOnlinePlayers().size() == 1)
+ {
+ AltitudeTag.setTagger(null, TagCause.DISCONNECT_EMPTY);
+ return;
+ }
+
+ Optional extends Player> optional = Bukkit.getOnlinePlayers().stream().filter(p -> p != event.getPlayer()).findAny();
+ if (!optional.isPresent())
+ {
+ throw new IllegalStateException("There is more than one player on but for some reason they are all: " + event.getPlayer().getUniqueId());
+ }
+ Player player = optional.get();
+ AltitudeTag.setTagger(player.getUniqueId(), TagCause.DISCONNECT_TRANSFER);
+ NotificationHandler.sendVictimTitle(player, false);
}
}
diff --git a/src/main/java/com/alttd/altitudetag/listeners/InteractListener.java b/src/main/java/com/alttd/altitudetag/listeners/InteractListener.java
index 3606877..a151d2d 100644
--- a/src/main/java/com/alttd/altitudetag/listeners/InteractListener.java
+++ b/src/main/java/com/alttd/altitudetag/listeners/InteractListener.java
@@ -2,6 +2,7 @@ package com.alttd.altitudetag.listeners;
import com.alttd.altitudetag.AltitudeTag;
import com.alttd.altitudetag.NotificationHandler;
+import com.alttd.altitudetag.TagCause;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@@ -32,7 +33,7 @@ public class InteractListener implements Listener
}
});
- AltitudeTag.setTagger(tagged.getUniqueId());
+ AltitudeTag.setTagger(tagged.getUniqueId(), TagCause.NORMAL);
NotificationHandler.sendVictimTitle(tagged, false);
}