diff --git a/pom.xml b/pom.xml
index 5c3662e..8f070f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.alttd
AltitudeTag
- 0.0.1
+ 1.0.0-SNAPSHOT
UTF-8
@@ -28,9 +28,35 @@
mariadb-java-client
2.4.1
-
+
+
+ org.powermock
+ powermock-module-junit4
+ 1.7.4
+ test
+
+
+
+ org.powermock
+ powermock-api-mockito2
+ 1.7.4
+ test
+
+
+
+ com.gmail.filoghost.holographicdisplays
+ holographicdisplays-api
+ 2.3.2
+
+
+
+ filoghost-repo
+ https://ci.filoghost.me/plugin/repository/everything/
+
+
+
diff --git a/src/main/java/com/alttd/altitudetag/AltitudeTag.java b/src/main/java/com/alttd/altitudetag/AltitudeTag.java
index 6900e61..3f939d5 100644
--- a/src/main/java/com/alttd/altitudetag/AltitudeTag.java
+++ b/src/main/java/com/alttd/altitudetag/AltitudeTag.java
@@ -3,6 +3,7 @@ package com.alttd.altitudetag;
import java.util.UUID;
import java.util.function.Consumer;
+import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class AltitudeTag extends JavaPlugin
@@ -17,6 +18,21 @@ public class AltitudeTag extends JavaPlugin
public void onEnable()
{
instance = this;
+
+ if (!Bukkit.getPluginManager().isPluginEnabled("HolographicDisplays"))
+ {
+ getLogger().severe("*** HolographicDisplays is not installed or not enabled. ***");
+ getLogger().severe("*** This plugin will be disabled. ***");
+ this.setEnabled(false);
+ return;
+ }
+
+ Bukkit.getScheduler().runTaskTimerAsynchronously(this, this::updateLeaderboard, 20, 10);
+ }
+
+ private void updateLeaderboard()
+ {
+
}
/**
@@ -30,6 +46,10 @@ public class AltitudeTag extends JavaPlugin
{
UUID prev = instance.tagger;
instance.tagger = tagger;
+
+ // announce that a new person is it
+ Bukkit.getOnlinePlayers().stream().filter(player -> !player.getUniqueId().equals(tagger)).forEach(player -> player.sendMessage());
+
return prev;
}
diff --git a/src/main/java/com/alttd/altitudetag/Leaderboard.java b/src/main/java/com/alttd/altitudetag/Leaderboard.java
index 4406223..3d97e7a 100644
--- a/src/main/java/com/alttd/altitudetag/Leaderboard.java
+++ b/src/main/java/com/alttd/altitudetag/Leaderboard.java
@@ -52,6 +52,7 @@ public class Leaderboard
else
{
sql = "INSERT INTO Players (PlayerUuidMost, PlayerUuidLeast) VALUES (?, ?);";
+
}
// prepare the statement
try (PreparedStatement ps = TagConnection.getConnection().prepareStatement(sql))
diff --git a/src/main/java/com/alttd/altitudetag/configuration/Config.java b/src/main/java/com/alttd/altitudetag/configuration/Config.java
index c61ee1e..ccd06c7 100644
--- a/src/main/java/com/alttd/altitudetag/configuration/Config.java
+++ b/src/main/java/com/alttd/altitudetag/configuration/Config.java
@@ -69,6 +69,9 @@ public final class Config
updateValue(config, save, "database.timeout", DATABASE_TIMEOUT);
updateValue(config, save, "database.description", DATABASE_CONNECTION_DESCRIPTION);
+ // Notification information
+
+
if (save.getValue())
{
AltitudeTag.getInstance().saveConfig();
diff --git a/src/main/java/com/alttd/altitudetag/configuration/Lang.java b/src/main/java/com/alttd/altitudetag/configuration/Lang.java
index 6b302db..ce0385e 100644
--- a/src/main/java/com/alttd/altitudetag/configuration/Lang.java
+++ b/src/main/java/com/alttd/altitudetag/configuration/Lang.java
@@ -54,8 +54,18 @@ public enum Lang
* When the console tries to run a player-only command.
*/
ONLY_PLAYERS("only_players", "Only players can run that command."),
+ /**
+ * Sent to someone when they become it
+ */
YOURE_IT("youre-it", "You're it! Try to tag someone!"),
- TAGGED("tagged", "Nice tag! You're up to {tags} tags!");
+ /**
+ * When you tag someone
+ */
+ TAGGED("tagged", "&7Nice tag! You're not it anymore. You're up to &b{tags}&7 tags!"),
+ /**
+ * Broadcast to the server when a new person becomes it.
+ */
+ NEW_TAGGER("new_tagger", "Uh oh, {player} is it! Run!!");
private String[] message;
diff --git a/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java b/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java
index 30482a1..a401aac 100644
--- a/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java
+++ b/src/main/java/com/alttd/altitudetag/listeners/ConnectionListener.java
@@ -1,9 +1,12 @@
package com.alttd.altitudetag.listeners;
-import com.alttd.altitudeapi.utils.CollectionUtils;
+import java.util.Optional;
+import java.util.UUID;
+
import com.alttd.altitudetag.AltitudeTag;
import com.alttd.altitudetag.configuration.Lang;
import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
@@ -26,10 +29,21 @@ public class ConnectionListener implements Listener
{
if (event.getPlayer().getUniqueId().equals(AltitudeTag.getTagger()))
{
- AltitudeTag.setTagger(CollectionUtils.randomValue(Bukkit.getOnlinePlayers()).getUniqueId());
- Lang.YOURE_IT.send(event.getPlayer());
+ 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);
+ Lang.YOURE_IT.send(event.getPlayer());
+ }
}
}
-
-
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 352197a..7e10a14 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -5,4 +5,43 @@ database:
password: password
database: AltitudeTag
timeout: 100
- description: 'Altitude Connection'
\ No newline at end of file
+ description: 'Altitude Connection'
+leaderboard:
+ enabled: true
+ title: '&b&lAltitude Tag Leaderboard'
+ format: '&6{rank}. &e{player} &7- &e{tags}'
+ top: 10
+ location:
+ world: world
+ x: 10.0
+ y: 50.0
+ z: 10.0
+notification:
+ sound:
+ enabled: false
+ type: ITEM_BREAK
+ join-delay:
+ enabled: true
+ length: 60
+ actionbar:
+ enabled: true
+ message: "&eTag: You're it - tag someone!"
+ duration: -1
+ title:
+ enabled: true
+ message: '&6Tag'
+ duration: 100
+ sub-title:
+ enabled: true
+ message: "&eYou're it!"
+ join-delay:
+ enabled: true
+ length: 60
+ boss-bar:
+ # Options: 0, 6, 10, 12, 20
+ segments: 0
+ percent: 0
+ message: "&eTag: You're it - tag someone!"
+ chat:
+ enabled: false
+ message: "&eTag: You're it - tag someone!"
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index cce10fd..f8039d6 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,4 +1,5 @@
main: com.alttd.altitudetag.AltitudeTag
name: AltitudeTag
version: ${project.version}
-author: Michael Ziluck
\ No newline at end of file
+author: Michael Ziluck
+softdepend: [HolographicDisplays]
\ No newline at end of file