diff --git a/pom.xml b/pom.xml
index 5b2e735..333639d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,14 +69,9 @@
io.papermc.paper
paper-api
- 1.18.1-R0.1-SNAPSHOT
+ 1.18.2-R0.1-SNAPSHOT
provided
-
- org.slf4j
- slf4j-simple
- 1.7.36
-
net.luckperms
api
diff --git a/src/main/java/moe/oko/opennaw/OpenNAW.java b/src/main/java/moe/oko/opennaw/OpenNAW.java
index b9ee3dd..347229e 100644
--- a/src/main/java/moe/oko/opennaw/OpenNAW.java
+++ b/src/main/java/moe/oko/opennaw/OpenNAW.java
@@ -1,6 +1,7 @@
package moe.oko.opennaw;
import moe.oko.opennaw.command.NationCommand;
+import moe.oko.opennaw.util.ChatHandler;
import moe.oko.opennaw.util.GroupHandler;
import moe.oko.opennaw.util.NationHandler;
import net.luckperms.api.LuckPerms;
@@ -34,8 +35,9 @@ public final class OpenNAW extends JavaPlugin {
info("OpenNAW is enabled!");
- // Register Commands
+ // Register Commands & Events
this.getCommand("nation").setExecutor(new NationCommand());
+ getServer().getPluginManager().registerEvents(new ChatHandler(), this);
}
@Override
diff --git a/src/main/java/moe/oko/opennaw/command/NationCommand.java b/src/main/java/moe/oko/opennaw/command/NationCommand.java
index 51fa68d..088a1c6 100644
--- a/src/main/java/moe/oko/opennaw/command/NationCommand.java
+++ b/src/main/java/moe/oko/opennaw/command/NationCommand.java
@@ -2,8 +2,6 @@ package moe.oko.opennaw.command;
import moe.oko.opennaw.OpenNAW;
import moe.oko.opennaw.util.CommandHelper;
-import net.luckperms.api.model.group.Group;
-import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
@@ -22,7 +20,7 @@ public class NationCommand implements TabExecutor {
if (args.length < 1) { return false; }
- List nationList = OpenNAW.getInstance().getNationHandler().getNationList();
+ var nationList = OpenNAW.getInstance().getNationHandler().getNationList();
switch (args[0]) {
case "add" -> {
@@ -31,7 +29,7 @@ public class NationCommand implements TabExecutor {
return true;
}
- Group group = OpenNAW.getInstance().getGroupHandler().getGroupFromString(args[2]);
+ var group = OpenNAW.getInstance().getGroupHandler().getGroupFromString(args[2]);
if (group == null) {
sender.sendMessage("Group " + args[2] + " does not exist");
@@ -42,7 +40,7 @@ public class NationCommand implements TabExecutor {
sender.sendMessage("Created nation " + args[1]);
}
case "list" -> {
- final String msg = nationList.size() == 0
+ final var msg = nationList.size() == 0
? "There are no nations"
: "There are " + nationList.size() + " nations: " + nationList;
sender.sendMessage(msg);
@@ -52,7 +50,7 @@ public class NationCommand implements TabExecutor {
sender.sendMessage("Removed nation " + args[1]);
}
case "join" -> {
- OfflinePlayer player = args.length < 3
+ var player = args.length < 3
? ((Player) sender).getPlayer()
: OpenNAW.getInstance().getServer().getOfflinePlayer(args[2]);
@@ -61,13 +59,13 @@ public class NationCommand implements TabExecutor {
return true;
}
- Group group = OpenNAW.getInstance().getNationHandler().getNationGroup(args[1]);
+ var group = OpenNAW.getInstance().getNationHandler().getNationGroup(args[1]);
OpenNAW.getInstance().getGroupHandler().addPlayerToGroup(player, group);
sender.sendMessage("Added " + player.getName() + " to nation " + args[1]);
}
case "leave" -> {
- OfflinePlayer player = args.length < 3
+ var player = args.length < 3
? ((Player) sender).getPlayer()
: OpenNAW.getInstance().getServer().getOfflinePlayer(args[2]);
OpenNAW.getInstance().getGroupHandler().removePlayerFromGroup(player);
diff --git a/src/main/java/moe/oko/opennaw/model/City.java b/src/main/java/moe/oko/opennaw/model/City.java
new file mode 100644
index 0000000..6a6a4dd
--- /dev/null
+++ b/src/main/java/moe/oko/opennaw/model/City.java
@@ -0,0 +1,19 @@
+package moe.oko.opennaw.model;
+
+import org.bukkit.Location;
+
+public class City {
+ private String name;
+ private String resource;
+ private Nation owner;
+ private Location point;
+ private short health;
+
+ public City(String name, String resource, Location location) {
+ this.name = name;
+ this.resource = resource;
+ this.owner = null;
+ this.point = location;
+ this.health = 500;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/moe/oko/opennaw/util/ChatHandler.java b/src/main/java/moe/oko/opennaw/util/ChatHandler.java
new file mode 100644
index 0000000..59991be
--- /dev/null
+++ b/src/main/java/moe/oko/opennaw/util/ChatHandler.java
@@ -0,0 +1,36 @@
+package moe.oko.opennaw.util;
+
+import io.papermc.paper.event.player.AsyncChatEvent;
+import moe.oko.opennaw.OpenNAW;
+import net.kyori.adventure.audience.Audience;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.TextColor;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
+import org.bukkit.Bukkit;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
+
+public class ChatHandler implements Listener {
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onChat(AsyncChatEvent e) {
+ var legacyComponentSerializer = LegacyComponentSerializer.builder().character('&').hexColors().build();
+ var player = e.getPlayer();
+ Audience audience;
+
+ var nationString = "[" + OpenNAW.getInstance().getGroupHandler().getPrefixFromPlayer(player) + "&r] ";
+ var prefix = legacyComponentSerializer.deserialize(nationString);
+ var message = e.message();
+
+ e.setCancelled(true);
+
+ audience = Audience.audience(Bukkit.getOnlinePlayers());
+
+ audience.sendMessage(prefix
+ .append(player.displayName().color(TextColor.fromHexString("#939597")))
+ .append(Component.text(": "))
+ .append(message));
+ }
+
+}
diff --git a/src/main/java/moe/oko/opennaw/util/GroupHandler.java b/src/main/java/moe/oko/opennaw/util/GroupHandler.java
index 96b6e4d..6a963a3 100644
--- a/src/main/java/moe/oko/opennaw/util/GroupHandler.java
+++ b/src/main/java/moe/oko/opennaw/util/GroupHandler.java
@@ -7,13 +7,10 @@ import net.luckperms.api.node.Node;
import net.luckperms.api.node.NodeType;
import net.luckperms.api.node.types.InheritanceNode;
import org.bukkit.OfflinePlayer;
+import org.bukkit.entity.Player;
public record GroupHandler(LuckPerms luckPerms) {
- public Group getGroupFromString(String s) {
- return this.luckPerms.getGroupManager().getGroup(s);
- }
-
public void addPlayerToGroup(OfflinePlayer player, Group group) {
this.luckPerms.getUserManager().modifyUser(player.getUniqueId(), (User user) -> {
@@ -34,4 +31,12 @@ public record GroupHandler(LuckPerms luckPerms) {
user.data().clear(NodeType.INHERITANCE::matches);
});
}
+
+ public Group getGroupFromString(String s) {
+ return this.luckPerms.getGroupManager().getGroup(s);
+ }
+ public String getPrefixFromPlayer(Player player) {
+ var user = this.luckPerms.getUserManager().getUser(player.getUniqueId());
+ return user.getCachedData().getMetaData().getPrefix();
+ }
}