diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java index ff388c1..9a805db 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java @@ -13,6 +13,8 @@ import net.md_5.bungee.api.chat.TextComponent; import nl.interestingcorner.coordinates.db.Coordinate; import nl.interestingcorner.coordinates.db.CoordinatesDatabaseManager; import nl.interestingcorner.core.MinecraftColor; +import nl.interestingcorner.core.MinecraftFormattingCode; +import nl.interestingcorner.core.chat.ChatHelper; public class AddCoordinateCommandHandler implements CoordinatesCommandHandler { @@ -63,7 +65,7 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler { player.sendMessage(MinecraftColor.BLUE.toColorCode() + "Adding coordinate '" + name + "' at your current location..."); //TODO check if item doesnt already exist, coordinate with same values, create isEquals method for coordinate - return CoordinatesDatabaseManager.INSTANCE + boolean addSuccess = CoordinatesDatabaseManager.INSTANCE .addCoordinate(name, // name description, // description new Coordinate.Position(playerLocation.getBlockX(), playerLocation.getBlockY(), @@ -72,6 +74,30 @@ public class AddCoordinateCommandHandler implements CoordinatesCommandHandler { playerWorld.getName(), // world MinecraftColor.fromString(color) // color ); + if (!addSuccess) { + return false; + } else { + StringBuilder sb = new StringBuilder(); + sb.append(MinecraftFormattingCode.ITALIC.toString()) + .append(MinecraftFormattingCode.UNDERLINE.toString()) + .append(MinecraftColor.LIGHT_PURPLE.toColorCode()) + .append("[IC-Coords] ") + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()) + .append("Player ") + .append(MinecraftColor.AQUA.toColorCode()) + .append(player.getName()) + .append(MinecraftColor.WHITE.toColorCode()) + .append(MinecraftFormattingCode.RESET.toString()) + .append(" added new coordinate ") + .append(MinecraftColor.fromString(color).toColorCode()) + .append(MinecraftFormattingCode.BOLD.toString()) + .append(name) + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()) + .append(" to the map!"); + ChatHelper.broadcastMessage(sb.toString()); + } } return true; diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/RemoveItemClickListener.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/RemoveItemClickListener.java index 7d73943..5b26f53 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/RemoveItemClickListener.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/RemoveItemClickListener.java @@ -6,10 +6,12 @@ import org.bukkit.inventory.ItemStack; import nl.interestingcorner.coordinates.db.Coordinate; import nl.interestingcorner.coordinates.db.CoordinatesDatabaseManager; import nl.interestingcorner.core.MinecraftColor; +import nl.interestingcorner.core.MinecraftFormattingCode; +import nl.interestingcorner.core.chat.ChatHelper; import nl.interestingcorner.core.gui.GUI; import nl.interestingcorner.core.gui.GUIItemClickListener; -public class RemoveItemClickListener implements GUIItemClickListener{ +public class RemoveItemClickListener implements GUIItemClickListener { @Override public void onItemClick(Player player, GUI gui, ItemStack item, int slot) { @@ -22,6 +24,28 @@ public class RemoveItemClickListener implements GUIItemClickListener{ player.closeInventory(); player.sendMessage("Removed coordinate " + coordinate.name); + + StringBuilder sb = new StringBuilder(); + sb.append(MinecraftFormattingCode.ITALIC.toString()) + .append(MinecraftFormattingCode.UNDERLINE.toString()) + .append(MinecraftColor.LIGHT_PURPLE.toColorCode()) + .append("[IC-Coords] ") + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()) + .append("Player ") + .append(MinecraftColor.AQUA.toColorCode()) + .append(player.getName()) + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.RED.toColorCode()) + .append(" removed ") + .append(MinecraftColor.WHITE.toColorCode()) + .append("coordinate ") + .append(coordinate.color.toColorCode()) + .append(MinecraftFormattingCode.BOLD.toString()) + .append(coordinate.name) + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()) + .append(" from the map!"); + ChatHelper.broadcastMessage(sb.toString()); } - } diff --git a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/TeleportItemClickListener.java b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/TeleportItemClickListener.java index 080513c..8965aa3 100644 --- a/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/TeleportItemClickListener.java +++ b/ic_plugin_coordinates/src/main/java/nl/interestingcorner/coordinates/gui/clicklisteners/TeleportItemClickListener.java @@ -5,6 +5,9 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import nl.interestingcorner.coordinates.db.Coordinate; +import nl.interestingcorner.core.MinecraftColor; +import nl.interestingcorner.core.MinecraftFormattingCode; +import nl.interestingcorner.core.chat.ChatHelper; import nl.interestingcorner.core.gui.GUI; import nl.interestingcorner.core.gui.GUIItemClickListener; import nl.interestingcorner.core.logging.Logger; @@ -15,7 +18,7 @@ public class TeleportItemClickListener implements GUIItemClickListener { @Override public void onItemClick(Player player, GUI gui, ItemStack item, int slot) { - + Logger.INSTANCE.info(TAG, "Item clicked in slot " + slot + " by player " + player.getName()); Coordinate coordinate = Coordinate.fromItem(item); @@ -26,6 +29,25 @@ public class TeleportItemClickListener implements GUIItemClickListener { player.teleport(loc); player.sendTitle(coordinate.name, coordinate.description, 10, 70, 20); player.closeInventory(); + StringBuilder sb = new StringBuilder(); + sb.append(MinecraftFormattingCode.ITALIC.toString()) + .append(MinecraftFormattingCode.UNDERLINE.toString()) + .append(MinecraftColor.LIGHT_PURPLE.toColorCode()) + .append("[IC-Coords] ") + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()) + .append("Player ") + .append(MinecraftColor.AQUA.toColorCode()) + .append(player.getName()) + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()) + .append(" yeeted themselves to ") + .append(coordinate.color.toColorCode()) + .append(MinecraftFormattingCode.BOLD.toString()) + .append(coordinate.name) + .append(MinecraftFormattingCode.RESET.toString()) + .append(MinecraftColor.WHITE.toColorCode()); + ChatHelper.broadcastMessage(sb.toString()); } } } diff --git a/ic_plugin_core/src/main/java/nl/interestingcorner/core/MinecraftFormattingCode.java b/ic_plugin_core/src/main/java/nl/interestingcorner/core/MinecraftFormattingCode.java new file mode 100644 index 0000000..2007626 --- /dev/null +++ b/ic_plugin_core/src/main/java/nl/interestingcorner/core/MinecraftFormattingCode.java @@ -0,0 +1,21 @@ +package nl.interestingcorner.core; + +public enum MinecraftFormattingCode { + BOLD("§l"), + ITALIC("§o"), + UNDERLINE("§n"), + STRIKETHROUGH("§m"), + RESET("§r"), + OBFUSCATED("§k"); + + private final String code; + + MinecraftFormattingCode(String code) { + this.code = code; + } + + @Override + public String toString() { + return code; + } +} diff --git a/ic_plugin_core/src/main/java/nl/interestingcorner/core/chat/ChatHelper.java b/ic_plugin_core/src/main/java/nl/interestingcorner/core/chat/ChatHelper.java new file mode 100644 index 0000000..16be80d --- /dev/null +++ b/ic_plugin_core/src/main/java/nl/interestingcorner/core/chat/ChatHelper.java @@ -0,0 +1,24 @@ +package nl.interestingcorner.core.chat; + +import org.bukkit.Server; + +public class ChatHelper { + + /** + * Sends a message to all online players on the server. + * @param message the message to send + */ + public static void sendMessageToEveryone(String message) { + Server server = org.bukkit.Bukkit.getServer(); + server.getOnlinePlayers().forEach(player -> player.sendMessage(message)); + } + + /** + * Broadcasts a message to all players on the server, including those who are not online. + * @param message the message to send + */ + public static void broadcastMessage(String message) { + Server server = org.bukkit.Bukkit.getServer(); + server.broadcastMessage(message); + } +}