diff --git a/pom.xml b/pom.xml index 657d0bb..e2d61b0 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ Raxen - 1.16 + 1.17 UTF-8 @@ -30,8 +30,8 @@ maven-compiler-plugin 3.8.1 - 16 - 16 + 17 + 17 @@ -94,7 +94,7 @@ io.papermc.paper paper-api - 1.17.1-R0.1-SNAPSHOT + 1.18.1-R0.1-SNAPSHOT provided @@ -119,13 +119,13 @@ de.tr7zw nbt-data-api - 2.8.0 + 2.9.0-SNAPSHOT compile de.tr7zw nbt-injector - 2.8.0 + 2.9.0-SNAPSHOT compile diff --git a/src/main/java/gq/unurled/raxen/Raxen.java b/src/main/java/gq/unurled/raxen/Raxen.java index 261cedd..0659416 100644 --- a/src/main/java/gq/unurled/raxen/Raxen.java +++ b/src/main/java/gq/unurled/raxen/Raxen.java @@ -21,7 +21,7 @@ public final class Raxen extends JavaPlugin { private static final String prefix = ChatColor.AQUA + "Rx" + ChatColor.LIGHT_PURPLE + "> "; @Getter - private static final String version = "0.0.1"; + private static final String version = "0.0.2"; private final PluginManager pm = getServer().getPluginManager(); @Getter @@ -117,4 +117,8 @@ public final class Raxen extends JavaPlugin { public static PlayerConfig getPlayerConfig() { return playerConfig; } + + public static Config getConf() { + return config; + } } diff --git a/src/main/java/gq/unurled/raxen/commands/RaxenCommand.java b/src/main/java/gq/unurled/raxen/commands/RaxenCommand.java new file mode 100644 index 0000000..cb3b668 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/commands/RaxenCommand.java @@ -0,0 +1,79 @@ +package gq.unurled.raxen.commands; + +import gq.unurled.raxen.Raxen; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.event.ClickEvent; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +import static gq.unurled.raxen.utils.Utils.color; +import static gq.unurled.raxen.utils.Utils.msgPlayer; + +public class RaxenCommand implements TabExecutor { + + private Raxen main; + + public RaxenCommand(Raxen main) { + this.main = main; + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String msg, @NotNull String[] args) { + if(sender instanceof Player) { + Player player = (Player) sender; + if(!(player.hasPermission("raxen."))) { + msgPlayer(player, Raxen.getPrefix() + color("&cYou can't execute this command. Insufficient permission.")); + } + switch (args.length) { + case 0: + msgPl(player, 0); + case 1: + switch (args[0]) { + case "mongodb": + case "mongo": + case "MONGODB": + case "MONGO": + //print info about connection + case "v": + case "version": + case "ver": + //print case 0? + case "hemlp": + case "?": + case "h": + //print plugin help + } + } + } + return false; + } + + public void msgPl(Player player, Integer in) { + switch(in) { + case 0: + msgPlayer(player, Raxen.getPrefix() + color("&6Printing About Raxen..."), + color("&6---------------------------------------------"), + color("&3 Raxen "), + color("&3 - Version: " + Raxen.getVersion()), + color("&3 - Author: &l&cU&6n&eu&2r&al&be&3d&r"), + color("&3 - Website: https://unurled.gq")); + TextComponent txt = Component.text(color("&3 - Website: https://unurled.gq")); + txt.clickEvent(ClickEvent.openUrl("https://unurled.gq")); + player.sendMessage(txt); + msgPlayer(player, "", color("&6---------------------------------------------")); + } + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) { + return null; + } +} diff --git a/src/main/java/gq/unurled/raxen/config/PlayerConfig.java b/src/main/java/gq/unurled/raxen/config/PlayerConfig.java index 3dbf118..e1093c8 100644 --- a/src/main/java/gq/unurled/raxen/config/PlayerConfig.java +++ b/src/main/java/gq/unurled/raxen/config/PlayerConfig.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.List; import static gq.unurled.raxen.utils.Utils.log; +import static gq.unurled.raxen.utils.Utils.warn; public class PlayerConfig { @@ -40,6 +41,7 @@ public class PlayerConfig { this.main = main; this.sto = main.getStorageManager(); this.mongoDB = sto.getMongo(); + this.mongoDB.connect(); this.mongoCollection = mongoDB.getMongoCollection(); this.profileManager = main.getProfileManager(); } @@ -183,14 +185,14 @@ public class PlayerConfig { } public void loadPlayerConfig(Player player) { - switch(sto.getCurrently()) { - case "MONGODB": - loadUsingMongoDB(player); - case "MYSQL": - case "YML": - loadUsingYml(player); + if (StorageManager.getCurrently().equals("MONGODB")) { + loadUsingMongoDB(player); + warn("'" + StorageManager.getCurrently()+ "'"); + } + else { + warn("'" + StorageManager.getCurrently()+ "'"); + loadUsingYml(player); } - log("Player: " + player.getName() + " data successfully loaded!"); } diff --git a/src/main/java/gq/unurled/raxen/manager/CommandManager.java b/src/main/java/gq/unurled/raxen/manager/CommandManager.java index c83d315..6a0d832 100644 --- a/src/main/java/gq/unurled/raxen/manager/CommandManager.java +++ b/src/main/java/gq/unurled/raxen/manager/CommandManager.java @@ -1,6 +1,7 @@ package gq.unurled.raxen.manager; import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.commands.RaxenCommand; import gq.unurled.raxen.commands.admin.NbtCommand; import gq.unurled.raxen.commands.admin.ReloadCommand; import gq.unurled.raxen.commands.admin.TestGuiCommand; @@ -37,6 +38,10 @@ public class CommandManager { SkillsCommand skillsCommand = new SkillsCommand(main); main.getCommand("skills").setTabCompleter(skillsCommand); main.getCommand("skills").setExecutor(skillsCommand); + + RaxenCommand raxenCommand = new RaxenCommand(main); + main.getCommand("raxen").setTabCompleter(raxenCommand); + main.getCommand("raxen").setExecutor(raxenCommand); } } diff --git a/src/main/java/gq/unurled/raxen/manager/StorageManager.java b/src/main/java/gq/unurled/raxen/manager/StorageManager.java index 6f31789..a7896e1 100644 --- a/src/main/java/gq/unurled/raxen/manager/StorageManager.java +++ b/src/main/java/gq/unurled/raxen/manager/StorageManager.java @@ -2,6 +2,7 @@ package gq.unurled.raxen.manager; import gq.unurled.raxen.Raxen; import gq.unurled.raxen.utils.MongoDB; +import gq.unurled.raxen.utils.Mysql; import lombok.Getter; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; @@ -12,8 +13,7 @@ import java.io.File; import java.io.IOException; import java.util.stream.IntStream; -import static gq.unurled.raxen.utils.Utils.error; -import static gq.unurled.raxen.utils.Utils.log; +import static gq.unurled.raxen.utils.Utils.*; public class StorageManager { @@ -24,37 +24,49 @@ public class StorageManager { private static MongoDB mongo; @Getter private static String currently; + @Getter + private static Mysql mysql; public StorageManager(Raxen main) { this.main = main.getPlugin(); this.config = main.getConfig(); + this.mongo = new MongoDB(); + this.connect(); } public static void connect() { String s = (String) config.get("storage"); - switch(s) { - case "MONGODB": - mongo.connect(); - currently = s; - case "MYSQL": - error("Currently not implemented, switching to YML"); - currently = "YML"; - case "YML": - currently = s; + log(s); + if(s.equalsIgnoreCase("MONGODB")) { + mongo.connect(); + currently = "MONGODB"; + warn("'" + s + "'"); + } + + if(s.equalsIgnoreCase("MYSQL")) { + error("Currently not implemented, switching to YML"); + currently = "YML"; + warn("'" + s + "'"); + } + else { + currently = "YML"; + warn("'" + s + "'"); } } - public static FileConfiguration createYml(Player player) { - String name = player.getName(); + public static void disconnect() { + mysql.disconnect(); + } + public static FileConfiguration createYml(Player player) { File customFile; FileConfiguration customConfig; - log(main.getDataFolder() + "/" + player.getUniqueId() + "custom.yml"); - customFile = new File(main.getDataFolder() + "/" + player.getUniqueId(), "playerInfo.yml"); + log(main.getDataFolder() + "/playerInfo/" + player.getUniqueId() + "/playerInfo.yml"); + customFile = new File(main.getDataFolder() + "/playerInfo/" + player.getUniqueId(), "/playerInfo.yml"); if (!customFile.exists()) { customFile.getParentFile().mkdirs(); - main.saveResource("playerInfo.yml", false); + main.saveResource(main.getDataFolder() + "/playerInfo/" + player.getUniqueId() + "/playerInfo.yml", false); } customConfig = new YamlConfiguration(); diff --git a/src/main/java/gq/unurled/raxen/utils/MongoDB.java b/src/main/java/gq/unurled/raxen/utils/MongoDB.java index 40c78dd..cafda42 100644 --- a/src/main/java/gq/unurled/raxen/utils/MongoDB.java +++ b/src/main/java/gq/unurled/raxen/utils/MongoDB.java @@ -18,14 +18,10 @@ public class MongoDB { @Getter private MongoCollection mongoCollection; - public MongoDB() { - this.connect(); - } - public void connect() { ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017"); mongoClient = MongoClients.create(connectionString); - mongoDatabase = mongoClient.getDatabase("Elixium"); + mongoDatabase = mongoClient.getDatabase("Raxen"); mongoCollection = mongoDatabase.getCollection("player"); Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "MongoDB connected!"); diff --git a/src/main/java/gq/unurled/raxen/utils/Mysql.java b/src/main/java/gq/unurled/raxen/utils/Mysql.java new file mode 100644 index 0000000..2fe9303 --- /dev/null +++ b/src/main/java/gq/unurled/raxen/utils/Mysql.java @@ -0,0 +1,46 @@ +package gq.unurled.raxen.utils; + +import gq.unurled.raxen.Raxen; +import gq.unurled.raxen.config.Config; +import gq.unurled.raxen.manager.StorageManager; +import org.bukkit.entity.Player; + +import java.sql.*; + +public class Mysql { + + private static String username; + private static String password; + private static String url; + + private Raxen main; + private StorageManager sto; + private Config config; + + public Mysql(Raxen main) { + this.main = main; + this.sto = main.getStorageManager(); + this.config = main.getConf(); + this.username = (String) config.getConfig().get("username"); + this.url = (String) config.getConfig().get("url"); + this.password = (String) config.getConfig().get("password"); + + } + + public static void init() { + + } + + public static String get(Player player, String str) throws SQLException { + return "False"; + } + + public static void connect() { + + } + + public static void disconnect() { + + } + +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 6c9ed9e..b6dd464 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -2,4 +2,8 @@ version: "${project.version}" motd: "YAY, Super server!" motd-reload: "Server reloading!" -storage: "MONGODB" #switch between "MONGODB", "MYSQL"(not implemented), "YML"(currzently making it) \ No newline at end of file +storage: "MONGODB" #switch between "MONGODB", "MYSQL"(not implemented), "YML"(currzently making it) +#if MYSQL +username: "Your-username-here" +password: "Your-password-here" +url: "url-to-the-server/db_Name" \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 3d450cd..26be3b5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,6 +3,7 @@ version: '${project.version}' main: gq.unurled.raxen.Raxen api-version: 1.17 depend: [ProtocolLib] +softdepend: [AureliumSkills, LuckPerms] commands: reloadplugin: @@ -20,6 +21,8 @@ commands: description: acces player storage nbt: description: nbt command + raxen: + description: raxen main command permissions: raxen.reload.cmd: @@ -27,4 +30,7 @@ permissions: raxen.test.gui.cmd: description: testgui command permission raxen.nbt.cmd: - description: nbt command permission \ No newline at end of file + description: nbt command permission + permission: + raxen.raxen.cmd: + description: raxen command permssion \ No newline at end of file