diff --git a/ic_plugin/.mvn/jvm.config b/ic_plugin/.mvn/jvm.config
deleted file mode 100644
index e69de29..0000000
diff --git a/ic_plugin/.mvn/maven.config b/ic_plugin/.mvn/maven.config
deleted file mode 100644
index e69de29..0000000
diff --git a/ic_plugin/pom.xml b/ic_plugin/pom.xml
deleted file mode 100644
index 1ded2c8..0000000
--- a/ic_plugin/pom.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
- 4.0.0
-
- nl.interestingcorner.coordinates
- ic_plugin
- 1.0-SNAPSHOT
-
- ic_plugin
-
- https://interesting-corner.nl
-
-
- UTF-8
- 17
-
-
-
- spigot-repo
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
-
-
-
-
-
- org.junit
- junit-bom
- 5.11.0
- pom
- import
-
-
-
-
-
-
- org.junit.jupiter
- junit-jupiter-api
- test
-
-
-
- org.junit.jupiter
- junit-jupiter-params
- test
-
-
- com.google.errorprone
- error_prone_annotations
- 2.28.0
- provided
-
-
- org.spigotmc
- spigot-api
- 1.21.8-R0.1-SNAPSHOT
- provided
-
-
- org.xerial
- sqlite-jdbc
- 3.50.3.0
-
-
-
-
- ${project.basedir}/src/main/java
-
-
- ${project.basedir}/src/main/resources
-
- plugin.yml
-
-
-
-
-
-
-
- maven-clean-plugin
- 3.4.0
-
-
-
- maven-resources-plugin
- 3.3.1
-
-
- maven-compiler-plugin
- 3.13.0
-
-
- maven-surefire-plugin
- 3.3.0
-
-
- maven-jar-plugin
- 3.4.2
-
-
- ${db.username}
- ${db.password}
-
-
-
-
- maven-install-plugin
- 3.1.2
-
-
- maven-deploy-plugin
- 3.1.2
-
-
-
- maven-site-plugin
- 3.12.1
-
-
- maven-project-info-reports-plugin
- 3.6.1
-
-
-
-
-
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/App.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/App.java
deleted file mode 100644
index eb159e3..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/App.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package nl.interestingcorner.coordinates;
-
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.PluginCommand;
-import org.bukkit.plugin.java.JavaPlugin;
-
-import nl.interestingcorner.coordinates.commands.CoordinatesCommand;
-import nl.interestingcorner.coordinates.db.DatabaseManager;
-import nl.interestingcorner.coordinates.gui.CoordinatesGUIListener;
-
-public class App extends JavaPlugin {
-
- @Override
- public void onEnable() {
- getLogger().info("Eyooo we boutta get lit!");
-
- if (!DatabaseManager.INSTANCE.initialize(this)) {
- getLogger().severe("Could not initialize database. Exiting!");
- setEnabled(false);
- return;
- }
- getLogger().info("Successfully initialized database");
-
- getServer().getPluginManager().registerEvents(new CoordinatesGUIListener(), this);
- registerCommands();
-
- }
-
- @Override
- public void onDisable() {
- getLogger().info("Eyooo we outta here!");
-
- if (!DatabaseManager.INSTANCE.close()) {
- getLogger().severe("Error while trying to close db connection");
- }
- }
-
- private void registerCommands() {
- registerSimgleCommand("ic-coords", new CoordinatesCommand());
- }
-
- private void registerSimgleCommand(String name, CommandExecutor executor)
- {
- PluginCommand pc = this.getCommand(name);
- if (pc != null)
- {
- pc.setExecutor(executor);
- }
- }
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java
deleted file mode 100644
index 7590177..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/AddCoordinateCommandHandler.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package nl.interestingcorner.coordinates.commands;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import net.md_5.bungee.api.ChatColor;
-import net.md_5.bungee.api.chat.ComponentStyle;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.md_5.bungee.api.chat.TranslatableComponent;
-import nl.interestingcorner.coordinates.db.Coordinate;
-import nl.interestingcorner.coordinates.db.DatabaseManager;
-import nl.interestingcorner.coordinates.db.MinecraftColor;
-
-public class AddCoordinateCommandHandler implements CoordinatesCommandHandler {
-
- /**
- * Minimum arguments needed for adding a command: name, description, color
- */
- private final int MIN_ARGS = 4;
-
- private CommandSender sender;
-
- @Override
- public boolean handleCommand(CommandSender sender, String[] args) {
- if (args.length < MIN_ARGS) {
- return false;
- }
-
- this.sender = sender;
-
- List argsWithoutFirstCommand = removeFirstArg(args);
- if (argsWithoutFirstCommand.isEmpty()) {
- return false;
- }
-
- List parsedArgs = parseArgs(argsWithoutFirstCommand.toArray(String[]::new));
- if (parsedArgs.isEmpty()) {
- return false;
- }
-
- sender.sendMessage("Args after parsing:");
- sender.sendMessage("0:" + parsedArgs.get(0));
- sender.sendMessage("1:" + parsedArgs.get(1));
- sender.sendMessage("2:" + parsedArgs.get(2));
-
- String name = parsedArgs.get(0);
- String description = parsedArgs.get(1);
- String color = parsedArgs.get(2);
-
- if (!MinecraftColor.isValidColor(color)) {
- sendInvalidColorMessage(color);
- return false;
- }
-
- if (sender instanceof Player player) {
- Location playerLocation = player.getLocation();
- if (playerLocation == null) {
- return false;
- }
-
- World playerWorld = playerLocation.getWorld();
- if (playerWorld == null) {
- return false;
- }
-
- //TODO check if item doesnt already exist, coordinate with same values, create isEquals method for coordinate
- return DatabaseManager.INSTANCE
- .addCoordinate(name, // name
- description, // description
- new Coordinate.Position(playerLocation.getBlockX(), playerLocation.getBlockY(),
- playerLocation.getBlockZ()), // position
- playerWorld.getEnvironment().equals(World.Environment.NETHER), // nether
- playerWorld.getName(), // world
- MinecraftColor.fromString(color) // color
- );
- }
-
- return true;
- }
-
- private List removeFirstArg(String[] args) {
- List onlyArgs = new ArrayList<>();
-
- sender.sendMessage("removeFirstArg: size of args is " + String.valueOf(args.length));
- for (int i = 1; i < args.length; i++) {
- onlyArgs.add(args[i]);
- }
-
- sender.sendMessage("removeFirstArg: size of onlyArgs is " + String.valueOf(onlyArgs.size()));
- return onlyArgs;
- }
-
- private List parseArgs(String[] args) {
- List res = new ArrayList<>();
- StringBuilder currentArg = new StringBuilder();
- boolean inQuotes = false;
-
- for (String arg : args) {
- if (inQuotes) {
- if (arg.endsWith("\"")) {
- // end of quoted entry
- // add final arg to result
- String replaced = arg.replace("\"", "");
- currentArg.append(" ").append(replaced);
- res.add(currentArg.toString());
-
- // clear current arg
- currentArg.setLength(0);
- inQuotes = false;
- } else {
- currentArg.append(" ").append(arg);
- }
- } else {
- if (arg.startsWith("\"")) {
- String replaced = arg.replace("\"", "");
-
- if (arg.endsWith("\"")) {
- // if the current arg starts and ends with a ", just add the arg to the result
- res.add(replaced);
- } else {
- // if the current arg doesn't end with a ", it is quoted and we need to handle
- // the remainder
- inQuotes = true;
- currentArg.append(replaced);
- }
- } else {
- res.add(arg);
- }
- }
- }
-
- return res;
- }
-
- private void sendInvalidColorMessage(String color)
- {
- TextComponent finalMessage = new TextComponent();
- TextComponent colorMessage = new TextComponent("Color ");
- colorMessage.setColor(ChatColor.RED);
- finalMessage.addExtra(colorMessage);
-
- TextComponent enteredColor = new TextComponent(color);
- enteredColor.setColor(ChatColor.AQUA);
- finalMessage.addExtra(enteredColor);
-
- TextComponent endOfMessage = new TextComponent(" is not a valid color! Please use a regular minecraft color");
- endOfMessage.setColor(ChatColor.RED);
- finalMessage.addExtra(endOfMessage);
- sender.spigot().sendMessage(finalMessage);
- }
-
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/CoordinatesCommand.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/CoordinatesCommand.java
deleted file mode 100644
index dd17308..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/CoordinatesCommand.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package nl.interestingcorner.coordinates.commands;
-
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-
-public class CoordinatesCommand implements CommandExecutor{
-
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- StringBuilder sb = new StringBuilder("Got command " + command.getName() + " label " + label + " and args ");
- for (String string : args) {
- sb.append(" ");
- sb.append(string);
- sb.append(" ");
- }
-
- sender.sendMessage("Args length: " + String.valueOf(args.length));
- sender.sendMessage(sb.toString());
-
- // strategy design pattern
- return switch (args[0]) {
- case "get" -> new GetCoordinatesCommandHandler().handleCommand(sender, args);
- case "add" -> new AddCoordinateCommandHandler().handleCommand(sender, args);
- default -> false;
- };
- }
-
-
-}
\ No newline at end of file
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/CoordinatesCommandHandler.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/CoordinatesCommandHandler.java
deleted file mode 100644
index 8e21f1d..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/CoordinatesCommandHandler.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package nl.interestingcorner.coordinates.commands;
-
-import org.bukkit.command.CommandSender;
-
-public interface CoordinatesCommandHandler {
- boolean handleCommand(CommandSender sender, String[] args);
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java
deleted file mode 100644
index 607cab2..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/commands/GetCoordinatesCommandHandler.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package nl.interestingcorner.coordinates.commands;
-
-import java.util.List;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import nl.interestingcorner.coordinates.db.Coordinate;
-import nl.interestingcorner.coordinates.db.DatabaseManager;
-import nl.interestingcorner.coordinates.gui.CoordinatesGUI;
-
-public class GetCoordinatesCommandHandler implements CoordinatesCommandHandler {
-
- @Override
- public boolean handleCommand(CommandSender sender, String[] args) {
- if (sender instanceof Player player) {
- List coords;
- if (args.length < 2) {
- coords = DatabaseManager.INSTANCE.getAllCoordinates();
- } else if (args[1].equalsIgnoreCase("world")) {
- String world = player.getWorld().getName();
- coords = DatabaseManager.INSTANCE.getAllCoordinates(world);
- } else {
- sender.sendMessage("Invalid argument: " + args[1]);
- return false;
- }
-
- if (coords.isEmpty()) {
- player.sendMessage("No coordinates found! Add some with the §3/ic-coords §5add §fcommand.");
- return true;
- }
-
- StringBuilder res = new StringBuilder("Coordinates: ");
-
- for (Coordinate coordinate : coords) {
- res.append(coordinate.toString());
- }
-
- player.sendMessage(res.toString());
-
- CoordinatesGUI.open(player, coords);
- }
- return true;
- }
-
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/Coordinate.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/Coordinate.java
deleted file mode 100644
index 5695863..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/Coordinate.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package nl.interestingcorner.db;
-
-/**
- * +-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
- * | Field | Type | Null | Key | Default | Extra |
- * +-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
- * | id | int | NO | PRI | NULL | auto_increment |
- * | name | varchar(255) | NO | | NULL | |
- * | x | int | NO | | NULL | |
- * | y | int | NO | | NULL | |
- * | z | int | NO | | NULL | |
- * | description | varchar(255) | NO | | NULL | |
- * | color |
- * enum('dark_red','red','black','blue','aqua','dark_aqua','green','gold','dark_purple','light_purple','yellow','dark_green','gray','dark_gray','white','dark_blue')
- * | YES | | white | |
- * | nether | tinyint(1) | YES | | 0 | |
- * +-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
- */
-
-
-/**
- * Class to represent a coordinate to teleport to
- */
-public class Coordinate {
- /**
- * auto-generated ID
- */
- public int id;
-
- /**
- * name of the coordinate
- */
- public String name;
-
- /**
- * description of the coordinate
- */
- public String description;
-
- /**
- * position in x,y,z
- */
- public Position position;
-
- /**
- * If the coordinate is in the nether
- */
- public boolean nether;
-
- /**
- * The color to display the coordinate name in
- */
- public MinecraftColor color;
-
- /**
- * the world for this coordinate. This corresponds to the name of the world in
- * Multiverse
- */
- public String world;
-
- public Coordinate(int id, String name, String description, Position position, boolean nether, String world) {
- this.id = id;
- this.name = name;
- this.description = description;
- this.position = position;
- this.nether = nether;
- this.world = world;
- this.color = MinecraftColor.WHITE;
- }
-
- public Coordinate(int id, String name, String description, Position position, boolean nether, String world,
- MinecraftColor color) {
- this(id, name, description, position, nether, world);
- this.color = color;
- }
-
- public record Position(int x, int y, int z) {
- }
-
- public static String createTableStatement = """
- CREATE TABLE IF NOT EXISTS coordinates (
- id INTEGER PRIMARY KEY,
- name VARCHAR(255) NOT NULL,
- description VARCHAR(255),
- x INT NOT NULL,
- y INT NOT NULL,
- z INT NOT NULL,
- nether BOOLEAN NOT NULL DEFAULT FALSE,
- color VARCHAR(255),
- world VARCHAR(255) DEFAULT "white"
- );
- """;
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder("{ ");
- sb.append("id: ").append(id)
- .append(", name: '").append(name).append('\'')
- .append(", description: '").append(description).append('\'')
- .append(", position: { x: ").append(position.x())
- .append(", y: ").append(position.y())
- .append(", z: ").append(position.z()).append(" }")
- .append(", nether: ").append(nether)
- .append(", color: ").append(color != null ? color.toString() : "null")
- .append(", world: '").append(world).append('\'')
- .append(" }");
- return sb.toString();
- }
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/DatabaseManager.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/DatabaseManager.java
deleted file mode 100644
index 53ebf1a..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/DatabaseManager.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package nl.interestingcorner.db;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.bukkit.plugin.java.JavaPlugin;
-
-public enum DatabaseManager {
-
- INSTANCE;
-
- private Connection connection;
- private JavaPlugin app;
-
- /**
- * Initializes the database. Creates the file and sets up the db structure.
- *
- * @param app the app to use for logging
- * @return true if the database was initialized successfully. False if not.
- */
- public boolean initialize(JavaPlugin app) {
- this.app = app;
-
- if (!setupDatabase()) {
- return false;
- }
-
- if (!initializeTables()) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Closes the connectino to the database
- *
- * @return true if the connection closed succesfully, false if not.
- */
- public boolean close() {
- try {
- if (this.connection != null && !this.connection.isClosed()) {
- this.connection.close();
- }
- } catch (SQLException ex) {
- this.app.getLogger().log(Level.SEVERE, "Error while closing the databse connection: {0}", ex.getMessage());
- return false;
- }
-
- return true;
- }
-
- /**
- * Gets all coordinates from the database
- *
- * @return a list with all coordinates from the database. Empty if an error
- * occurred.
- */
- public List getAllCoordinates() {
- List result = new ArrayList<>();
- try {
- PreparedStatement getAllCoordinatesStatement = this.connection
- .prepareStatement("SELECT * FROM coordinates");
-
- result = convertResultsToCoordinates(getAllCoordinatesStatement.executeQuery());
-
- } catch (SQLException e) {
- this.app.getLogger().log(Level.SEVERE, "Could not get coordinates! {0}", e.getMessage());
- }
- return result;
- }
-
- public List getAllCoordinates(String world) {
- List result = new ArrayList<>();
- try {
- PreparedStatement getAllCoordinatesStatement = this.connection
- .prepareStatement("SELECT * FROM coordinates WHERE world = ?");
- getAllCoordinatesStatement.setString(1, world);
-
- result = convertResultsToCoordinates(getAllCoordinatesStatement.executeQuery());
-
- } catch (SQLException e) {
- this.app.getLogger().log(Level.SEVERE, "Could not get coordinates for world {0}! {1}",
- new Object[] { world, e.getMessage() });
- }
- return result;
- }
-
- public List convertResultsToCoordinates(ResultSet results) throws SQLException {
- List coordinates = new ArrayList<>();
- while (results.next()) {
-
- MinecraftColor color = MinecraftColor.fromString(results.getString("color"));
- if (color == null) {
- color = MinecraftColor.WHITE;
- }
-
- Coordinate c = new Coordinate(
- results.getInt("id"),
- results.getString("name"),
- results.getString("description"),
- new Coordinate.Position(
- results.getInt("x"),
- results.getInt("y"),
- results.getInt("z")),
- results.getBoolean("nether"),
- results.getString("world"),
- color);
-
- coordinates.add(c);
- }
-
- return coordinates;
- }
-
- /**
- * Adds a new coordinate to the database with the given parameters.
- *
- * @param name the name of the coordinate
- * @param description a short description of the coordinate
- * @param position the position of the coordinate where the player will
- * spwan when they teleport to the coordinate
- * @param nether if the coordinate is in the nether
- * @param world the Multiverse world the coordinate belongs to
- * @param color the color to display for the coordinate name
- * @return true if the command was added successfully, false otherwise
- */
- public boolean addCoordinate(String name, String description, Coordinate.Position position, boolean nether,
- String world, MinecraftColor color) {
- String sql = "INSERT INTO coordinates (name, description, x, y, z, nether, color, world) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
- try {
- PreparedStatement addCoordinateStatement = this.connection.prepareStatement(sql);
- addCoordinateStatement.setString(1, name);
- addCoordinateStatement.setString(2, description);
- addCoordinateStatement.setInt(3, position.x());
- addCoordinateStatement.setInt(4, position.y());
- addCoordinateStatement.setInt(5, position.z());
- addCoordinateStatement.setBoolean(6, nether);
- addCoordinateStatement.setString(7, color.name());
- addCoordinateStatement.setString(8, world);
-
- addCoordinateStatement.executeUpdate();
- } catch (SQLException e) {
- this.app.getLogger().log(Level.SEVERE, "Error adding coordinate to database: {0}", e.getMessage());
- return false;
- }
- return true;
- }
-
- /**
- * Sets up the connectino to the database. Creates a new .db file if it
- * doesn't exist yet.
- *
- * @return true if the connection was set up successfully. False if not.
- */
- private boolean setupDatabase() {
- if (!this.app.getDataFolder().exists()) {
- if (!this.app.getDataFolder().mkdirs()) {
- app.getLogger().severe("Could not create data folder");
- return false;
- }
- }
-
- File dbFile = new File(app.getDataFolder(), "database.db");
- String url = "jdbc:sqlite:" + dbFile.getAbsolutePath();
-
- try {
- this.connection = DriverManager.getConnection(url);
- } catch (SQLException e) {
- this.app.getLogger().log(Level.SEVERE, "Could not connect to database file {0}: {1}",
- new Object[] { dbFile, e.getMessage() });
- }
-
- this.app.getLogger().log(Level.INFO, "Connected to SQLite database: {0}", dbFile.getName());
-
- return true;
- }
-
- /**
- * initializes the tables for the database.
- *
- * @return true if the tables were initialized successfully. False if not.
- */
- private boolean initializeTables() {
- try {
- PreparedStatement createTableStatement = this.connection.prepareStatement(Coordinate.createTableStatement);
- createTableStatement.executeUpdate();
- this.app.getLogger().fine("Executed create table statement");
-
- PreparedStatement getTablesStatement = this.connection.prepareStatement(
- "SELECT name FROM sqlite_master WHERE type='table'");
- ResultSet results = getTablesStatement.executeQuery();
-
- while (results.next()) {
- this.app.getLogger().log(Level.INFO, "Found table: {0}", results.getString("name"));
- }
- } catch (SQLException e) {
- this.app.getLogger().log(Level.SEVERE, "Could not create table: {0}", e.getMessage());
- return false;
- }
- return true;
- }
-
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/MinecraftColor.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/MinecraftColor.java
deleted file mode 100644
index ec427fa..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/db/MinecraftColor.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package nl.interestingcorner.db;
-
-import java.util.HashMap;
-
-import org.bukkit.Material;
-
-public enum MinecraftColor {
- DARK_RED("dark_red"),
- RED("red"),
- BLACK("black"),
- BLUE("blue"),
- AQUA("aqua"),
- DARK_AQUA("dark_aqua"),
- GREEN("green"),
- GOLD("gold"),
- DARK_PURPLE("dark_purple"),
- LIGHT_PURPLE("light_purple"),
- YELLOW("yellow"),
- DARK_GREEN("dark_green"),
- GRAY("gray"),
- DARK_GRAY("dark_gray"),
- WHITE("white"),
- DARK_BLUE("dark_blue");
-
- private final String name;
-
- private static final HashMap materialsMap = new HashMap<>() {{
- put(DARK_RED, Material.RED_WOOL);
- put(RED, Material.RED_WOOL);
- put(BLACK, Material.BLACK_WOOL);
- put(BLUE, Material.BLUE_WOOL);
- put(AQUA, Material.LIGHT_BLUE_WOOL);
- put(DARK_AQUA, Material.CYAN_WOOL);
- put(GREEN, Material.GREEN_WOOL);
- put(GOLD, Material.YELLOW_WOOL);
- put(DARK_PURPLE, Material.PURPLE_WOOL);
- put(LIGHT_PURPLE, Material.MAGENTA_WOOL);
- put(YELLOW, Material.YELLOW_WOOL);
- put(DARK_GREEN, Material.LIME_WOOL);
- put(GRAY, Material.LIGHT_GRAY_WOOL);
- put(DARK_GRAY, Material.GRAY_WOOL);
- put(WHITE, Material.WHITE_WOOL);
- put(DARK_BLUE, Material.BLUE_WOOL);
- }};
-
- private static final HashMap colorCodesMap = new HashMap<>() {{
- put(DARK_RED, "§4");
- put(RED, "§c");
- put(BLACK, "§0");
- put(BLUE, "§9");
- put(AQUA, "§b");
- put(DARK_AQUA, "§3");
- put(GREEN, "§a");
- put(GOLD, "§6");
- put(DARK_PURPLE, "§5");
- put(LIGHT_PURPLE, "§d");
- put(YELLOW, "§e");
- put(DARK_GREEN, "§2");
- put(GRAY, "§7");
- put(DARK_GRAY, "§8");
- put(WHITE, "§f");
- put(DARK_BLUE, "§1");
- }};
-
- MinecraftColor(String name) {
- this.name = name;
- }
-
- public boolean equalsName(String otherName) {
- return name.equalsIgnoreCase(otherName);
- }
-
- @Override
- public String toString() {
- return this.name;
- }
-
- /**
- * Finds a MinecraftColor from a string value
- *
- * @param name the name to find the MinecraftColor from
- * @return the MinecraftColor if found, null if not found.
- */
- public static MinecraftColor fromString(String name) {
- if (name == null) {
- return WHITE;
- }
-
- for (MinecraftColor color : MinecraftColor.values()) {
- if (color.equalsName(name)) {
- return color;
- }
- }
- return WHITE;
- }
-
- /**
- * Checks if a given name is a valid color value.
- * @param name the name to check
- * @return true if it's a valid color value, false otherwise
- */
- public static boolean isValidColor(String name)
- {
- if (name == null)
- {
- return false;
- }
-
- for (MinecraftColor color : values()) {
- if (color.equalsName(name)) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Converts this MinecraftColor to a corresponding Material.
- *
- * @return the Material corresponding to this MinecraftColor
- */
- public Material toMaterial() {
- return materialsMap.get(this);
- }
-
- /**
- * Converts this MinecraftColor to a corresponding Minecraft color code.
- * @return
- */
- public String toColorCode() {
- return colorCodesMap.get(this);
- }
-}
-
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/gui/CoordinatesGUI.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/gui/CoordinatesGUI.java
deleted file mode 100644
index 626afc5..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/gui/CoordinatesGUI.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package nl.interestingcorner.coordinates.gui;
-
-import java.util.List;
-
-import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.Inventory;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-
-import nl.interestingcorner.coordinates.db.Coordinate;
-import nl.interestingcorner.coordinates.db.MinecraftColor;
-
-public class CoordinatesGUI {
- public static void open(Player player, List coordinates) {
-
- int coordinatesAmount = coordinates.size();
- int size;
- if (coordinatesAmount <= 9) {
- size = 9;
- } else {
- // TODO handle if size is more than 54 - 9, add pagination
- /**
- * if more than 45, add pages. Split by 45 items per page.
- * use bottom row leftmost and rightmost item for navigation.
- * use paper item for page number display in middle.
- * use lore of navigation items clicked to handle showing next/previous page.
- * use player.getOpeninventory() to get current inventory and update or close it.
- */
-
- // round up to nearest multiple of 9
- size = ((coordinatesAmount / 9) + 1) * 9;
- player.sendMessage("Size: " + size);
- }
-
- // Create an inventory with 9 slots and a title
- Inventory gui = Bukkit.createInventory(null, size, "Coordinates Menu");
-
- for (Coordinate coordinate : coordinates) {
- ItemStack item = createCoordinateItem(coordinate);
- gui.addItem(item);
- }
-
- // Open the GUI for the player
- player.openInventory(gui);
- }
-
- private static ItemStack createCoordinateItem(Coordinate coordinate) {
- ItemStack itemStack = new ItemStack(coordinate.color.toMaterial());
- ItemMeta meta = itemStack.getItemMeta();
- if (meta == null) {
- return itemStack;
- }
- meta.setDisplayName(coordinate.color.toColorCode() + coordinate.name);
- meta.setLore(List.of(
- MinecraftColor.WHITE.toColorCode() + coordinate.description,
- coordinate.nether ? MinecraftColor.RED.toColorCode() + "Nether Coordinate" : "Overworld Coordinate",
- "X: " + coordinate.position.x(),
- "Y: " + coordinate.position.y(),
- "Z: " + coordinate.position.z(),
- "World: " + coordinate.world
- ));
- itemStack.setItemMeta(meta);
-
- return itemStack;
- }
-}
diff --git a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/gui/CoordinatesGUIListener.java b/ic_plugin/src/main/java/nl/interestingcorner/coordinates/gui/CoordinatesGUIListener.java
deleted file mode 100644
index ef040b6..0000000
--- a/ic_plugin/src/main/java/nl/interestingcorner/coordinates/gui/CoordinatesGUIListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package nl.interestingcorner.coordinates.gui;
-
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.inventory.InventoryClickEvent;
-import org.bukkit.entity.Player;
-import org.bukkit.ChatColor;
-
-public class CoordinatesGUIListener implements Listener{
-
- @EventHandler
- public void onInventoryClick(InventoryClickEvent event) {
-
- // Check if this is our custom GUI
- if (event.getView().getTitle().equals("Coordinates Menu")) {
- event.setCancelled(true); // Prevent taking the item
-
- if (event.getCurrentItem() == null) return;
-
- Player player = (Player) event.getWhoClicked();
-
- switch (event.getSlot()) {
- case 0 -> {
- player.sendMessage(ChatColor.GREEN + "You clicked Add Coordinate!");
- player.closeInventory();
- // Here you could open another GUI or run a command
- }
- // Add other cases for other slots if needed
- }
- }
- }
-
-}
diff --git a/ic_plugin/src/main/resources/plugin.yml b/ic_plugin/src/main/resources/plugin.yml
deleted file mode 100644
index a6cb5f3..0000000
--- a/ic_plugin/src/main/resources/plugin.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-main: nl.interestingcorner.coordinates.App
-name: IC-coords
-version: 0.1
-api-version: 1.21
-
-commands:
- ic-coords:
- description: Main command for the coordinates
- usage: /ic-coords get | add
\ No newline at end of file
diff --git a/ic_plugin/src/test/java/nl/interestingcorner/AppTest.java b/ic_plugin/src/test/java/nl/interestingcorner/AppTest.java
deleted file mode 100644
index 6d3028e..0000000
--- a/ic_plugin/src/test/java/nl/interestingcorner/AppTest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package nl.interestingcorner;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest {
-
- /**
- * Rigorous Test :-)
- */
- @Test
- public void shouldAnswerWithTrue() {
- assertTrue(true);
- }
-}