diff --git a/pom.xml b/pom.xml index 772b17d..7a3a1b6 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,7 @@ + org.apache.maven.plugins maven-compiler-plugin 3.8.1 @@ -68,7 +69,7 @@ com.arangodb arangodb-java-driver - 7.5.1 + 6.13.0 org.spigotmc diff --git a/src/main/java/xyz/mineconomia/mineconomiacore/MineconomiaCore.java b/src/main/java/xyz/mineconomia/mineconomiacore/MineconomiaCore.java index 94ccab7..f5f67cd 100644 --- a/src/main/java/xyz/mineconomia/mineconomiacore/MineconomiaCore.java +++ b/src/main/java/xyz/mineconomia/mineconomiacore/MineconomiaCore.java @@ -1,24 +1,29 @@ package xyz.mineconomia.mineconomiacore; import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import xyz.mineconomia.mineconomiacore.CustomItems.ItemManager; import xyz.mineconomia.mineconomiacore.commands.BookCommand; import xyz.mineconomia.mineconomiacore.commands.funHarvestBall; import xyz.mineconomia.mineconomiacore.commands.mcore; import xyz.mineconomia.mineconomiacore.commands.tpw; +import xyz.mineconomia.mineconomiacore.events.playerAccount; import xyz.mineconomia.mineconomiacore.handlers.FHBHandler; +import javax.security.auth.login.Configuration; import java.util.Objects; import java.util.logging.Logger; public final class MineconomiaCore extends JavaPlugin { public static Logger logger = Bukkit.getLogger(); + @Override public void onEnable() { // Plugin startup logic - + saveDefaultConfig(); MineconomiaCore plugin= getPlugin(MineconomiaCore.class); Logger logger= plugin.getLogger(); logger.info(" "); @@ -33,7 +38,9 @@ public final class MineconomiaCore extends JavaPlugin { logger.info("╚═══════════════════════════════╝"); logger.info(""); Objects.requireNonNull(plugin.getCommand("mcore")).setExecutor(new mcore()); - getServer().getPluginManager().registerEvents(new FHBHandler(), this); + PluginManager pm = getServer().getPluginManager(); + pm.registerEvents(new FHBHandler(), this); + pm.registerEvents(new playerAccount(), this); //BookCommand Objects.requireNonNull(getCommand("pomoc")).setExecutor(new BookCommand()); @@ -47,5 +54,7 @@ public final class MineconomiaCore extends JavaPlugin { @Override public void onDisable() { // Plugin shutdown logic + saveConfig(); + } } diff --git a/src/main/java/xyz/mineconomia/mineconomiacore/database.java b/src/main/java/xyz/mineconomia/mineconomiacore/database.java new file mode 100644 index 0000000..71d4db5 --- /dev/null +++ b/src/main/java/xyz/mineconomia/mineconomiacore/database.java @@ -0,0 +1,16 @@ +package xyz.mineconomia.mineconomiacore; + +import com.arangodb.ArangoDB; +import com.arangodb.ArangoDatabase; +import com.arangodb.Protocol; +import org.bukkit.configuration.file.FileConfiguration; + +public interface database { + FileConfiguration config = MineconomiaCore.getPlugin(MineconomiaCore.class).getConfig(); + ArangoDB arangodb = new ArangoDB.Builder() + .host(config.getString("database.host"), config.getInt("database.port")) + .user(config.getString("database.user")) + .password(config.getString("database.password")) + .build(); + ArangoDatabase database = arangodb.db(config.getString("database.database")); +} diff --git a/src/main/java/xyz/mineconomia/mineconomiacore/events/playerAccount.java b/src/main/java/xyz/mineconomia/mineconomiacore/events/playerAccount.java new file mode 100644 index 0000000..819797f --- /dev/null +++ b/src/main/java/xyz/mineconomia/mineconomiacore/events/playerAccount.java @@ -0,0 +1,36 @@ +package xyz.mineconomia.mineconomiacore.events; + +import com.arangodb.ArangoCollection; +import com.arangodb.entity.BaseDocument; +import com.arangodb.model.DocumentCreateOptions; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import xyz.mineconomia.mineconomiacore.MineconomiaCore; + +import java.util.EventListener; +import java.util.Map; +import java.util.Objects; + +import static xyz.mineconomia.mineconomiacore.database.database; + +public class playerAccount implements Listener { + @EventHandler + public static void createAccout(PlayerJoinEvent event){ + Player player = event.getPlayer(); + String playerName = player.getDisplayName(); + ArangoCollection playersCollection = database.collection("players"); + + if (!playersCollection.documentExists(playerName)){ + BaseDocument playerDocument = new BaseDocument(playerName); + playerDocument.addAttribute("money", 0); + playerDocument.addAttribute("rank", "default"); + playersCollection.insertDocument(playerDocument); + }else { + BaseDocument playerDocument = playersCollection.getDocument(playerName, BaseDocument.class); + Map playerProperties = playerDocument.getProperties(); + MineconomiaCore.getPlugin(MineconomiaCore.class).getLogger().info(String.valueOf(playerProperties.get("money"))); + } + } +}