diff --git a/MMOCore (1).iml b/MMOCore (1).iml deleted file mode 100644 index 86300f98..00000000 --- a/MMOCore (1).iml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bungee-plugin/pom.xml b/bungee-plugin/pom.xml new file mode 100644 index 00000000..9cb7151a --- /dev/null +++ b/bungee-plugin/pom.xml @@ -0,0 +1,40 @@ + + + + MMOCore + net.Indyuce + ${revision} + + 4.0.0 + + bungee-plugin + + + 16 + 16 + + + + + + bungeecord-repo + https://oss.sonatype.org/content/repositories/snapshots + + + + + + + net.md-5 + bungeecord-api + 1.19-R0.1-SNAPSHOT + jar + provided + + + + + + \ No newline at end of file diff --git a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/Bungee.java b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/Bungee.java new file mode 100644 index 00000000..42e7daf2 --- /dev/null +++ b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/Bungee.java @@ -0,0 +1,50 @@ +package fr.phoenix.mmocore.bungee; + +import net.md_5.bungee.api.plugin.Plugin; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.logging.Level; + +public class Bungee extends Plugin { + public static Bungee plugin; + public CacheManager cacheManager = new CacheManager(); + + @Override + public void onEnable() { + //Register a new communication channel + getProxy().registerChannel("give_mmocore_player"); + getProxy().registerChannel("get_mmocore_player"); + getProxy().getPluginManager().registerListener(this, new MessageListener()); + + + try { + getProxy().getLogger().log(Level.WARNING,"enabling socket"); + ServerSocket serverSocket= new ServerSocket(25580); + Socket clientSocket=serverSocket.accept(); + getProxy().getLogger().log(Level.WARNING,"port: "+clientSocket.getPort()); + + BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + String line; + while((line=bufferedReader.readLine())!=null) { + getProxy().getLogger().log(Level.WARNING,line); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + + @Override + public void onDisable() { + + } + + @Override + public void onLoad() { + plugin = this; + } +} diff --git a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/CacheManager.java b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/CacheManager.java new file mode 100644 index 00000000..c2c5e5b2 --- /dev/null +++ b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/CacheManager.java @@ -0,0 +1,24 @@ +package fr.phoenix.mmocore.bungee; + +import java.util.HashMap; +import java.util.UUID; + +public class CacheManager { + private final HashMap cachedPlayers= new HashMap<>(); + + + public String getCachedPlayer(UUID uuid) { + return cachedPlayers.get(uuid); + } + public boolean hasCachedPlayer(UUID uuid) { + return cachedPlayers.containsKey(uuid); + } + + public void addCachedPlayer(UUID uuid,String playerData) { + cachedPlayers.put(uuid,playerData); + } + + + public void save() { + } +} diff --git a/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/MessageListener.java b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/MessageListener.java new file mode 100644 index 00000000..67ff585c --- /dev/null +++ b/bungee-plugin/src/main/java/fr/phoenix/mmocore/bungee/MessageListener.java @@ -0,0 +1,60 @@ +package fr.phoenix.mmocore.bungee; + +import net.md_5.bungee.api.connection.ProxiedPlayer; +import net.md_5.bungee.api.event.PluginMessageEvent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.event.EventHandler; + +import java.io.*; +import java.util.UUID; + +public class MessageListener implements Listener { + + /** + * Used to register in the cached Players the data that is sent + */ + @EventHandler + public void onPluginMessage(PluginMessageEvent e) throws IOException { + + //When a server gives the player data + if (e.getTag().equals("give_mmocore_player")) { + + byte[] data = e.getData(); + ByteArrayInputStream in = new ByteArrayInputStream(e.getData()); + DataInputStream inputStream = new DataInputStream(in); + + UUID uuid = UUID.fromString(inputStream.readUTF()); + String jsonMsg = inputStream.readUTF(); + + //We put this data into the CacheManager + Bungee.plugin.cacheManager.addCachedPlayer(uuid,jsonMsg); + } + + + //When a server asks for the player data + if (e.getTag().equals("get_mmocore_player")) { + byte[] data = e.getData(); + ByteArrayInputStream in = new ByteArrayInputStream(e.getData()); + DataInputStream inputStream = new DataInputStream(in); + UUID uuid = UUID.fromString(inputStream.readUTF()); + + + + String response=Bungee.plugin.cacheManager.hasCachedPlayer(uuid)? + Bungee.plugin.cacheManager.getCachedPlayer(uuid):"{}"; + //We format the data corresponding to the player + ByteArrayOutputStream out=new ByteArrayOutputStream(); + DataOutputStream outputStream= new DataOutputStream(out); + outputStream.writeChars(response); + + //We get the corresponding player + ProxiedPlayer proxiedPlayer= Bungee.plugin.getProxy().getPlayer(uuid); + //We send the answer + proxiedPlayer.getServer().getInfo().sendData("get_mmocore_player",out.toByteArray()); + + + } + + } +} + diff --git a/bungee-plugin/src/main/resources/bungee.yml b/bungee-plugin/src/main/resources/bungee.yml new file mode 100644 index 00000000..f7b9ea21 --- /dev/null +++ b/bungee-plugin/src/main/resources/bungee.yml @@ -0,0 +1,3 @@ +name: MMOCore +main: fr.phoenix.mmocore.bungee.Bungee +author: PhoenixDevelopment diff --git a/dist/pom.xml b/dist/pom.xml new file mode 100644 index 00000000..ffadb113 --- /dev/null +++ b/dist/pom.xml @@ -0,0 +1,98 @@ + + + + MMOCore + net.Indyuce + ${revision} + + 4.0.0 + + dist + + + 16 + 16 + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + MMOCore-${revision} + ../target + + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.2.2 + + true + + + + flatten + package + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + + + net.Indyuce + bungee-plugin + ${revision} + + + + net.Indyuce + spigot-plugin + ${revision} + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index de0373c3..00718dc4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,18 @@ 4.0.0 net.Indyuce MMOCore - 1.9.3 + pom + ${revision} + + bungee-plugin + spigot-plugin + dist + MMOCore Offer your players a brand new RPG experience!! + 1.9.3 false false UTF-8 @@ -16,255 +23,22 @@ - ${project.name}-${project.version} - - - true - ${basedir}/src/main/resources/ - - - - org.apache.maven.plugins - maven-jar-plugin - 2.3.1 - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - - 9 - 9 - UTF-8 - -proc:none - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - false - + maven-clean-plugin + 3.1.0 - package + auto-clean + initialize - shade + clean - - - - nexus - https://mvn.lumine.io/repository/maven-public/ - - - - phoenix - http://la-grange-evasion.pro.dns-orange.fr:8081/repository/maven-public/ - - - - jitpack.io - https://jitpack.io - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - sk89q-repo - https://maven.enginehub.org/repo/ - - - - papermc - https://papermc.io/repo/repository/maven-public/ - - - - - - - - - org.spigotmc - spigot-1.17.1 - dev - provided - - - - - org.jetbrains - annotations - 19.0.0 - provided - - - - io.papermc - paperlib - 1.0.5 - - - - org.projectlombok - lombok - 1.18.20 - provided - - - - - io.lumine - MythicLib-dist - 1.3.1 - provided - - - - io.lumine - Mythic-Dist - 5.0.1 - provided - - - - me.clip - PlaceholderAPI - 2.11.1 - provided - - - - com.github.MilkBowl - VaultAPI - 1.7 - provided - - - - com.sk89q.worldguard - worldguard-bukkit - 7.0.2-SNAPSHOT - provided - - - - net.citizensnpcs - Citizens - 2.0.30-b2571 - provided - - - - - de.simonsator - PartyAndFriends - 1.0.65 - provided - - - - com.alessiodp - Parties - 3.1.14 - provided - - - - com.gmail.nossr50 - mcMMO - 2.1.209 - provided - - - - de.erethon - DungeonsXL - 0.18-PRE-02 - provided - - - - org.denizen - Dungeons - 1.0 - provided - - - - - me.blackvein - Quests - 4.4.1-b340 - provided - - - fr.skytasul.quests - BeautyQuests - 0.19.5 - provided - - - com.guillaumevdn - QuestCreator - 6.39.0 - provided - - - com.guillaumevdn - GCore - 8.39.0 - provided - - - - - - com.massivecraft - Factions - 1.6.9.5-2.9.8-RC - provided - - - - me.ulrich - UltimateClans - 4.2.0 - provided - - - - me.glaremasters - Guilds - 3.5.6.0 - provided - - - - org.kingdoms.main - Kingdoms - 1.11.15.0.0.0.1.1 - provided - - - - - diff --git a/spigot-plugin/pom.xml b/spigot-plugin/pom.xml new file mode 100644 index 00000000..1798aa26 --- /dev/null +++ b/spigot-plugin/pom.xml @@ -0,0 +1,255 @@ + + + + MMOCore + net.Indyuce + ${revision} + + 4.0.0 + + spigot-plugin + + + 16 + 16 + + + + + + . + true + ${basedir}/src/main/resources/ + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + 9 + 9 + UTF-8 + -proc:none + + + + + + + + + + phoenix + http://la-grange-evasion.pro.dns-orange.fr:8081/repository/maven-public/ + + + + nexus + https://mvn.lumine.io/repository/maven-public/ + + + + jitpack.io + https://jitpack.io + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + sk89q-repo + https://maven.enginehub.org/repo/ + + + + papermc + https://papermc.io/repo/repository/maven-public/ + + + + + + + + + org.spigotmc + spigot-1.17.1 + dev + provided + + + + + org.jetbrains + annotations + 19.0.0 + provided + + + + io.papermc + paperlib + 1.0.5 + + + + org.projectlombok + lombok + 1.18.20 + provided + + + + + io.lumine + MythicLib-dist + 1.3.1 + provided + + + + io.lumine + Mythic-Dist + 5.0.1 + provided + + + + me.clip + PlaceholderAPI + 2.11.1 + provided + + + + com.github.MilkBowl + VaultAPI + 1.7 + provided + + + + com.sk89q.worldguard + worldguard-bukkit + 7.0.2-SNAPSHOT + provided + + + + net.citizensnpcs + Citizens + 2.0.30-b2571 + provided + + + + + de.simonsator + PartyAndFriends + 1.0.65 + provided + + + + com.alessiodp + Parties + 3.1.14 + provided + + + + com.gmail.nossr50 + mcMMO + 2.1.209 + provided + + + + de.erethon + DungeonsXL + 0.18-PRE-02 + provided + + + + org.denizen + Dungeons + 1.0 + provided + + + + + me.blackvein + Quests + 4.4.1-b340 + provided + + + fr.skytasul.quests + BeautyQuests + 0.19.5 + provided + + + com.guillaumevdn + QuestCreator + 6.39.0 + provided + + + com.guillaumevdn + GCore + 8.39.0 + provided + + + + + + com.massivecraft + Factions + 1.6.9.5-2.9.8-RC + provided + + + + me.ulrich + UltimateClans + 4.2.0 + provided + + + + me.glaremasters + Guilds + 3.5.6.0 + provided + + + + org.kingdoms.main + Kingdoms + 1.11.15.0.0.0.1.1 + provided + + + + + + + \ No newline at end of file diff --git a/src/main/java/net/Indyuce/mmocore/MMOCore.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/MMOCore.java similarity index 86% rename from src/main/java/net/Indyuce/mmocore/MMOCore.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/MMOCore.java index 72845b4c..99a62ed3 100644 --- a/src/main/java/net/Indyuce/mmocore/MMOCore.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/MMOCore.java @@ -5,6 +5,10 @@ import io.lumine.mythic.lib.UtilityMethods; import io.lumine.mythic.lib.comp.Metrics; import io.lumine.mythic.lib.version.SpigotPlugin; import io.lumine.mythic.utils.plugin.LuminePlugin; +import net.Indyuce.mmocore.comp.citizens.CitizenInteractEventListener; +import net.Indyuce.mmocore.comp.citizens.CitizensMMOLoader; +import net.Indyuce.mmocore.comp.mythicmobs.MythicHook; +import net.Indyuce.mmocore.comp.mythicmobs.MythicMobsMMOLoader; import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.api.PlayerActionBar; import net.Indyuce.mmocore.api.player.PlayerData; @@ -12,10 +16,6 @@ import net.Indyuce.mmocore.api.player.attribute.AttributeModifier; import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource; import net.Indyuce.mmocore.api.util.debug.DebugMode; import net.Indyuce.mmocore.command.*; -import net.Indyuce.mmocore.comp.citizens.CitizenInteractEventListener; -import net.Indyuce.mmocore.comp.citizens.CitizensMMOLoader; -import net.Indyuce.mmocore.comp.mythicmobs.MythicHook; -import net.Indyuce.mmocore.comp.mythicmobs.MythicMobsMMOLoader; import net.Indyuce.mmocore.comp.placeholder.DefaultParser; import net.Indyuce.mmocore.comp.placeholder.PlaceholderAPIParser; import net.Indyuce.mmocore.comp.placeholder.PlaceholderParser; @@ -30,6 +30,7 @@ import net.Indyuce.mmocore.guild.GuildModuleType; import net.Indyuce.mmocore.guild.provided.Guild; import net.Indyuce.mmocore.guild.provided.MMOCoreGuildModule; import net.Indyuce.mmocore.listener.*; +import net.Indyuce.mmocore.listener.bungee.GetMMOCorePlayerListener; import net.Indyuce.mmocore.listener.event.PlayerPressKeyListener; import net.Indyuce.mmocore.listener.option.*; import net.Indyuce.mmocore.listener.profession.FishingListener; @@ -54,6 +55,7 @@ import org.bukkit.command.CommandMap; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.scheduler.BukkitRunnable; import org.jetbrains.annotations.NotNull; +import org.spigotmc.SpigotConfig; import java.io.File; import java.lang.reflect.Field; @@ -103,7 +105,7 @@ public class MMOCore extends LuminePlugin { @NotNull public GuildModule guildModule; - public boolean shouldDebugSQL = false; + public boolean shouldDebugSQL, hasBungee; private static final int MYTHICLIB_COMPATIBILITY_INDEX = 7; @@ -124,9 +126,10 @@ public class MMOCore extends LuminePlugin { MythicLib.plugin.getEntities().registerRestriction(new MMOCoreTargetRestriction()); MythicLib.plugin.getModifiers().registerModifierType("attribute", configObject -> new AttributeModifier(configObject)); - // Register extra objective, drop items... - if (Bukkit.getPluginManager().getPlugin("WorldGuard") != null) - loadManager.registerLoader(new WorldGuardMMOLoader()); + + // Register extra objective, drop items... + if (Bukkit.getPluginManager().getPlugin("WorldGuard") != null) + loadManager.registerLoader(new WorldGuardMMOLoader()); if (Bukkit.getPluginManager().getPlugin("Citizens") != null) loadManager.registerLoader(new CitizensMMOLoader()); @@ -178,21 +181,31 @@ public class MMOCore extends LuminePlugin { MMOCore.plugin.getLogger().log(Level.INFO, "Hooked onto MythicMobs"); } - /* - * Resource regeneration. Must check if entity is dead otherwise regen will make - * the 'respawn' button glitched plus HURT entity effect bug - */ - new BukkitRunnable() { - public void run() { - for (PlayerData player : PlayerData.getAll()) - if (player.isOnline() && !player.getPlayer().isDead()) - for (PlayerResource resource : PlayerResource.values()) { - double regenAmount = player.getProfess().getHandler(resource).getRegen(player); - if (regenAmount != 0) - resource.regen(player, regenAmount); - } - } - }.runTaskTimer(MMOCore.plugin, 100, 20); + // Checks if the server runs with Bungee + hasBungee = SpigotConfig.bungee & !Bukkit.getServer().getOnlineMode(); + + //Setups the channel for Bungee + if(hasBungee) { + getServer().getMessenger().registerOutgoingPluginChannel(this,"namespace:give_mmocore_player"); + getServer().getMessenger().registerOutgoingPluginChannel(this,"namespace:get_mmocore_player"); + getServer().getMessenger().registerIncomingPluginChannel(this,"namespace:get_mmocore_player",new GetMMOCorePlayerListener()); + } + + /* + * Resource regeneration. Must check if entity is dead otherwise regen will make + * the 'respawn' button glitched plus HURT entity effect bug + */ + new BukkitRunnable() { + public void run() { + for (PlayerData player : PlayerData.getAll()) + if (player.isOnline() && !player.getPlayer().isDead()) + for (PlayerResource resource : PlayerResource.values()) { + double regenAmount = player.getProfess().getHandler(resource).getRegen(player); + if (regenAmount != 0) + resource.regen(player, regenAmount); + } + } + }.runTaskTimer(MMOCore.plugin, 100, 20); /* * For the sake of the lord, make sure they aren't using MMOItems Mana and @@ -218,27 +231,27 @@ public class MMOCore extends LuminePlugin { DebugMode.enableActionBar(); } - // Load quest module - try { - String pluginName = UtilityMethods.enumName(getConfig().getString("quest-plugin")); - PartyModuleType moduleType = PartyModuleType.valueOf(pluginName); - Validate.isTrue(moduleType.isValid(), "Plugin '" + moduleType.name() + "' is not installed"); - partyModule = moduleType.provideModule(); - } catch (RuntimeException exception) { - getLogger().log(Level.WARNING, "Could not initialize quest module: " + exception.getMessage()); - partyModule = new MMOCorePartyModule(); - } + // Load quest module + try { + String questPluginName = UtilityMethods.enumName(getConfig().getString("quest-plugin")); + PartyModuleType moduleType = PartyModuleType.valueOf(questPluginName); + Validate.isTrue(moduleType.isValid(), "Plugin '" + moduleType.name() + "' is not installed"); + partyModule = moduleType.provideModule(); + } catch (RuntimeException exception) { + getLogger().log(Level.WARNING, "Could not initialize quest module: " + exception.getMessage()); + partyModule = new MMOCorePartyModule(); + } - // Load party module - try { - String pluginName = UtilityMethods.enumName(getConfig().getString("party-plugin")); - PartyModuleType moduleType = PartyModuleType.valueOf(pluginName); - Validate.isTrue(moduleType.isValid(), "Plugin '" + moduleType.name() + "' is not installed"); - partyModule = moduleType.provideModule(); - } catch (RuntimeException exception) { - getLogger().log(Level.WARNING, "Could not initialize party module: " + exception.getMessage()); - partyModule = new MMOCorePartyModule(); - } + // Load party module + try { + String partyPluginName = UtilityMethods.enumName(getConfig().getString("party-plugin")); + PartyModuleType moduleType = PartyModuleType.valueOf(partyPluginName); + Validate.isTrue(moduleType.isValid(), "Plugin '" + moduleType.name() + "' is not installed"); + partyModule = moduleType.provideModule(); + } catch (RuntimeException exception) { + getLogger().log(Level.WARNING, "Could not initialize party module: " + exception.getMessage()); + partyModule = new MMOCorePartyModule(); + } // Load guild module try { diff --git a/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/api/ConfigFile.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java index 5c611746..9aaa4e92 100644 --- a/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigFile.java @@ -5,14 +5,13 @@ import java.io.IOException; import java.util.UUID; import java.util.logging.Level; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.guild.provided.Guild; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.guild.provided.Guild; - public class ConfigFile { private final File file; private final String name; diff --git a/src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/ConfigMessage.java diff --git a/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java index 1a843613..8cc99d58 100644 --- a/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/MMOCoreAPI.java @@ -6,11 +6,11 @@ import io.lumine.mythic.lib.skill.handler.SkillHandler; import io.lumine.mythic.lib.skill.result.SkillResult; import io.lumine.mythic.lib.skill.trigger.TriggerMetadata; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.party.AbstractParty; import net.Indyuce.mmocore.skill.CastableSkill; import net.Indyuce.mmocore.skill.ClassSkill; import net.Indyuce.mmocore.skill.RegisteredSkill; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; diff --git a/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java index 79328c22..354d8888 100644 --- a/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/PlayerActionBar.java @@ -1,72 +1,72 @@ -package net.Indyuce.mmocore.api; - -import io.lumine.mythic.lib.MythicLib; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerActivity; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.player.stats.StatInfo; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.attribute.Attribute; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.scheduler.BukkitRunnable; - -import java.text.DecimalFormat; - -public class PlayerActionBar extends BukkitRunnable { - boolean initialized = false; - - private ActionBarConfig config; - private DecimalFormat digit; - - public void reload(ConfigurationSection cfg) { - config = new ActionBarConfig(cfg); - digit = MythicLib.plugin.getMMOConfig().newDecimalFormat(config.digit); - - if (!initialized && config.enabled) { - runTaskTimer(MMOCore.plugin, 0, config.ticks); - initialized = true; - } - } - - public long getTimeOut() { - return config.timeout; - } - - @Override - public void run() { - for (PlayerData data : PlayerData.getAll()) - if (data.isOnline() && !data.getPlayer().isDead() && !data.isCasting() && data.getActivityTimeOut(PlayerActivity.ACTION_BAR_MESSAGE) == 0) { - data.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MMOCore.plugin.placeholderParser.parse(data.getPlayer(), - MythicLib.plugin.parseColors((data.getProfess().hasActionBar() ? data.getProfess().getActionBar() : config.format) - .replace("{health}", digit.format(data.getPlayer().getHealth())) - .replace("{max_health}", StatInfo.valueOf("MAX_HEALTH").format(data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue())) - .replace("{mana_icon}", data.getProfess().getManaDisplay().getIcon()) - .replace("{mana}", digit.format(data.getMana())) - .replace("{max_mana}", StatInfo.valueOf("MAX_MANA").format(data.getStats().getStat("MAX_MANA"))) - .replace("{stamina}", digit.format(data.getStamina())) - .replace("{max_stamina}", StatInfo.valueOf("MAX_STAMINA").format(data.getStats().getStat("MAX_STAMINA"))) - .replace("{stellium}", digit.format(data.getStellium())) - .replace("{max_stellium}", StatInfo.valueOf("MAX_STELLIUM").format(data.getStats().getStat("MAX_STELLIUM"))) - .replace("{class}", data.getProfess().getName()) - .replace("{xp}", MythicLib.plugin.getMMOConfig().decimal.format(data.getExperience())) - .replace("{armor}", StatInfo.valueOf("ARMOR").format(data.getPlayer().getAttribute(Attribute.GENERIC_ARMOR).getValue())) - .replace("{level}", "" + data.getLevel()) - .replace("{name}", data.getPlayer().getDisplayName()))))); - } - } - - private static class ActionBarConfig { - private final boolean enabled; - private final int ticks, timeout; - private final String digit, format; - - private ActionBarConfig(ConfigurationSection config) { - enabled = config.getBoolean("enabled", false); - timeout = config.getInt("", 60); - digit = config.getString("decimal", "0.#"); - ticks = config.getInt("ticks-to-update", 5); - format = config.getString("format", "please format me :c"); - } - } -} +package net.Indyuce.mmocore.api; + +import io.lumine.mythic.lib.MythicLib; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.PlayerActivity; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.player.stats.StatInfo; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.attribute.Attribute; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.scheduler.BukkitRunnable; + +import java.text.DecimalFormat; + +public class PlayerActionBar extends BukkitRunnable { + boolean initialized = false; + + private ActionBarConfig config; + private DecimalFormat digit; + + public void reload(ConfigurationSection cfg) { + config = new ActionBarConfig(cfg); + digit = MythicLib.plugin.getMMOConfig().newDecimalFormat(config.digit); + + if (!initialized && config.enabled) { + runTaskTimer(MMOCore.plugin, 0, config.ticks); + initialized = true; + } + } + + public long getTimeOut() { + return config.timeout; + } + + @Override + public void run() { + for (PlayerData data : PlayerData.getAll()) + if (data.isOnline() && !data.getPlayer().isDead() && !data.isCasting() && data.getActivityTimeOut(PlayerActivity.ACTION_BAR_MESSAGE) == 0) { + data.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MMOCore.plugin.placeholderParser.parse(data.getPlayer(), + MythicLib.plugin.parseColors((data.getProfess().hasActionBar() ? data.getProfess().getActionBar() : config.format) + .replace("{health}", digit.format(data.getPlayer().getHealth())) + .replace("{max_health}", StatInfo.valueOf("MAX_HEALTH").format(data.getPlayer().getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue())) + .replace("{mana_icon}", data.getProfess().getManaDisplay().getIcon()) + .replace("{mana}", digit.format(data.getMana())) + .replace("{max_mana}", StatInfo.valueOf("MAX_MANA").format(data.getStats().getStat("MAX_MANA"))) + .replace("{stamina}", digit.format(data.getStamina())) + .replace("{max_stamina}", StatInfo.valueOf("MAX_STAMINA").format(data.getStats().getStat("MAX_STAMINA"))) + .replace("{stellium}", digit.format(data.getStellium())) + .replace("{max_stellium}", StatInfo.valueOf("MAX_STELLIUM").format(data.getStats().getStat("MAX_STELLIUM"))) + .replace("{class}", data.getProfess().getName()) + .replace("{xp}", MythicLib.plugin.getMMOConfig().decimal.format(data.getExperience())) + .replace("{armor}", StatInfo.valueOf("ARMOR").format(data.getPlayer().getAttribute(Attribute.GENERIC_ARMOR).getValue())) + .replace("{level}", "" + data.getLevel()) + .replace("{name}", data.getPlayer().getDisplayName()))))); + } + } + + private static class ActionBarConfig { + private final boolean enabled; + private final int ticks, timeout; + private final String digit, format; + + private ActionBarConfig(ConfigurationSection config) { + enabled = config.getBoolean("enabled", false); + timeout = config.getInt("", 60); + digit = config.getString("decimal", "0.#"); + ticks = config.getInt("ticks-to-update", 5); + format = config.getString("format", "please format me :c"); + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/SoundEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/SoundEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/SoundObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundObject.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/SoundObject.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/SoundObject.java diff --git a/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java index 874e3507..04d444b7 100644 --- a/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockInfo.java @@ -1,175 +1,175 @@ -package net.Indyuce.mmocore.api.block; - -import io.lumine.mythic.lib.UtilityMethods; -import io.lumine.mythic.lib.api.MMOLineConfig; -import io.lumine.mythic.lib.api.condition.type.BlockCondition; -import io.lumine.mythic.lib.api.condition.type.MMOCondition; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.loot.droptable.DropTable; -import net.Indyuce.mmocore.loot.LootBuilder; -import net.Indyuce.mmocore.api.quest.trigger.Trigger; -import org.apache.commons.lang.Validate; -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; - -import java.util.*; -import java.util.logging.Level; - -public class BlockInfo { - private final BlockType block; - private final DropTable table; - private final RegenInfo regen; - private final List triggers = new ArrayList<>(); - private final List conditions = new ArrayList<>(); - private final Map options = new HashMap<>(); - - public BlockInfo(ConfigurationSection config) { - Validate.notNull(config, "Could not load config"); - Validate.isTrue(config.contains("material"), "Could not find block type"); - - block = MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("material"))); - table = config.contains("drop-table") ? MMOCore.plugin.dropTableManager.loadDropTable(config.get("drop-table")) : null; - - regen = config.contains("regen") ? new RegenInfo(config.getConfigurationSection("regen")) : null; - - if (config.contains("options")) - for (String key : config.getConfigurationSection("options").getKeys(false)) - try { - BlockInfoOption option = BlockInfoOption.valueOf(key.toUpperCase().replace("-", "_").replace(" ", "_")); - options.put(option, config.getBoolean("options." + key)); - } catch (IllegalArgumentException exception) { - MMOCore.plugin.getLogger().log(Level.WARNING, - "Could not load option '" + key + "' from block info '" + block.generateKey() + "': " + exception.getMessage()); - } - - if (config.contains("triggers")) { - List list = config.getStringList("triggers"); - Validate.notNull(list, "Could not load triggers"); - - for (String key : list) - try { - triggers.add(MMOCore.plugin.loadManager.loadTrigger(new MMOLineConfig(key))); - } catch (IllegalArgumentException exception) { - MMOCore.plugin.getLogger().log(Level.WARNING, - "Could not load trigger '" + key + "' from block info '" + block.generateKey() + "': " + exception.getMessage()); - } - } - - if (config.isList("conditions")) - for (String key : config.getStringList("conditions")) { - MMOCondition condition = UtilityMethods.getCondition(key); - if (condition instanceof BlockCondition) - conditions.add((BlockCondition) condition); - } - - } - - public boolean getOption(BlockInfoOption option) { - return options.getOrDefault(option, option.getDefault()); - } - - public BlockType getBlock() { - return block; - } - - @NotNull - public DropTable getDropTable() { - return Objects.requireNonNull(table, "Block has no drop table"); - } - - public boolean hasDropTable() { - return table != null; - } - - public List collectDrops(LootBuilder builder) { - return table != null ? table.collect(builder) : new ArrayList<>(); - } - - public boolean hasRegen() { - return regen != null; - } - - public boolean regenerates() { - return regen != null; - } - - public RegenInfo getRegenerationInfo() { - return regen; - } - - public RegeneratingBlock startRegeneration(BlockData data, Location loc) { - return new RegeneratingBlock(data, loc, this); - } - - public boolean hasTriggers() { - return !triggers.isEmpty(); - } - - public List getTriggers() { - return triggers; - } - - public boolean checkConditions(Block block) { - for (BlockCondition condition : conditions) - if (!condition.check(block)) - return false; - return true; - } - - public static enum BlockInfoOption { - - /** - * When disabled, removes the vanilla drops when a block is mined - */ - VANILLA_DROPS(true), - - /** - * When disabled, removes exp holograms when mined - */ - EXP_HOLOGRAMS(true); - - private final boolean def; - - private BlockInfoOption(boolean def) { - this.def = def; - } - - public boolean getDefault() { - return def; - } - } - - public static class RegeneratingBlock { - private final BlockData data; - private final Location loc; - private final BlockInfo regenerating; - - private final long date = System.currentTimeMillis(); - - public RegeneratingBlock(BlockData data, Location loc, BlockInfo regenerating) { - this.data = data; - this.loc = loc; - this.regenerating = regenerating; - } - - public boolean isTimedOut() { - return date + regenerating.getRegenerationInfo().getTime() * 50 < System.currentTimeMillis(); - } - - public BlockData getBlockData() { - return data; - } - - public Location getLocation() { - return loc; - } - - public BlockInfo getRegeneratingBlock() { - return regenerating; - } - } -} +package net.Indyuce.mmocore.api.block; + +import io.lumine.mythic.lib.UtilityMethods; +import io.lumine.mythic.lib.api.MMOLineConfig; +import io.lumine.mythic.lib.api.condition.type.BlockCondition; +import io.lumine.mythic.lib.api.condition.type.MMOCondition; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.quest.trigger.Trigger; +import net.Indyuce.mmocore.loot.droptable.DropTable; +import net.Indyuce.mmocore.loot.LootBuilder; +import org.apache.commons.lang.Validate; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.*; +import java.util.logging.Level; + +public class BlockInfo { + private final BlockType block; + private final DropTable table; + private final RegenInfo regen; + private final List triggers = new ArrayList<>(); + private final List conditions = new ArrayList<>(); + private final Map options = new HashMap<>(); + + public BlockInfo(ConfigurationSection config) { + Validate.notNull(config, "Could not load config"); + Validate.isTrue(config.contains("material"), "Could not find block type"); + + block = MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("material"))); + table = config.contains("drop-table") ? MMOCore.plugin.dropTableManager.loadDropTable(config.get("drop-table")) : null; + + regen = config.contains("regen") ? new RegenInfo(config.getConfigurationSection("regen")) : null; + + if (config.contains("options")) + for (String key : config.getConfigurationSection("options").getKeys(false)) + try { + BlockInfoOption option = BlockInfoOption.valueOf(key.toUpperCase().replace("-", "_").replace(" ", "_")); + options.put(option, config.getBoolean("options." + key)); + } catch (IllegalArgumentException exception) { + MMOCore.plugin.getLogger().log(Level.WARNING, + "Could not load option '" + key + "' from block info '" + block.generateKey() + "': " + exception.getMessage()); + } + + if (config.contains("triggers")) { + List list = config.getStringList("triggers"); + Validate.notNull(list, "Could not load triggers"); + + for (String key : list) + try { + triggers.add(MMOCore.plugin.loadManager.loadTrigger(new MMOLineConfig(key))); + } catch (IllegalArgumentException exception) { + MMOCore.plugin.getLogger().log(Level.WARNING, + "Could not load trigger '" + key + "' from block info '" + block.generateKey() + "': " + exception.getMessage()); + } + } + + if (config.isList("conditions")) + for (String key : config.getStringList("conditions")) { + MMOCondition condition = UtilityMethods.getCondition(key); + if (condition instanceof BlockCondition) + conditions.add((BlockCondition) condition); + } + + } + + public boolean getOption(BlockInfoOption option) { + return options.getOrDefault(option, option.getDefault()); + } + + public BlockType getBlock() { + return block; + } + + @NotNull + public DropTable getDropTable() { + return Objects.requireNonNull(table, "Block has no drop table"); + } + + public boolean hasDropTable() { + return table != null; + } + + public List collectDrops(LootBuilder builder) { + return table != null ? table.collect(builder) : new ArrayList<>(); + } + + public boolean hasRegen() { + return regen != null; + } + + public boolean regenerates() { + return regen != null; + } + + public RegenInfo getRegenerationInfo() { + return regen; + } + + public RegeneratingBlock startRegeneration(BlockData data, Location loc) { + return new RegeneratingBlock(data, loc, this); + } + + public boolean hasTriggers() { + return !triggers.isEmpty(); + } + + public List getTriggers() { + return triggers; + } + + public boolean checkConditions(Block block) { + for (BlockCondition condition : conditions) + if (!condition.check(block)) + return false; + return true; + } + + public static enum BlockInfoOption { + + /** + * When disabled, removes the vanilla drops when a block is mined + */ + VANILLA_DROPS(true), + + /** + * When disabled, removes exp holograms when mined + */ + EXP_HOLOGRAMS(true); + + private final boolean def; + + private BlockInfoOption(boolean def) { + this.def = def; + } + + public boolean getDefault() { + return def; + } + } + + public static class RegeneratingBlock { + private final BlockData data; + private final Location loc; + private final BlockInfo regenerating; + + private final long date = System.currentTimeMillis(); + + public RegeneratingBlock(BlockData data, Location loc, BlockInfo regenerating) { + this.data = data; + this.loc = loc; + this.regenerating = regenerating; + } + + public boolean isTimedOut() { + return date + regenerating.getRegenerationInfo().getTime() * 50 < System.currentTimeMillis(); + } + + public BlockData getBlockData() { + return data; + } + + public Location getLocation() { + return loc; + } + + public BlockInfo getRegeneratingBlock() { + return regenerating; + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java similarity index 77% rename from src/main/java/net/Indyuce/mmocore/api/block/BlockType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java index aa86aa21..f375f96f 100644 --- a/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/BlockType.java @@ -1,31 +1,29 @@ -package net.Indyuce.mmocore.api.block; - -import org.bukkit.block.Block; - -import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock; - -public interface BlockType { - - /** - * Called when placing temporary blocks - */ - void place(RegeneratingBlock placed); - - /** - * Called when regenerating an older block with block regen - */ - void regenerate(RegeneratingBlock regenerating); - - /** - * Generates a key used to store the BlockInfo instance in the manager map, - * the key depends on the block type to make sure there is no interference - */ - String generateKey(); - - /** - * Applies some extra break restrictions; returns TRUE if the block can be - * broken. This method is used to prevent non mature crops from being broken - * for example - */ - boolean breakRestrictions(Block block); -} +package net.Indyuce.mmocore.api.block; + +import org.bukkit.block.Block; + +public interface BlockType { + + /** + * Called when placing temporary blocks + */ + void place(BlockInfo.RegeneratingBlock placed); + + /** + * Called when regenerating an older block with block regen + */ + void regenerate(BlockInfo.RegeneratingBlock regenerating); + + /** + * Generates a key used to store the BlockInfo instance in the manager map, + * the key depends on the block type to make sure there is no interference + */ + String generateKey(); + + /** + * Applies some extra break restrictions; returns TRUE if the block can be + * broken. This method is used to prevent non mature crops from being broken + * for example + */ + boolean breakRestrictions(Block block); +} diff --git a/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java index c33183ab..851c7eb0 100644 --- a/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/RegenInfo.java @@ -1,31 +1,31 @@ -package net.Indyuce.mmocore.api.block; - -import org.apache.commons.lang.Validate; -import org.bukkit.configuration.ConfigurationSection; - -import net.Indyuce.mmocore.MMOCore; -import io.lumine.mythic.lib.api.MMOLineConfig; - -public class RegenInfo { - private final BlockType temporary; - private final int regenTime; - - public RegenInfo(ConfigurationSection config) { - Validate.notNull(config, "Could not read regen info config"); - - temporary = config.contains("temp-block") ? MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("temp-block"))) : null; - regenTime = config.getInt("time", 2 * 60 * 20); - } - - public int getTime() { - return regenTime; - } - - public boolean hasTemporaryBlock() { - return temporary != null; - } - - public BlockType getTemporaryBlock() { - return temporary; - } -} +package net.Indyuce.mmocore.api.block; + +import net.Indyuce.mmocore.MMOCore; +import org.apache.commons.lang.Validate; +import org.bukkit.configuration.ConfigurationSection; + +import io.lumine.mythic.lib.api.MMOLineConfig; + +public class RegenInfo { + private final BlockType temporary; + private final int regenTime; + + public RegenInfo(ConfigurationSection config) { + Validate.notNull(config, "Could not read regen info config"); + + temporary = config.contains("temp-block") ? MMOCore.plugin.loadManager.loadBlockType(new MMOLineConfig(config.getString("temp-block"))) : null; + regenTime = config.getInt("time", 2 * 60 * 20); + } + + public int getTime() { + return regenTime; + } + + public boolean hasTemporaryBlock() { + return temporary != null; + } + + public BlockType getTemporaryBlock() { + return temporary; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java index b3d01e3b..2c6d1cc8 100644 --- a/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java @@ -1,59 +1,59 @@ -package net.Indyuce.mmocore.api.block; - -import org.bukkit.Location; -import org.bukkit.block.Block; - -import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock; -import net.Indyuce.mmocore.api.util.MMOCoreUtils; -import io.lumine.mythic.lib.MythicLib; -import io.lumine.mythic.lib.api.MMOLineConfig; -import io.lumine.mythic.lib.version.VersionMaterial; - -public class SkullBlockType implements BlockType { - private final String value; - - public SkullBlockType(MMOLineConfig config) { - config.validate("value"); - - value = config.getString("value"); - } - - public SkullBlockType(Block block) { - value = MythicLib.plugin.getVersion().getWrapper().getSkullValue(block); - } - - public String getValue() { - return value; - } - - @Override - public void place(RegeneratingBlock block) { - Location loc = block.getLocation(); - loc.getBlock().setType(VersionMaterial.PLAYER_HEAD.toMaterial()); - - // save skull orientation if replaced block is a player head - if (MMOCoreUtils.isPlayerHead(block.getBlockData().getMaterial())) - loc.getBlock().setBlockData(block.getBlockData()); - - MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value); - } - - @Override - public void regenerate(RegeneratingBlock block) { - Location loc = block.getLocation(); - // This makes sure that if a skull loses its original rotation - // it can revert back to it when the base block is regenerated - loc.getBlock().setBlockData(block.getBlockData()); - MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value); - } - - @Override - public String generateKey() { - return "vanilla-skull-" + value; - } - - @Override - public boolean breakRestrictions(Block block) { - return true; - } -} +package net.Indyuce.mmocore.api.block; + +import org.bukkit.Location; +import org.bukkit.block.Block; + +import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock; +import net.Indyuce.mmocore.api.util.MMOCoreUtils; +import io.lumine.mythic.lib.MythicLib; +import io.lumine.mythic.lib.api.MMOLineConfig; +import io.lumine.mythic.lib.version.VersionMaterial; + +public class SkullBlockType implements BlockType { + private final String value; + + public SkullBlockType(MMOLineConfig config) { + config.validate("value"); + + value = config.getString("value"); + } + + public SkullBlockType(Block block) { + value = MythicLib.plugin.getVersion().getWrapper().getSkullValue(block); + } + + public String getValue() { + return value; + } + + @Override + public void place(RegeneratingBlock block) { + Location loc = block.getLocation(); + loc.getBlock().setType(VersionMaterial.PLAYER_HEAD.toMaterial()); + + // save skull orientation if replaced block is a player head + if (MMOCoreUtils.isPlayerHead(block.getBlockData().getMaterial())) + loc.getBlock().setBlockData(block.getBlockData()); + + MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value); + } + + @Override + public void regenerate(RegeneratingBlock block) { + Location loc = block.getLocation(); + // This makes sure that if a skull loses its original rotation + // it can revert back to it when the base block is regenerated + loc.getBlock().setBlockData(block.getBlockData()); + MythicLib.plugin.getVersion().getWrapper().setSkullValue(loc.getBlock(), value); + } + + @Override + public String generateKey() { + return "vanilla-skull-" + value; + } + + @Override + public boolean breakRestrictions(Block block) { + return true; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java index 121538b0..e0076cf0 100644 --- a/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/block/VanillaBlockType.java @@ -1,69 +1,69 @@ -package net.Indyuce.mmocore.api.block; - -import org.apache.commons.lang.Validate; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.data.Ageable; -import org.bukkit.block.data.BlockData; - -import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock; -import io.lumine.mythic.lib.api.MMOLineConfig; - -public class VanillaBlockType implements BlockType { - private final Material type; - - /* - * allows to plant back crops with a custom age so that it does not always - * have to full grow again- - */ - private final int age; - - public VanillaBlockType(MMOLineConfig config) { - config.validate("type"); - - type = Material.valueOf(config.getString("type").toUpperCase().replace("-", "_").replace(" ", "_")); - age = config.getInt("age", 0); - - Validate.isTrue(age >= 0 && age < 8, "Age must be between 0 and 7"); - } - - public VanillaBlockType(Block block) { - type = block.getType(); - age = 0; - } - - public Material getType() { - return type; - } - - @Override - public void place(RegeneratingBlock block) { - Location loc = block.getLocation(); - block.getLocation().getBlock().setType(type); - - BlockData state = block.getLocation().getBlock().getBlockData(); - if (age > 0 && state instanceof Ageable) { - ((Ageable) state).setAge(age); - loc.getBlock().setBlockData(state); - } - } - - @Override - public void regenerate(RegeneratingBlock block) { - Location loc = block.getLocation(); - loc.getBlock().setType(type); - // Sets the original blocks old data (only when regenerating) - loc.getBlock().setBlockData(block.getBlockData()); - } - - @Override - public String generateKey() { - return "vanilla-block-" + type.name(); - } - - @Override - public boolean breakRestrictions(Block block) { - return age == 0 || (block.getBlockData() instanceof Ageable && ((Ageable) block.getBlockData()).getAge() >= age); - } -} +package net.Indyuce.mmocore.api.block; + +import org.apache.commons.lang.Validate; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.data.Ageable; +import org.bukkit.block.data.BlockData; + +import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock; +import io.lumine.mythic.lib.api.MMOLineConfig; + +public class VanillaBlockType implements BlockType { + private final Material type; + + /* + * allows to plant back crops with a custom age so that it does not always + * have to full grow again- + */ + private final int age; + + public VanillaBlockType(MMOLineConfig config) { + config.validate("type"); + + type = Material.valueOf(config.getString("type").toUpperCase().replace("-", "_").replace(" ", "_")); + age = config.getInt("age", 0); + + Validate.isTrue(age >= 0 && age < 8, "Age must be between 0 and 7"); + } + + public VanillaBlockType(Block block) { + type = block.getType(); + age = 0; + } + + public Material getType() { + return type; + } + + @Override + public void place(RegeneratingBlock block) { + Location loc = block.getLocation(); + block.getLocation().getBlock().setType(type); + + BlockData state = block.getLocation().getBlock().getBlockData(); + if (age > 0 && state instanceof Ageable) { + ((Ageable) state).setAge(age); + loc.getBlock().setBlockData(state); + } + } + + @Override + public void regenerate(RegeneratingBlock block) { + Location loc = block.getLocation(); + loc.getBlock().setType(type); + // Sets the original blocks old data (only when regenerating) + loc.getBlock().setBlockData(block.getBlockData()); + } + + @Override + public String generateKey() { + return "vanilla-block-" + type.name(); + } + + @Override + public boolean breakRestrictions(Block block) { + return age == 0 || (block.getBlockData() instanceof Ageable && ((Ageable) block.getBlockData()).getAge() >= age); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java index e143c2b7..9b46af96 100644 --- a/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/eco/Withdraw.java @@ -4,6 +4,7 @@ import java.util.HashSet; import java.util.Set; import java.util.UUID; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -16,7 +17,6 @@ import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.util.item.CurrencyItemBuilder; import io.lumine.mythic.lib.api.util.SmartGive; diff --git a/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/AsyncPlayerDataLoadEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomBlockMineEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/CustomPlayerFishEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/LootChestSpawnEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/MMOCommandEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerAttributeUseEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerChangeClassEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerCombatEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerDataLoadEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java index bd48b40d..eebb698b 100644 --- a/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerExperienceGainEvent.java @@ -2,10 +2,10 @@ package net.Indyuce.mmocore.api.event; import javax.annotation.Nullable; +import net.Indyuce.mmocore.experience.EXPSource; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.api.player.PlayerData; diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerKeyPressEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerLevelUpEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java similarity index 86% rename from src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java index 291f4876..6a10469e 100644 --- a/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/PlayerResourceUpdateEvent.java @@ -1,5 +1,9 @@ package net.Indyuce.mmocore.api.event; +import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger; +import net.Indyuce.mmocore.api.quest.trigger.StaminaTrigger; +import net.Indyuce.mmocore.api.quest.trigger.StelliumTrigger; +import net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource; import net.Indyuce.mmocore.skill.list.Neptune_Gift; @@ -104,14 +108,14 @@ public class PlayerResourceUpdateEvent extends PlayerDataEvent implements Cancel /** * Used by quests triggers - * - {@link net.Indyuce.mmocore.api.quest.trigger.ManaTrigger} - * - {@link net.Indyuce.mmocore.api.quest.trigger.StaminaTrigger} - * - {@link net.Indyuce.mmocore.api.quest.trigger.StelliumTrigger} + * - {@link ManaTrigger} + * - {@link StaminaTrigger} + * - {@link StelliumTrigger} */ TRIGGER, /** - * When using the resource command {@link net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode} + * When using the resource command {@link ResourceCommandTreeNode} */ COMMAND, diff --git a/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/GuildChatEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/event/social/PartyChatEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java index 9ec22aca..da0ec28f 100644 --- a/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java @@ -1,13 +1,13 @@ package net.Indyuce.mmocore.api.load; +import net.Indyuce.mmocore.api.block.BlockType; +import net.Indyuce.mmocore.api.block.SkullBlockType; +import net.Indyuce.mmocore.api.block.VanillaBlockType; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.*; import net.Indyuce.mmocore.loot.chest.condition.*; import org.bukkit.configuration.ConfigurationSection; -import net.Indyuce.mmocore.api.block.BlockType; -import net.Indyuce.mmocore.api.block.SkullBlockType; -import net.Indyuce.mmocore.api.block.VanillaBlockType; import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import net.Indyuce.mmocore.loot.droptable.dropitem.DropTableDropItem; diff --git a/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java index c1bed441..51564421 100644 --- a/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/load/MMOLoader.java @@ -2,12 +2,12 @@ package net.Indyuce.mmocore.api.load; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.api.block.BlockType; +import net.Indyuce.mmocore.api.quest.trigger.Trigger; import net.Indyuce.mmocore.loot.chest.condition.Condition; import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; import net.Indyuce.mmocore.api.quest.objective.Objective; -import net.Indyuce.mmocore.api.quest.trigger.Trigger; import org.bukkit.configuration.ConfigurationSection; /** diff --git a/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/CombatRunnable.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/OfflinePlayerData.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerActivity.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java similarity index 90% rename from src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java index b3c3797d..52210361 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.api.player; +import com.google.gson.JsonObject; import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.player.MMOPlayerData; import io.lumine.mythic.lib.player.TemporaryPlayerData; @@ -23,12 +24,10 @@ import net.Indyuce.mmocore.api.util.Closable; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.ExperienceObject; -import net.Indyuce.mmocore.experience.ExperienceTableClaimer; -import net.Indyuce.mmocore.experience.PlayerProfessions; import net.Indyuce.mmocore.experience.droptable.ExperienceItem; import net.Indyuce.mmocore.experience.droptable.ExperienceTable; import net.Indyuce.mmocore.guild.provided.Guild; -import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect; +import net.Indyuce.mmocore.manager.data.mysql.MySQLTableEditor; import net.Indyuce.mmocore.party.AbstractParty; import net.Indyuce.mmocore.party.provided.Party; import net.Indyuce.mmocore.player.Unlockable; @@ -37,6 +36,9 @@ import net.Indyuce.mmocore.skill.RegisteredSkill; import net.Indyuce.mmocore.skill.cast.SkillCastingHandler; import net.Indyuce.mmocore.waypoint.Waypoint; import net.Indyuce.mmocore.waypoint.WaypointOption; +import net.Indyuce.mmocore.experience.ExperienceTableClaimer; +import net.Indyuce.mmocore.experience.PlayerProfessions; +import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; import org.apache.commons.lang.Validate; @@ -51,6 +53,7 @@ import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import java.util.*; import java.util.logging.Level; +import java.util.stream.Collectors; public class PlayerData extends OfflinePlayerData implements Closable, ExperienceTableClaimer { @@ -509,6 +512,64 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc }.runTaskTimer(MMOCore.plugin, 0, 1); } + public String toJson() { + + //We create the JSON correspondign to player Data + JsonObject jsonObject = new JsonObject(); + MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, getUniqueId()); + MMOCore.sqlDebug("Saving data for: '" + getUniqueId() + "'..."); + + jsonObject.addProperty("class_points", getClassPoints()); + jsonObject.addProperty("skill_points", getSkillPoints()); + jsonObject.addProperty("attribute_points", getAttributePoints()); + jsonObject.addProperty("attribute_realloc_points", getAttributeReallocationPoints()); + jsonObject.addProperty("level", getLevel()); + jsonObject.addProperty("experience", getExperience()); + jsonObject.addProperty("class", getProfess().getId()); + jsonObject.addProperty("last_login", getLastLogin()); + jsonObject.addProperty("guild", hasGuild() ? getGuild().getId() : null); + + jsonObject.addProperty("waypoints", MMOCoreUtils.arrayToJsonString(getWaypoints())); + jsonObject.addProperty("friends", MMOCoreUtils.arrayToJsonString(getFriends().stream().map(UUID::toString).collect(Collectors.toList()))); + jsonObject.addProperty("bound_skills", MMOCoreUtils.arrayToJsonString(getBoundSkills().stream().map(skill -> skill.getSkill().getHandler().getId()).collect(Collectors.toList()))); + + jsonObject.addProperty("skills", MMOCoreUtils.entrySetToJsonString(mapSkillLevels().entrySet())); + jsonObject.addProperty("times_claimed", MMOCoreUtils.entrySetToJsonString(getItemClaims().entrySet())); + + jsonObject.addProperty("attributes", getAttributes().toJsonString()); + jsonObject.addProperty("professions", getCollectionSkills().toJsonString()); + jsonObject.addProperty("quests", getQuestData().toJsonString()); + jsonObject.addProperty("class_info", createClassInfoData(this).toString()); + + return jsonObject.toString(); + } + + + public static JsonObject createClassInfoData(PlayerData data) { + JsonObject json = new JsonObject(); + for (String c : data.getSavedClasses()) { + SavedClassInformation info = data.getClassInfo(c); + JsonObject classinfo = new JsonObject(); + classinfo.addProperty("level", info.getLevel()); + classinfo.addProperty("experience", info.getExperience()); + classinfo.addProperty("skill-points", info.getSkillPoints()); + classinfo.addProperty("attribute-points", info.getAttributePoints()); + classinfo.addProperty("attribute-realloc-points", info.getAttributeReallocationPoints()); + JsonObject skillinfo = new JsonObject(); + for (String skill : info.getSkillKeys()) + skillinfo.addProperty(skill, info.getSkillLevel(skill)); + classinfo.add("skill", skillinfo); + JsonObject attributeinfo = new JsonObject(); + for (String attribute : info.getAttributeKeys()) + attributeinfo.addProperty(attribute, info.getAttributeLevel(attribute)); + classinfo.add("attribute", attributeinfo); + + json.add(c, classinfo); + } + + return json; + } + public boolean hasReachedMaxLevel() { return getProfess().getMaxLevel() > 0 && getLevel() >= getProfess().getMaxLevel(); } diff --git a/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/AttributeModifier.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java index af2f7ad5..b2858e48 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttribute.java @@ -3,11 +3,11 @@ package net.Indyuce.mmocore.api.player.attribute; import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.stat.modifier.StatModifier; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.EXPSource; +import net.Indyuce.mmocore.experience.droptable.ExperienceTable; +import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.ExpCurve; import net.Indyuce.mmocore.experience.ExperienceObject; -import net.Indyuce.mmocore.experience.droptable.ExperienceTable; import org.apache.commons.lang.Validate; import org.bukkit.Location; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/attribute/PlayerAttributes.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java similarity index 93% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java index 5a6e5e29..d0f6a72a 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/ClassOption.java @@ -1,52 +1,52 @@ -package net.Indyuce.mmocore.api.player.profess; - -public enum ClassOption { - - /** - * If the class should be applied to newcomers - */ - DEFAULT, - - /** - * If the class should in the /class GUI - */ - DISPLAY(true), - - /** - * Health only regens when out of combat - */ - OFF_COMBAT_HEALTH_REGEN, - - /** - * Mana only regens when out of combat - */ - OFF_COMBAT_MANA_REGEN, - - /** - * Stamina only regens when out of combat - */ - OFF_COMBAT_STAMINA_REGEN, - - /** - * Stellium only regens when out of combat - */ - OFF_COMBAT_STELLIUM_REGEN; - - private final boolean def; - - ClassOption() { - this(false); - } - - ClassOption(boolean def) { - this.def = def; - } - - public boolean getDefault() { - return def; - } - - public String getPath() { - return name().toLowerCase().replace("_", "-"); - } +package net.Indyuce.mmocore.api.player.profess; + +public enum ClassOption { + + /** + * If the class should be applied to newcomers + */ + DEFAULT, + + /** + * If the class should in the /class GUI + */ + DISPLAY(true), + + /** + * Health only regens when out of combat + */ + OFF_COMBAT_HEALTH_REGEN, + + /** + * Mana only regens when out of combat + */ + OFF_COMBAT_MANA_REGEN, + + /** + * Stamina only regens when out of combat + */ + OFF_COMBAT_STAMINA_REGEN, + + /** + * Stellium only regens when out of combat + */ + OFF_COMBAT_STELLIUM_REGEN; + + private final boolean def; + + ClassOption() { + this(false); + } + + ClassOption(boolean def) { + this.def = def; + } + + public boolean getDefault() { + return def; + } + + public String getPath() { + return name().toLowerCase().replace("_", "-"); + } } \ No newline at end of file diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java index eb1fc759..48246532 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java @@ -8,6 +8,9 @@ import io.lumine.mythic.lib.api.MMOLineConfig; import io.lumine.mythic.lib.api.util.PostLoadObject; import io.lumine.mythic.lib.version.VersionMaterial; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.experience.EXPSource; +import net.Indyuce.mmocore.skill.list.Ambers; +import net.Indyuce.mmocore.skill.list.Neptune_Gift; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.event.EventTrigger; import net.Indyuce.mmocore.api.player.profess.resource.ManaDisplayOptions; @@ -15,7 +18,6 @@ import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource; import net.Indyuce.mmocore.api.player.profess.resource.ResourceRegeneration; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.api.util.math.formula.LinearValue; -import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.ExpCurve; import net.Indyuce.mmocore.experience.ExperienceObject; import net.Indyuce.mmocore.experience.droptable.ExperienceTable; @@ -374,8 +376,8 @@ public class PlayerClass extends PostLoadObject implements ExperienceObject { * commonly called like EntityDamageEvent or regen events. *

* Examples: - * - {@link net.Indyuce.mmocore.skill.list.Neptune_Gift} - * - {@link net.Indyuce.mmocore.skill.list.Ambers} + * - {@link Neptune_Gift} + * - {@link Ambers} */ public Optional findSkill(RegisteredSkill skill) { ClassSkill found = skills.get(skill.getHandler().getId()); diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java index f5d2698e..52e06d1f 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/SavedClassInformation.java @@ -6,15 +6,15 @@ import java.util.Map.Entry; import java.util.Set; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; +import net.Indyuce.mmocore.manager.data.PlayerDataManager; +import net.Indyuce.mmocore.skill.RegisteredSkill; import org.bukkit.configuration.ConfigurationSection; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; -import net.Indyuce.mmocore.skill.RegisteredSkill; -import net.Indyuce.mmocore.manager.data.PlayerDataManager.DefaultPlayerData; public class SavedClassInformation { private final int level, skillPoints, attributePoints, attributeReallocationPoints; @@ -60,7 +60,7 @@ public class SavedClassInformation { player.getAttributes().mapPoints(), player.mapSkillLevels()); } - public SavedClassInformation(DefaultPlayerData data) { + public SavedClassInformation(PlayerDataManager.DefaultPlayerData data) { this(data.getLevel(), 0, data.getSkillPoints(), data.getAttributePoints(), data.getAttrReallocPoints()); } diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java index 5a088a88..9bfd4fde 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/Subclass.java @@ -1,23 +1,23 @@ -package net.Indyuce.mmocore.api.player.profess; - -import org.apache.commons.lang.Validate; - -public class Subclass { - private final PlayerClass profess; - private final int level; - - public Subclass(PlayerClass profess, int level) { - Validate.notNull(profess, "Subclass cannot be null"); - - this.profess = profess; - this.level = level; - } - - public PlayerClass getProfess() { - return profess; - } - - public int getLevel() { - return level; - } +package net.Indyuce.mmocore.api.player.profess; + +import org.apache.commons.lang.Validate; + +public class Subclass { + private final PlayerClass profess; + private final int level; + + public Subclass(PlayerClass profess, int level) { + Validate.notNull(profess, "Subclass cannot be null"); + + this.profess = profess; + this.level = level; + } + + public PlayerClass getProfess() { + return profess; + } + + public int getLevel() { + return level; + } } \ No newline at end of file diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java index 17923fbd..fca598b2 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTrigger.java @@ -3,7 +3,6 @@ package net.Indyuce.mmocore.api.player.profess.event; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.quest.trigger.Trigger; -import net.Indyuce.mmocore.experience.droptable.ExperienceTable; import org.apache.commons.lang.Validate; import java.util.LinkedHashSet; diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/EventTriggerHandler.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java index e2b3d8e7..87f2e978 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/AttackEventTrigger.java @@ -2,8 +2,8 @@ package net.Indyuce.mmocore.api.player.profess.event.trigger; import io.lumine.mythic.lib.api.event.PlayerAttackEvent; import io.lumine.mythic.lib.damage.DamageType; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockBrokenTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/BlockPlacedTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/ClassChosenEventTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java index 325aaf5d..40d25462 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java @@ -1,11 +1,11 @@ package net.Indyuce.mmocore.api.player.profess.event.trigger; +import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.PlayerClass; import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler; @Deprecated diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java index 20f4800b..0844a62b 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java @@ -1,8 +1,8 @@ package net.Indyuce.mmocore.api.player.profess.event.trigger; import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ManaDisplayOptions.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java index 56aeb9b5..d5c4de3b 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/PlayerResource.java @@ -1,9 +1,10 @@ package net.Indyuce.mmocore.api.player.profess.resource; import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent; +import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger; +import net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.ClassOption; -import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger; import org.bukkit.attribute.Attribute; import java.util.function.BiConsumer; @@ -111,7 +112,7 @@ public enum PlayerResource { } /** - * Used by MMOCore admin commands here: {@link net.Indyuce.mmocore.command.rpg.admin.ResourceCommandTreeNode} + * Used by MMOCore admin commands here: {@link ResourceCommandTreeNode} */ public BiConsumer getConsumer(ManaTrigger.Operation operation) { switch (operation) { diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java index 071fe4b7..6062cf11 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/profess/resource/ResourceRegeneration.java @@ -1,7 +1,7 @@ package net.Indyuce.mmocore.api.player.profess.resource; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.math.formula.LinearValue; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/FriendRequest.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/social/Request.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/social/Request.java diff --git a/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java index 0682683c..56204d7f 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/PlayerStats.java @@ -6,10 +6,10 @@ import io.lumine.mythic.lib.api.stat.StatMap; import io.lumine.mythic.lib.api.stat.modifier.StatModifier; import io.lumine.mythic.lib.player.modifier.ModifierSource; import io.lumine.mythic.lib.player.modifier.ModifierType; +import net.Indyuce.mmocore.skill.ClassSkill; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.player.stats.StatInfo; -import net.Indyuce.mmocore.skill.ClassSkill; public class PlayerStats { private final PlayerData data; diff --git a/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/player/stats/StatType.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/ObjectiveProgress.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/PlayerQuests.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/Quest.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/Quest.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/QuestProgress.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java index 506b13c2..c3e8b0ed 100644 --- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/ClickonObjective.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.api.quest.objective; +import net.Indyuce.mmocore.api.quest.ObjectiveProgress; +import net.Indyuce.mmocore.api.quest.QuestProgress; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -11,8 +13,6 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -import net.Indyuce.mmocore.api.quest.ObjectiveProgress; -import net.Indyuce.mmocore.api.quest.QuestProgress; import io.lumine.mythic.lib.api.MMOLineConfig; public class ClickonObjective extends Objective { diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java index ee85470a..59e65860 100644 --- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/GoToObjective.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.api.quest.objective; +import net.Indyuce.mmocore.api.quest.ObjectiveProgress; +import net.Indyuce.mmocore.api.quest.QuestProgress; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -10,8 +12,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; -import net.Indyuce.mmocore.api.quest.ObjectiveProgress; -import net.Indyuce.mmocore.api.quest.QuestProgress; import io.lumine.mythic.lib.api.MMOLineConfig; public class GoToObjective extends Objective { diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java index 7af8e7fd..9cfaee40 100644 --- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/KillMobObjective.java @@ -1,13 +1,13 @@ package net.Indyuce.mmocore.api.quest.objective; import io.lumine.mythic.lib.api.event.PlayerKillEntityEvent; +import net.Indyuce.mmocore.api.quest.ObjectiveProgress; +import net.Indyuce.mmocore.api.quest.QuestProgress; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.EntityType; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import net.Indyuce.mmocore.api.quest.ObjectiveProgress; -import net.Indyuce.mmocore.api.quest.QuestProgress; import io.lumine.mythic.lib.api.MMOLineConfig; public class KillMobObjective extends Objective { diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java index 59ddf77c..c01a2c38 100644 --- a/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/MineBlockObjective.java @@ -1,5 +1,8 @@ package net.Indyuce.mmocore.api.quest.objective; +import net.Indyuce.mmocore.api.event.CustomBlockMineEvent; +import net.Indyuce.mmocore.api.quest.ObjectiveProgress; +import net.Indyuce.mmocore.api.quest.QuestProgress; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.EventHandler; @@ -7,9 +10,6 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; -import net.Indyuce.mmocore.api.event.CustomBlockMineEvent; -import net.Indyuce.mmocore.api.quest.ObjectiveProgress; -import net.Indyuce.mmocore.api.quest.QuestProgress; import io.lumine.mythic.lib.api.MMOLineConfig; public class MineBlockObjective extends Objective { diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/objective/Objective.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/CommandTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java index a7181940..6a9c0b9c 100644 --- a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ExperienceTrigger.java @@ -1,11 +1,11 @@ package net.Indyuce.mmocore.api.quest.trigger; +import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.SimpleExperienceObject; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import org.apache.commons.lang.Validate; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; import io.lumine.mythic.lib.api.MMOLineConfig; diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ItemTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/ManaTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/MessageTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/SoundTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StaminaTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/StelliumTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/quest/trigger/Trigger.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/Closable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/Closable.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/Closable.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/Closable.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java similarity index 91% rename from src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java index 64a5744a..bd3b4050 100644 --- a/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.api.util; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.version.VersionMaterial; import io.lumine.mythic.utils.holograms.Hologram; @@ -26,9 +28,7 @@ import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; public class MMOCoreUtils { public static boolean pluginItem(ItemStack item) { @@ -140,6 +140,27 @@ public class MMOCoreUtils { return result.toString(); } + + public static Collection jsonArrayToList(String json) { + return new ArrayList<>(Arrays.asList(MythicLib.plugin.getJson().parse(json, String[].class))); + } + + public static String arrayToJsonString(Collection array) { + JsonArray object = new JsonArray(); + for (String str : array) { + object.add(str); + } + return object.toString(); + } + + public static String entrySetToJsonString(Set> entrySet) { + JsonObject object = new JsonObject(); + for (Map.Entry entry : entrySet) { + object.addProperty(entry.getKey(), entry.getValue()); + } + return object.toString(); + } + /** * Method to get all entities surrounding a location. This method does not * take every entity in the world but rather takes all the entities from the diff --git a/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java index 452dd438..bc9fbe41 100644 --- a/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/ActionBarRunnable.java @@ -1,32 +1,32 @@ -package net.Indyuce.mmocore.api.util.debug; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -import net.Indyuce.mmocore.MMOCore; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; - -public class ActionBarRunnable extends BukkitRunnable { - - /* - * how to enable it: set 'debug' to true in the config and use the - * 'debug-action-bar' string parameter. hot changes, only need /mmocore - * reload. - */ - - @Override - public void run() { - Bukkit.getOnlinePlayers().forEach(this::sendActionBar); - } - - private void sendActionBar(Player player) { - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MMOCore.plugin.placeholderParser.parse(player, getMessage()))); - } - - private String getMessage() { - String str = MMOCore.plugin.getConfig().getString("debug-action-bar.format"); - return str == null ? "" : str; - } -} +package net.Indyuce.mmocore.api.util.debug; + +import net.Indyuce.mmocore.MMOCore; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; + +public class ActionBarRunnable extends BukkitRunnable { + + /* + * how to enable it: set 'debug' to true in the config and use the + * 'debug-action-bar' string parameter. hot changes, only need /mmocore + * reload. + */ + + @Override + public void run() { + Bukkit.getOnlinePlayers().forEach(this::sendActionBar); + } + + private void sendActionBar(Player player) { + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MMOCore.plugin.placeholderParser.parse(player, getMessage()))); + } + + private String getMessage() { + String str = MMOCore.plugin.getConfig().getString("debug-action-bar.format"); + return str == null ? "" : str; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java index b5033900..a4b00706 100644 --- a/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/debug/DebugMode.java @@ -1,25 +1,25 @@ -package net.Indyuce.mmocore.api.util.debug; - -import net.Indyuce.mmocore.MMOCore; - -public class DebugMode { - /* - * Debug Levels: - * 1: - * - Print WorldGuard Flag Registry - * 2: - * - Print Profession Trigger Things - * 3: - * - Debug Action Bar - */ - public static int level = 0; - - public static void setLevel(int i) { - level = i; - } - - public static void enableActionBar() { - if (level > 2 && MMOCore.plugin.getConfig().getBoolean("debug-action-bar.enabled")) - new ActionBarRunnable().runTaskTimer(MMOCore.plugin, 0, 10); - } -} +package net.Indyuce.mmocore.api.util.debug; + +import net.Indyuce.mmocore.MMOCore; + +public class DebugMode { + /* + * Debug Levels: + * 1: + * - Print WorldGuard Flag Registry + * 2: + * - Print Profession Trigger Things + * 3: + * - Debug Action Bar + */ + public static int level = 0; + + public static void setLevel(int i) { + level = i; + } + + public static void enableActionBar() { + if (level > 2 && MMOCore.plugin.getConfig().getBoolean("debug-action-bar.enabled")) + new ActionBarRunnable().runTaskTimer(MMOCore.plugin, 0, 10); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java index 45e3a4f4..2363716b 100644 --- a/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/AnvilGUI.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.api.util.input; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -11,7 +12,6 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.Consumer; -import net.Indyuce.mmocore.MMOCore; import io.lumine.mythic.lib.MythicLib; public class AnvilGUI extends PlayerInput { diff --git a/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java index 001e6214..a5b94106 100644 --- a/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/ChatInput.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.api.util.input; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -8,8 +9,6 @@ import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.util.Consumer; -import net.Indyuce.mmocore.MMOCore; - public class ChatInput extends PlayerInput { public ChatInput(Player player, InputType type, Consumer output) { super(player, output); diff --git a/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java index aa1f374f..e2934f3f 100644 --- a/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/input/PlayerInput.java @@ -1,12 +1,11 @@ package net.Indyuce.mmocore.api.util.input; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.util.Consumer; -import net.Indyuce.mmocore.MMOCore; - public abstract class PlayerInput implements Listener { private final Player player; private final Consumer output; diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/Line3D.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/VectorRotation.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/format/DelayFormat.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/IntegerLinearValue.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/LinearValue.java diff --git a/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/api/util/math/formula/RandomAmount.java diff --git a/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java index 4c5240b0..8f800686 100644 --- a/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/AttributesCommand.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -7,9 +9,7 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.InventoryManager; public class AttributesCommand extends BukkitCommand { public AttributesCommand(ConfigurationSection config) { diff --git a/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/ClassCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java index 2691ad07..3927741d 100644 --- a/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/ClassCommand.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -7,9 +9,7 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.InventoryManager; public class ClassCommand extends BukkitCommand { public ClassCommand(ConfigurationSection config) { diff --git a/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/CommandVerbose.java diff --git a/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/command/DepositCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java index 214334e4..75c8bd69 100644 --- a/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/DepositCommand.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.gui.eco.DepositMenu; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -7,8 +8,6 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.gui.eco.DepositMenu; - public class DepositCommand extends BukkitCommand { public DepositCommand(ConfigurationSection config) { super(config.getString("main")); diff --git a/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java index e4ad152e..41af99ec 100644 --- a/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/FriendsCommand.java @@ -2,11 +2,11 @@ package net.Indyuce.mmocore.command; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.api.player.OfflinePlayerData; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.social.FriendRequest; import net.Indyuce.mmocore.api.player.social.Request; -import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; diff --git a/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/GuildCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java index 30f6efc9..c67f8b85 100644 --- a/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/GuildCommand.java @@ -2,6 +2,9 @@ package net.Indyuce.mmocore.command; import java.util.UUID; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; @@ -10,12 +13,9 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.social.Request; import net.Indyuce.mmocore.guild.provided.GuildInvite; -import net.Indyuce.mmocore.manager.InventoryManager; public class GuildCommand extends BukkitCommand { diff --git a/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java index dcefd387..49806a5d 100644 --- a/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/MMOCoreCommandTreeRoot.java @@ -23,7 +23,7 @@ public class MMOCoreCommandTreeRoot extends CommandTreeRoot implements CommandEx (explorer, list) -> MMOCore.plugin.questManager.getAll().forEach(quest -> list.add(quest.getId()))); public MMOCoreCommandTreeRoot() { - super("mmocore", "mmocore.admin"); + super("net/Indyuce/mmocore", "mmocore.admin"); addChild(new ReloadCommandTreeNode(this)); addChild(new CoinsCommandTreeNode(this)); diff --git a/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/PartyCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java index 603ca617..ab7a6bef 100644 --- a/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PartyCommand.java @@ -2,6 +2,9 @@ package net.Indyuce.mmocore.command; import java.util.UUID; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.party.provided.MMOCorePartyModule; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -11,12 +14,9 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.party.provided.PartyInvite; import net.Indyuce.mmocore.api.player.social.Request; -import net.Indyuce.mmocore.manager.InventoryManager; public class PartyCommand extends BukkitCommand { diff --git a/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java index a8bfe6fa..edcbe743 100644 --- a/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/PlayerStatsCommand.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -7,9 +9,7 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.InventoryManager; public class PlayerStatsCommand extends BukkitCommand { public PlayerStatsCommand(ConfigurationSection config) { diff --git a/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java index 2eebc76b..4bf898a5 100644 --- a/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/QuestsCommand.java @@ -1,14 +1,14 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.InventoryManager; public class QuestsCommand extends BukkitCommand { public QuestsCommand(ConfigurationSection config) { diff --git a/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java index a13b5c1f..cd49dcf6 100644 --- a/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/SkillsCommand.java @@ -1,15 +1,15 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; +import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.InventoryManager; public class SkillsCommand extends BukkitCommand { public SkillsCommand(ConfigurationSection config) { diff --git a/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java index 0e958636..9726333c 100644 --- a/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WaypointsCommand.java @@ -1,12 +1,12 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.api.event.MMOCommandEvent; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.api.event.MMOCommandEvent; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.manager.InventoryManager; diff --git a/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java index 4b5c03e2..361b38b2 100644 --- a/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/WithdrawCommand.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.command; +import net.Indyuce.mmocore.MMOCore; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -9,7 +10,6 @@ import org.bukkit.command.defaults.BukkitCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.eco.Withdraw; public class WithdrawCommand extends BukkitCommand { diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/CoinsCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/NoteCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java index c85df307..c7df1d41 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/ReloadCommandTreeNode.java @@ -1,10 +1,9 @@ package net.Indyuce.mmocore.command.rpg; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import io.lumine.mythic.lib.command.api.CommandTreeNode; public class ReloadCommandTreeNode extends CommandTreeNode { diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AdminCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java index c1682b00..f4adcb6d 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/AttributeCommandTreeNode.java @@ -1,15 +1,15 @@ package net.Indyuce.mmocore.command.rpg.admin; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; +import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes; import net.Indyuce.mmocore.command.CommandVerbose; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; -import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes.AttributeInstance; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; @@ -61,7 +61,7 @@ public class AttributeCommandTreeNode extends CommandTreeNode { return CommandResult.FAILURE; } - AttributeInstance instance = PlayerData.get(player).getAttributes().getInstance(attribute); + PlayerAttributes.AttributeInstance instance = PlayerData.get(player).getAttributes().getInstance(attribute); instance.setBase(Math.min(attribute.getMax(), instance.getBase() + c * amount)); CommandVerbose.verbose(sender, CommandVerbose.CommandType.ATTRIBUTE, ChatColor.GOLD + player.getName() + ChatColor.YELLOW + " now has " + ChatColor.GOLD + instance.getBase() + ChatColor.YELLOW + " " + attribute.getName() + "."); diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java index 4328fa8a..a25c10f4 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ClassCommandTreeNode.java @@ -1,15 +1,15 @@ package net.Indyuce.mmocore.command.rpg.admin; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.PlayerClass; import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; import net.Indyuce.mmocore.command.CommandVerbose; import io.lumine.mythic.lib.command.api.CommandTreeNode; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java index 9bf465de..e025fc2c 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ExperienceCommandTreeNode.java @@ -4,10 +4,10 @@ import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.command.CommandVerbose; import net.Indyuce.mmocore.command.MMOCoreCommandTreeRoot; -import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.PlayerProfessions; import net.Indyuce.mmocore.experience.Profession; import org.apache.commons.lang.Validate; @@ -24,7 +24,7 @@ public class ExperienceCommandTreeNode extends CommandTreeNode { addChild(new ActionCommandTreeNode(this, "set", PlayerData::setExperience, PlayerProfessions::setExperience)); addChild(new ActionCommandTreeNode(this, "give", (data, value) -> data.giveExperience(value, EXPSource.COMMAND), (professions, profession, - value) -> professions.giveExperience(profession, value, EXPSource.COMMAND))); + value) -> professions.giveExperience(profession, value, EXPSource.COMMAND))); addChild(new ActionCommandTreeNode(this, "take", (data, value) -> data.giveExperience(-value, EXPSource.COMMAND), (professions, profession, value) -> professions.giveExperience(profession, -value, EXPSource.COMMAND))); } diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java index 17bdcbce..6fded3c4 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ForceClassCommandTreeNode.java @@ -1,14 +1,14 @@ package net.Indyuce.mmocore.command.rpg.admin; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; import net.Indyuce.mmocore.command.CommandVerbose; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.PlayerClass; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/HideActionBarCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java index fcb7416b..7590a394 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/InfoCommandTreeNode.java @@ -1,12 +1,12 @@ package net.Indyuce.mmocore.command.rpg.admin; import io.lumine.mythic.lib.MythicLib; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.api.player.PlayerData; import io.lumine.mythic.lib.command.api.CommandTreeNode; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java index 512c187a..6e2d874d 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/LevelCommandTreeNode.java @@ -2,14 +2,14 @@ package net.Indyuce.mmocore.command.rpg.admin; import java.util.function.BiConsumer; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.command.CommandVerbose; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.PlayerProfessions; import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.api.player.PlayerData; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/NoCooldownCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/PointsCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java index de2b6824..cb7df301 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResetCommandTreeNode.java @@ -1,14 +1,14 @@ package net.Indyuce.mmocore.command.rpg.admin; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes.AttributeInstance; import net.Indyuce.mmocore.command.CommandVerbose; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; @@ -171,7 +171,7 @@ public class ResetCommandTreeNode extends CommandTreeNode { if (args.length > 4 && args[4].equalsIgnoreCase("-reallocate")) { int points = 0; - for (AttributeInstance ins : data.getAttributes().getInstances()) { + for (PlayerAttributes.AttributeInstance ins : data.getAttributes().getInstances()) { points += ins.getBase(); ins.setBase(0); } diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java index 9f453a35..4dc947bd 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/admin/ResourceCommandTreeNode.java @@ -2,9 +2,9 @@ package net.Indyuce.mmocore.command.rpg.admin; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; +import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource; -import net.Indyuce.mmocore.api.quest.trigger.ManaTrigger; import net.Indyuce.mmocore.command.CommandVerbose; import org.bukkit.Bukkit; import org.bukkit.ChatColor; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/BoosterCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java index 99b0742d..2139d37f 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/CreateCommandTreeNode.java @@ -2,12 +2,12 @@ package net.Indyuce.mmocore.command.rpg.booster; import java.util.Arrays; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Sound; import org.bukkit.command.CommandSender; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.ConfigMessage; import net.Indyuce.mmocore.experience.Booster; import net.Indyuce.mmocore.experience.Profession; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java index ecaba7d3..6c504fd0 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/ListCommandTreeNode.java @@ -1,10 +1,10 @@ package net.Indyuce.mmocore.command.rpg.booster; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.Booster; import net.Indyuce.mmocore.api.util.math.format.DelayFormat; import io.lumine.mythic.lib.MythicLib; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java index 03ce630f..4ee4186c 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/booster/RemoveCommandTreeNode.java @@ -3,10 +3,10 @@ package net.Indyuce.mmocore.command.rpg.booster; import java.util.Iterator; import java.util.UUID; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.Booster; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/DebugCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatModifiersCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/debug/StatValueCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java index 1556da28..c3731a6d 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/CancelCommandTreeNode.java @@ -1,43 +1,43 @@ -package net.Indyuce.mmocore.command.rpg.quest; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.quest.PlayerQuests; -import io.lumine.mythic.lib.command.api.CommandTreeNode; -import io.lumine.mythic.lib.command.api.Parameter; - -public class CancelCommandTreeNode extends CommandTreeNode { - public CancelCommandTreeNode(CommandTreeNode parent) { - super(parent, "cancel"); - - addParameter(Parameter.PLAYER); - } - - @Override - public CommandResult execute(CommandSender sender, String[] args) { - if (args.length < 3) - return CommandResult.THROW_USAGE; - - Player player = Bukkit.getPlayer(args[2]); - if (player == null) { - sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + "."); - return CommandResult.FAILURE; - } - - PlayerQuests quests = PlayerData.get(player).getQuestData(); - if (!quests.hasCurrent()) { - if (sender instanceof Player) - sender.sendMessage(ChatColor.RED + player.getName() + " has no ongoing quest."); - return CommandResult.SUCCESS; - } - - quests.start(null); - if (sender instanceof Player) - sender.sendMessage(ChatColor.YELLOW + player.getName() + " no longer has any ongoing quest."); - return CommandResult.SUCCESS; - } -} +package net.Indyuce.mmocore.command.rpg.quest; + +import net.Indyuce.mmocore.api.quest.PlayerQuests; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import net.Indyuce.mmocore.api.player.PlayerData; +import io.lumine.mythic.lib.command.api.CommandTreeNode; +import io.lumine.mythic.lib.command.api.Parameter; + +public class CancelCommandTreeNode extends CommandTreeNode { + public CancelCommandTreeNode(CommandTreeNode parent) { + super(parent, "cancel"); + + addParameter(Parameter.PLAYER); + } + + @Override + public CommandResult execute(CommandSender sender, String[] args) { + if (args.length < 3) + return CommandResult.THROW_USAGE; + + Player player = Bukkit.getPlayer(args[2]); + if (player == null) { + sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + "."); + return CommandResult.FAILURE; + } + + PlayerQuests quests = PlayerData.get(player).getQuestData(); + if (!quests.hasCurrent()) { + if (sender instanceof Player) + sender.sendMessage(ChatColor.RED + player.getName() + " has no ongoing quest."); + return CommandResult.SUCCESS; + } + + quests.start(null); + if (sender instanceof Player) + sender.sendMessage(ChatColor.YELLOW + player.getName() + " no longer has any ongoing quest."); + return CommandResult.SUCCESS; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java index 5514bfbb..779a918b 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/FinishCommandTreeNode.java @@ -2,8 +2,8 @@ package net.Indyuce.mmocore.command.rpg.quest; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.quest.PlayerQuests; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java index 866b6981..2cb909ad 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/QuestCommandTreeNode.java @@ -1,21 +1,21 @@ -package net.Indyuce.mmocore.command.rpg.quest; - -import org.bukkit.command.CommandSender; - -import io.lumine.mythic.lib.command.api.CommandTreeNode; - -public class QuestCommandTreeNode extends CommandTreeNode { - - public QuestCommandTreeNode(CommandTreeNode parent) { - super(parent, "quest"); - - addChild(new StartCommandTreeNode(this)); - addChild(new CancelCommandTreeNode(this)); - addChild(new FinishCommandTreeNode(this)); - } - - @Override - public CommandResult execute(CommandSender sender, String[] args) { - return CommandResult.THROW_USAGE; - } -} +package net.Indyuce.mmocore.command.rpg.quest; + +import org.bukkit.command.CommandSender; + +import io.lumine.mythic.lib.command.api.CommandTreeNode; + +public class QuestCommandTreeNode extends CommandTreeNode { + + public QuestCommandTreeNode(CommandTreeNode parent) { + super(parent, "quest"); + + addChild(new StartCommandTreeNode(this)); + addChild(new CancelCommandTreeNode(this)); + addChild(new FinishCommandTreeNode(this)); + } + + @Override + public CommandResult execute(CommandSender sender, String[] args) { + return CommandResult.THROW_USAGE; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java index 079c262c..e2941ebc 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/quest/StartCommandTreeNode.java @@ -1,55 +1,55 @@ -package net.Indyuce.mmocore.command.rpg.quest; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.quest.PlayerQuests; -import net.Indyuce.mmocore.api.quest.Quest; -import net.Indyuce.mmocore.command.MMOCoreCommandTreeRoot; -import io.lumine.mythic.lib.command.api.CommandTreeNode; -import io.lumine.mythic.lib.command.api.Parameter; - -public class StartCommandTreeNode extends CommandTreeNode { - public StartCommandTreeNode(CommandTreeNode parent) { - super(parent, "start"); - - addParameter(Parameter.PLAYER); - addParameter(MMOCoreCommandTreeRoot.QUEST); - } - - @Override - public CommandResult execute(CommandSender sender, String[] args) { - if (args.length < 4) - return CommandResult.THROW_USAGE; - - Player player = Bukkit.getPlayer(args[2]); - if (player == null) { - sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + "."); - return CommandResult.FAILURE; - } - - Quest quest; - try { - quest = MMOCore.plugin.questManager.get(args[3].replace("_", "-").toLowerCase()); - } catch (Exception exception) { - sender.sendMessage(ChatColor.RED + "Could not find quest with ID " + args[3].replace("_", "-").toLowerCase() + "."); - return CommandResult.FAILURE; - } - - PlayerQuests quests = PlayerData.get(player).getQuestData(); - if (quests.hasCurrent()) { - if (sender instanceof Player) - sender.sendMessage(ChatColor.RED + player.getName() + " already has an ongoing quest."); - return CommandResult.SUCCESS; - } - - quests.start(quest); - if (sender instanceof Player) - sender.sendMessage(ChatColor.YELLOW + player.getName() + " successfully started " + quest.getName() + "."); - return CommandResult.SUCCESS; - } -} +package net.Indyuce.mmocore.command.rpg.quest; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.quest.PlayerQuests; +import net.Indyuce.mmocore.api.quest.Quest; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.command.MMOCoreCommandTreeRoot; +import io.lumine.mythic.lib.command.api.CommandTreeNode; +import io.lumine.mythic.lib.command.api.Parameter; + +public class StartCommandTreeNode extends CommandTreeNode { + public StartCommandTreeNode(CommandTreeNode parent) { + super(parent, "start"); + + addParameter(Parameter.PLAYER); + addParameter(MMOCoreCommandTreeRoot.QUEST); + } + + @Override + public CommandResult execute(CommandSender sender, String[] args) { + if (args.length < 4) + return CommandResult.THROW_USAGE; + + Player player = Bukkit.getPlayer(args[2]); + if (player == null) { + sender.sendMessage(ChatColor.RED + "Could not find player called " + args[2] + "."); + return CommandResult.FAILURE; + } + + Quest quest; + try { + quest = MMOCore.plugin.questManager.get(args[3].replace("_", "-").toLowerCase()); + } catch (Exception exception) { + sender.sendMessage(ChatColor.RED + "Could not find quest with ID " + args[3].replace("_", "-").toLowerCase() + "."); + return CommandResult.FAILURE; + } + + PlayerQuests quests = PlayerData.get(player).getQuestData(); + if (quests.hasCurrent()) { + if (sender instanceof Player) + sender.sendMessage(ChatColor.RED + player.getName() + " already has an ongoing quest."); + return CommandResult.SUCCESS; + } + + quests.start(quest); + if (sender instanceof Player) + sender.sendMessage(ChatColor.YELLOW + player.getName() + " successfully started " + quest.getName() + "."); + return CommandResult.SUCCESS; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java index d66f5eac..a8279746 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/ItemCommandTreeNode.java @@ -4,8 +4,8 @@ import io.lumine.mythic.lib.api.util.SmartGive; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.util.item.WaypointBookBuilder; import net.Indyuce.mmocore.waypoint.Waypoint; +import net.Indyuce.mmocore.util.item.WaypointBookBuilder; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java similarity index 87% rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java index 84f1ac91..ec41723d 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/OpenCommandTreeNode.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.command.rpg.waypoint; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -27,7 +28,7 @@ public class OpenCommandTreeNode extends CommandTreeNode { return CommandResult.FAILURE; } - InventoryManager.WAYPOINTS.newInventory(net.Indyuce.mmocore.api.player.PlayerData.get(player)).open(); + InventoryManager.WAYPOINTS.newInventory(PlayerData.get(player)).open(); return CommandResult.SUCCESS; } } diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/TeleportCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java index a33e7a30..94386fdb 100644 --- a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/UnlockCommandTreeNode.java @@ -1,12 +1,12 @@ package net.Indyuce.mmocore.command.rpg.waypoint; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.waypoint.Waypoint; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.waypoint.Waypoint; import net.Indyuce.mmocore.api.player.PlayerData; import io.lumine.mythic.lib.command.api.CommandTreeNode; import io.lumine.mythic.lib.command.api.Parameter; diff --git a/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/command/rpg/waypoint/WaypointsCommandTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEvent.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizenInteractEventListener.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/CitizensMMOLoader.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/GetItemObjective.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/citizens/TalktoCitizenObjective.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java index bbcc4a53..e6d72660 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicHook.java @@ -4,11 +4,11 @@ import io.lumine.mythic.bukkit.MythicBukkit; import io.lumine.mythic.bukkit.events.MythicDropLoadEvent; import io.lumine.mythic.bukkit.events.MythicReloadedEvent; import io.lumine.mythic.core.skills.placeholders.Placeholder; +import net.Indyuce.mmocore.comp.mythicmobs.load.CurrencyItemDrop; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes; -import net.Indyuce.mmocore.comp.mythicmobs.load.CurrencyItemDrop; import net.Indyuce.mmocore.comp.mythicmobs.load.GoldPouchDrop; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java index 8a197ee8..83f4aa1f 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java @@ -1,10 +1,10 @@ package net.Indyuce.mmocore.comp.mythicmobs; import io.lumine.mythic.lib.api.MMOLineConfig; +import net.Indyuce.mmocore.comp.mythicmobs.load.*; import net.Indyuce.mmocore.api.load.MMOLoader; import net.Indyuce.mmocore.api.quest.objective.Objective; import net.Indyuce.mmocore.api.quest.trigger.Trigger; -import net.Indyuce.mmocore.comp.mythicmobs.load.*; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/CurrencyItemDrop.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/GoldPouchDrop.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionExperienceSource.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicFactionObjective.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobExperienceSource.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/KillMythicMobObjective.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java index b4c3fcba..90b59722 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MythicSkillTrigger.java @@ -5,7 +5,6 @@ import io.lumine.mythic.api.mobs.GenericCaster; import io.lumine.mythic.api.skills.Skill; import io.lumine.mythic.api.skills.SkillCaster; import io.lumine.mythic.api.skills.SkillMetadata; -import io.lumine.mythic.api.skills.SkillTrigger; import io.lumine.mythic.bukkit.BukkitAdapter; import io.lumine.mythic.bukkit.MythicBukkit; import io.lumine.mythic.core.skills.SkillMetadataImpl; @@ -15,7 +14,6 @@ import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.quest.trigger.Trigger; import org.apache.commons.lang.Validate; -import java.util.ArrayList; import java.util.HashSet; import java.util.Optional; diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/DefaultParser.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderAPIParser.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/PlaceholderParser.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java index ca6556eb..40307abd 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/placeholder/RPGPlaceholders.java @@ -4,9 +4,9 @@ import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.util.AltChar; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.quest.PlayerQuests; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.player.stats.StatInfo; -import net.Indyuce.mmocore.api.quest.PlayerQuests; import net.Indyuce.mmocore.experience.PlayerProfessions; import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.party.AbstractParty; @@ -37,7 +37,7 @@ public class RPGPlaceholders extends PlaceholderExpansion { @Override public String getIdentifier() { - return "mmocore"; + return "net/Indyuce/mmocore"; } @Override diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/DefaultRegionHandler.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionCondition.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/RegionHandler.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardMMOLoader.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/region/WorldGuardRegionHandler.java diff --git a/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java index 94b16b01..16fee03e 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/MoneyTrigger.java @@ -1,8 +1,8 @@ package net.Indyuce.mmocore.comp.vault; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.quest.trigger.Trigger; +import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; import io.lumine.mythic.lib.api.MMOLineConfig; diff --git a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java index a9fe6a51..139e0e41 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultEconomy.java @@ -2,9 +2,9 @@ package net.Indyuce.mmocore.comp.vault; import java.util.logging.Level; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; -import net.Indyuce.mmocore.MMOCore; import net.milkbowl.vault.economy.Economy; public class VaultEconomy { diff --git a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java index a77f69f7..1cadefc0 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/comp/vault/VaultMMOLoader.java @@ -1,7 +1,7 @@ package net.Indyuce.mmocore.comp.vault; -import net.Indyuce.mmocore.api.load.MMOLoader; import net.Indyuce.mmocore.api.quest.trigger.Trigger; +import net.Indyuce.mmocore.api.load.MMOLoader; import io.lumine.mythic.lib.api.MMOLineConfig; public class VaultMMOLoader extends MMOLoader { diff --git a/src/main/java/net/Indyuce/mmocore/experience/Booster.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/experience/Booster.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java index c15d6928..28f609a5 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/Booster.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Booster.java @@ -1,5 +1,7 @@ package net.Indyuce.mmocore.experience; +import net.Indyuce.mmocore.manager.social.BoosterManager; + import java.util.Objects; import java.util.UUID; @@ -14,7 +16,7 @@ public class Booster { * Length is not final because boosters can stacks. This allows to reduce * the amount of boosters displayed in the main player menu * - * See {@link net.Indyuce.mmocore.manager.social.BoosterManager#register(Booster)} + * See {@link BoosterManager#register(Booster)} */ private long length; diff --git a/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/EXPSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/EXPSource.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExpCurve.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java index c14f0232..b51b1033 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceObject.java @@ -1,7 +1,7 @@ package net.Indyuce.mmocore.experience; -import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.droptable.ExperienceTable; +import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; diff --git a/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/ExperienceTableClaimer.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/Profession.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Profession.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/Profession.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/Profession.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/SimpleExperienceObject.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java similarity index 94% rename from src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java index 0d2af5f5..f5c1d2f8 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/dispenser/ExperienceDispenser.java @@ -1,8 +1,9 @@ package net.Indyuce.mmocore.experience.dispenser; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.experience.EXPSource; +import net.Indyuce.mmocore.experience.ExperienceObject; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Location; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -12,7 +13,7 @@ import org.jetbrains.annotations.Nullable; * experience given in a specific profession. Also being used to * monitor EXP holograms. * - * @deprecated Merged with {@link net.Indyuce.mmocore.experience.ExperienceObject} + * @deprecated Merged with {@link ExperienceObject} */ @Deprecated public interface ExperienceDispenser { diff --git a/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java index 31698af7..1504c000 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceItem.java @@ -2,8 +2,8 @@ package net.Indyuce.mmocore.experience.droptable; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.quest.trigger.Trigger; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/droptable/ExperienceTable.java diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java index a0f6b5bf..8934ce22 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/BrewPotionExperienceSource.java @@ -1,8 +1,8 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.EXPSource; +import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; import net.Indyuce.mmocore.api.player.PlayerData; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java index c26ebd0a..2563a746 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ClimbExperienceSource.java @@ -6,11 +6,9 @@ import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; import org.apache.commons.lang.Validate; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.util.Vector; public class ClimbExperienceSource extends SpecificExperienceSource { //Can be Ladder,Vines,Twisting Vines,Weeping Vines. @@ -30,8 +28,8 @@ public class ClimbExperienceSource extends SpecificExperienceSource { else { String str = config.getString("type").toUpperCase().replace("-", "_"); Validate.isTrue(str.equals("LADDER") || - str.equals("VINE") || str.equals("TWISTING_VINES_PLANT") || str.equals("WEEPING_VINES"), - "ClimbExperienceSource problem: The type must be ladder, vine, twisted-vines or weeping-vines"); + str.equals("VINE") || str.equals("TWISTING_VINES") || str.equals("WEEPING_VINES"), + "ClimbExperienceSource problem: The type must be ladder, vine, twisting-vines or weeping-vines"); type = Material.valueOf(str); } diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java index 55de061c..b53d6dd6 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/CraftItemExperienceSource.java @@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.Material; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java index 7e1c91ac..5b31b7aa 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageDealtExperienceSource.java @@ -4,13 +4,12 @@ import io.lumine.mythic.lib.api.MMOLineConfig; import io.lumine.mythic.lib.api.event.PlayerAttackEvent; import io.lumine.mythic.lib.damage.DamagePacket; import io.lumine.mythic.lib.damage.DamageType; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.event.EventHandler; -import scala.Enumeration; import java.util.Arrays; import java.util.Objects; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java index d361d3a4..aece97e4 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/DamageTakenExperienceSource.java @@ -1,12 +1,11 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import io.lumine.mythic.lib.damage.DamageType; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java index b6db5451..b312b5ac 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EatExperienceSource.java @@ -1,10 +1,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang3.Validate; import org.bukkit.Material; import org.bukkit.OfflinePlayer; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java index 3a9c334d..679ec2e2 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/EnchantItemExperienceSource.java @@ -3,11 +3,11 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.enchantments.Enchantment; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java index 6bf23620..9a5f2184 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/FishItemExperienceSource.java @@ -3,8 +3,8 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Material; import org.bukkit.entity.Item; import org.bukkit.event.EventHandler; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java index 3596a77d..96c3a7be 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/KillMobExperienceSource.java @@ -3,11 +3,11 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import io.lumine.mythic.lib.api.event.PlayerKillEntityEvent; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java index fcc457a4..b1442871 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MineBlockExperienceSource.java @@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java index 66ae8959..6f94ee61 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/MoveExperienceSource.java @@ -1,10 +1,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java index fcd19b70..d586609c 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlaceBlockExperienceSource.java @@ -3,8 +3,8 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.event.EventHandler; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java index b2f49d62..e0a5a43d 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/PlayExperienceSource.java @@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java index c3ac3578..bc9d7995 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ProjectileExperienceSource.java @@ -2,10 +2,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.Location; import org.bukkit.entity.Arrow; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java index 070e5e24..4615cf7a 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RepairItemExperienceSource.java @@ -5,8 +5,8 @@ import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java index d1e40e84..4ceec1ee 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/ResourceExperienceSource.java @@ -2,18 +2,14 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.event.EventHandler; -import java.util.Arrays; -import java.util.Objects; -import java.util.stream.Collectors; - public class ResourceExperienceSource extends SpecificExperienceSource { private final PlayerResource resource; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java index 9c9578ce..6841884f 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/RideExperienceSource.java @@ -1,12 +1,11 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; -import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.event.EventHandler; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java index 8993515d..0d745b5d 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/SmeltItemExperienceSource.java @@ -1,10 +1,10 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java index 83a455c6..4e2f10a6 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/TameExperienceSource.java @@ -1,11 +1,11 @@ package net.Indyuce.mmocore.experience.source; import io.lumine.mythic.lib.api.MMOLineConfig; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.SpecificExperienceSource; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.entity.Wolf; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java index 66d3e7dd..96ca8e05 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/ExperienceSource.java @@ -1,8 +1,8 @@ package net.Indyuce.mmocore.experience.source.type; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import net.Indyuce.mmocore.api.player.PlayerData; public abstract class ExperienceSource { private final ExperienceDispenser dispenser; diff --git a/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java index 05cf0b3d..e877be29 100644 --- a/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/experience/source/type/SpecificExperienceSource.java @@ -1,11 +1,10 @@ package net.Indyuce.mmocore.experience.source.type; import io.lumine.mythic.lib.api.MMOLineConfig; +import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; -import org.bukkit.Bukkit; import org.bukkit.Location; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/gui/AttributeView.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java index 5ad00e3b..63a356eb 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/AttributeView.java @@ -1,18 +1,16 @@ package net.Indyuce.mmocore.gui; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.event.PlayerAttributeUseEvent; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; -import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes.AttributeInstance; -import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.api.player.attribute.PlayerAttributes; import net.Indyuce.mmocore.gui.api.GeneratedInventory; -import net.Indyuce.mmocore.gui.api.PluginInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; -import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; -import net.Indyuce.mmocore.manager.SoundManager; +import net.Indyuce.mmocore.api.SoundEvent; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.player.stats.StatInfo; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; @@ -129,7 +127,7 @@ public class AttributeView extends EditableInventory { return; } - AttributeInstance ins = playerData.getAttributes().getInstance(attribute); + PlayerAttributes.AttributeInstance ins = playerData.getAttributes().getInstance(attribute); if (attribute.hasMax() && ins.getBase() >= attribute.getMax()) { MMOCore.plugin.configManager.getSimpleMessage("attribute-max-points-hit").send(player); MMOCore.plugin.soundManager.getSound(SoundEvent.NOT_ENOUGH_POINTS).playTo(getPlayer()); diff --git a/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java index 6e6c65ad..dad42be6 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassConfirmation.java @@ -1,18 +1,17 @@ package net.Indyuce.mmocore.gui; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.PlayerClass; -import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.PluginInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; -import net.Indyuce.mmocore.manager.SoundManager; +import net.Indyuce.mmocore.api.SoundEvent; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.ChatColor; diff --git a/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java index dc62d6db..da5d505a 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/ClassSelect.java @@ -4,17 +4,16 @@ import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.item.ItemTag; import io.lumine.mythic.lib.api.item.NBTItem; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigMessage; -import net.Indyuce.mmocore.api.SoundEvent; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.ClassOption; import net.Indyuce.mmocore.api.player.profess.PlayerClass; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.manager.InventoryManager; -import net.Indyuce.mmocore.manager.SoundManager; +import net.Indyuce.mmocore.api.ConfigMessage; +import net.Indyuce.mmocore.api.SoundEvent; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.player.profess.ClassOption; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java index 9f306d65..481c7267 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java @@ -5,17 +5,17 @@ import io.lumine.mythic.lib.UtilityMethods; import io.lumine.mythic.lib.api.stat.modifier.StatModifier; import io.lumine.mythic.lib.version.VersionMaterial; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; -import net.Indyuce.mmocore.player.stats.StatInfo; -import net.Indyuce.mmocore.api.util.math.format.DelayFormat; -import net.Indyuce.mmocore.experience.Booster; -import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.player.stats.StatInfo; +import net.Indyuce.mmocore.api.util.math.format.DelayFormat; +import net.Indyuce.mmocore.experience.Booster; +import net.Indyuce.mmocore.experience.Profession; import net.Indyuce.mmocore.party.AbstractParty; import org.apache.commons.lang.Validate; import org.bukkit.ChatColor; diff --git a/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java index 66e2193d..8623599b 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/QuestViewer.java @@ -3,17 +3,16 @@ package net.Indyuce.mmocore.gui; import io.lumine.mythic.lib.api.item.ItemTag; import io.lumine.mythic.lib.api.item.NBTItem; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundEvent; -import net.Indyuce.mmocore.experience.Profession; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.quest.Quest; -import net.Indyuce.mmocore.api.util.math.format.DelayFormat; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; -import net.Indyuce.mmocore.manager.SoundManager; +import net.Indyuce.mmocore.api.SoundEvent; +import net.Indyuce.mmocore.experience.Profession; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.util.math.format.DelayFormat; import org.apache.commons.lang.Validate; import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/net/Indyuce/mmocore/gui/SkillList.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SkillList.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/SkillList.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SkillList.java index 5c611a8f..03507694 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/SkillList.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SkillList.java @@ -4,13 +4,13 @@ import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.item.ItemTag; import io.lumine.mythic.lib.api.item.NBTItem; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.gui.api.item.InventoryItem; +import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; -import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; -import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.skill.ClassSkill; import net.Indyuce.mmocore.skill.RegisteredSkill; import org.bukkit.ChatColor; diff --git a/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java index cd499e10..bc64667d 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassConfirmation.java @@ -1,9 +1,7 @@ package net.Indyuce.mmocore.gui; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.event.PlayerChangeClassEvent; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.PlayerClass; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; @@ -11,7 +9,8 @@ import net.Indyuce.mmocore.gui.api.PluginInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; -import net.Indyuce.mmocore.manager.SoundManager; +import net.Indyuce.mmocore.api.SoundEvent; +import net.Indyuce.mmocore.api.player.PlayerData; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java index d7080135..1e85268b 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/SubclassSelect.java @@ -4,17 +4,16 @@ import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.api.item.ItemTag; import io.lumine.mythic.lib.api.item.NBTItem; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigMessage; -import net.Indyuce.mmocore.api.SoundEvent; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.PlayerClass; -import net.Indyuce.mmocore.api.player.profess.Subclass; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.manager.InventoryManager; -import net.Indyuce.mmocore.manager.SoundManager; +import net.Indyuce.mmocore.api.ConfigMessage; +import net.Indyuce.mmocore.api.SoundEvent; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.player.profess.Subclass; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java index 6dfbfb56..668c6b15 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/WaypointViewer.java @@ -1,13 +1,13 @@ package net.Indyuce.mmocore.gui; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.gui.api.item.InventoryItem; +import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.api.player.PlayerActivity; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; -import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; -import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.waypoint.Waypoint; import net.Indyuce.mmocore.waypoint.WaypointPath; import org.apache.commons.lang.Validate; diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/EditableInventory.java diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java index 85be0d26..163ae7f5 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/GeneratedInventory.java @@ -2,8 +2,8 @@ package net.Indyuce.mmocore.gui.api; import io.lumine.mythic.lib.MythicLib; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.gui.api.item.InventoryItem; +import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.gui.api.item.TriggerItem; import org.bukkit.Bukkit; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/PluginInventory.java diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/InventoryItem.java diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/Placeholders.java diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/SimplePlaceholderItem.java diff --git a/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java similarity index 93% rename from src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java index 28c0df3b..78f0c65d 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/api/item/TriggerItem.java @@ -4,7 +4,6 @@ import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.quest.trigger.Trigger; import net.Indyuce.mmocore.gui.api.GeneratedInventory; -import net.Indyuce.mmocore.gui.api.PluginInventory; import org.bukkit.configuration.ConfigurationSection; public class TriggerItem extends InventoryItem { diff --git a/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java index 3260490c..f443e970 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/DepositMenu.java @@ -1,5 +1,6 @@ package net.Indyuce.mmocore.gui.eco; +import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.util.item.SimpleItemBuilder; import net.milkbowl.vault.economy.EconomyResponse; import org.bukkit.Bukkit; @@ -12,7 +13,6 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.gui.api.PluginInventory; import io.lumine.mythic.lib.api.item.NBTItem; diff --git a/src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/eco/GoldPouch.java diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java index 040ff023..c222a255 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendList.java @@ -1,15 +1,15 @@ package net.Indyuce.mmocore.gui.social.friend; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.gui.api.GeneratedInventory; +import net.Indyuce.mmocore.gui.api.item.InventoryItem; +import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.api.player.PlayerActivity; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType; import net.Indyuce.mmocore.api.util.math.format.DelayFormat; import net.Indyuce.mmocore.gui.api.EditableInventory; -import net.Indyuce.mmocore.gui.api.GeneratedInventory; -import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; -import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; import net.Indyuce.mmocore.manager.InventoryManager; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java index 2ed26b27..e0ae0bea 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/friend/EditableFriendRemoval.java @@ -1,11 +1,11 @@ package net.Indyuce.mmocore.gui.social.friend; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.gui.api.GeneratedInventory; +import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.api.player.OfflinePlayerData; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.gui.api.EditableInventory; -import net.Indyuce.mmocore.gui.api.GeneratedInventory; -import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.Placeholders; import org.bukkit.OfflinePlayer; import org.bukkit.Sound; diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java index 33fca626..f3a7218e 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildAdmin.java @@ -1,14 +1,14 @@ package net.Indyuce.mmocore.gui.social.guild; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType; -import net.Indyuce.mmocore.api.util.math.format.DelayFormat; -import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.api.util.input.PlayerInput; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; -import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.util.math.format.DelayFormat; +import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.gui.api.item.Placeholders; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; @@ -151,7 +151,7 @@ public class EditableGuildAdmin extends EditableInventory { return; } - MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_INVITE, (input) -> { + MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_INVITE, (input) -> { Player target = Bukkit.getPlayer(input); if (target == null) { MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player); diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java similarity index 92% rename from src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java index 83e936e7..ae6e78e8 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildCreation.java @@ -1,12 +1,12 @@ package net.Indyuce.mmocore.gui.social.guild; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType; -import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.api.util.input.PlayerInput; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.manager.data.GuildDataManager.GuildConfiguration.NamingRules; import org.bukkit.Sound; @@ -39,14 +39,14 @@ public class EditableGuildCreation extends EditableInventory { return; if (item.getFunction().equals("create")) { - MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_CREATION_TAG, (input) -> { + MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_CREATION_TAG, (input) -> { if(MMOCore.plugin.dataProvider.getGuildManager().getConfig().shouldUppercaseTags()) input = input.toUpperCase(); if(check(player, input, MMOCore.plugin.dataProvider.getGuildManager().getConfig().getTagRules())) { String tag = input; - MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_CREATION_NAME, (name) -> { + MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_CREATION_NAME, (name) -> { if(check(player, name, MMOCore.plugin.dataProvider.getGuildManager().getConfig().getNameRules())) { MMOCore.plugin.dataProvider.getGuildManager().newRegisteredGuild(playerData.getUniqueId(), name, tag); MMOCore.plugin.dataProvider.getGuildManager().getGuild(tag.toLowerCase()).addMember(playerData.getUniqueId()); diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java index 450c1228..3ae1ccd5 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/guild/EditableGuildView.java @@ -1,15 +1,15 @@ package net.Indyuce.mmocore.gui.social.guild; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.OfflinePlayerData; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType; -import net.Indyuce.mmocore.api.util.math.format.DelayFormat; -import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.api.util.input.PlayerInput; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; -import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; +import net.Indyuce.mmocore.api.player.OfflinePlayerData; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.util.math.format.DelayFormat; +import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.gui.api.item.Placeholders; import org.apache.commons.lang.Validate; import org.bukkit.*; import org.bukkit.configuration.ConfigurationSection; @@ -200,7 +200,7 @@ public class EditableGuildView extends EditableInventory { * Sound.ENTITY_VILLAGER_NO, 1, 1); return; } */ - MMOCore.plugin.configManager.newPlayerInput(player, InputType.GUILD_INVITE, (input) -> { + MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.GUILD_INVITE, (input) -> { Player target = Bukkit.getPlayer(input); if (target == null) { MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player); diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java index c1e9b2ed..5cfdb14f 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyCreation.java @@ -1,11 +1,11 @@ package net.Indyuce.mmocore.gui.social.party; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.party.provided.MMOCorePartyModule; import org.bukkit.Sound; diff --git a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java index aa93e292..e15d038a 100644 --- a/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/gui/social/party/EditablePartyView.java @@ -1,14 +1,14 @@ package net.Indyuce.mmocore.gui.social.party; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.util.input.PlayerInput.InputType; -import net.Indyuce.mmocore.api.util.math.format.DelayFormat; -import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.api.util.input.PlayerInput; import net.Indyuce.mmocore.gui.api.GeneratedInventory; import net.Indyuce.mmocore.gui.api.item.InventoryItem; -import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.util.math.format.DelayFormat; +import net.Indyuce.mmocore.gui.api.EditableInventory; +import net.Indyuce.mmocore.gui.api.item.Placeholders; import net.Indyuce.mmocore.party.provided.Party; import org.apache.commons.lang.Validate; import org.bukkit.*; @@ -148,7 +148,7 @@ public class EditablePartyView extends EditableInventory { return; } - MMOCore.plugin.configManager.newPlayerInput(player, InputType.PARTY_INVITE, (input) -> { + MMOCore.plugin.configManager.newPlayerInput(player, PlayerInput.InputType.PARTY_INVITE, (input) -> { Player target = Bukkit.getPlayer(input); if (target == null) { MMOCore.plugin.configManager.getSimpleMessage("not-online-player", "player", input).send(player); diff --git a/src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/AbstractGuild.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/GuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/GuildModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModule.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/GuildModuleType.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/FactionsGuildModule.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/GuildsGuildModule.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/KingdomsXGuildModule.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/compat/UltimateClansGuildModule.java diff --git a/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java similarity index 94% rename from src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java index 33aefcab..a5d624dc 100644 --- a/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/Guild.java @@ -1,13 +1,13 @@ package net.Indyuce.mmocore.guild.provided; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.gui.api.PluginInventory; +import net.Indyuce.mmocore.gui.social.guild.EditableGuildView; +import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.api.ConfigMessage; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.social.Request; -import net.Indyuce.mmocore.gui.api.PluginInventory; -import net.Indyuce.mmocore.gui.social.guild.EditableGuildView.GuildViewInventory; import net.Indyuce.mmocore.guild.AbstractGuild; -import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -63,7 +63,7 @@ public class Guild implements AbstractGuild { // Disband boolean is to prevent co-modification exception when disbanding a guild public void removeMember(UUID uuid, boolean disband) { PlayerData data = PlayerData.get(uuid); - if (data != null && data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof GuildViewInventory) + if (data != null && data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditableGuildView.GuildViewInventory) InventoryManager.GUILD_CREATION.newInventory(data).open(); if (!disband) @@ -103,7 +103,7 @@ public class Guild implements AbstractGuild { public void reopenInventories() { for (UUID uuid : members) { PlayerData member = PlayerData.get(uuid); - if (member != null && member.isOnline() && member.getPlayer().getOpenInventory() != null && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof GuildViewInventory) + if (member != null && member.isOnline() && member.getPlayer().getOpenInventory() != null && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditableGuildView.GuildViewInventory) ((PluginInventory) member.getPlayer().getOpenInventory().getTopInventory().getHolder()).open(); } } diff --git a/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java index 7c6a9a9b..f7a78108 100644 --- a/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/GuildInvite.java @@ -1,9 +1,9 @@ package net.Indyuce.mmocore.guild.provided; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.social.Request; -import net.Indyuce.mmocore.manager.InventoryManager; import org.bukkit.Bukkit; public class GuildInvite extends Request { diff --git a/src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/guild/provided/MMOCoreGuildModule.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/listener/BlockListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java index 2ff6c505..aee6211b 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/BlockListener.java @@ -4,7 +4,6 @@ import io.lumine.mythic.lib.UtilityMethods; import io.lumine.mythic.utils.Schedulers; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.block.BlockInfo; -import net.Indyuce.mmocore.api.block.BlockInfo.BlockInfoOption; import net.Indyuce.mmocore.api.block.VanillaBlockType; import net.Indyuce.mmocore.api.event.CustomBlockMineEvent; import net.Indyuce.mmocore.api.player.PlayerData; @@ -106,7 +105,7 @@ public class BlockListener implements Listener { * decreases the durability of the item * used to mine the block. */ - if (!info.getOption(BlockInfoOption.VANILLA_DROPS)) { + if (!info.getOption(BlockInfo.BlockInfoOption.VANILLA_DROPS)) { event.setCancelled(true); event.getBlock().setType(Material.AIR); MMOCoreUtils.decreaseDurability(player, EquipmentSlot.HAND, 1); diff --git a/src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/ClassTriggers.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GoldPouchesListener.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java similarity index 78% rename from src/main/java/net/Indyuce/mmocore/listener/GuildListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java index 43aaad9b..4e25df06 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/GuildListener.java @@ -1,5 +1,8 @@ package net.Indyuce.mmocore.listener; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.event.social.GuildChatEvent; +import net.Indyuce.mmocore.manager.ConfigManager; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -7,10 +10,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerChatEvent; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.event.social.GuildChatEvent; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.ConfigManager.SimpleMessage; public class GuildListener implements Listener { @EventHandler(priority = EventPriority.LOW) @@ -28,7 +28,7 @@ public class GuildListener implements Listener { * running it in a delayed task is recommended */ Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> { - SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", event.getMessage().substring(MMOCore.plugin.dataProvider.getGuildManager().getConfig().getPrefix().length())); + ConfigManager.SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("guild-chat", "player", data.getPlayer().getName(), "tag", data.getGuild().getTag(), "message", event.getMessage().substring(MMOCore.plugin.dataProvider.getGuildManager().getConfig().getPrefix().length())); GuildChatEvent called = new GuildChatEvent(data, format.message()); Bukkit.getPluginManager().callEvent(called); if (!called.isCancelled()) diff --git a/src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/LootableChestsListener.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/PlayerListener.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java index c703c607..d48ed573 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java @@ -2,12 +2,12 @@ package net.Indyuce.mmocore.listener; import io.lumine.mythic.lib.api.item.NBTItem; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.waypoint.Waypoint; +import net.Indyuce.mmocore.waypoint.WaypointOption; import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect; import net.Indyuce.mmocore.manager.InventoryManager; -import net.Indyuce.mmocore.waypoint.Waypoint; -import net.Indyuce.mmocore.waypoint.WaypointOption; import org.bukkit.Particle; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java new file mode 100644 index 00000000..81e40242 --- /dev/null +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/bungee/GetMMOCorePlayerListener.java @@ -0,0 +1,21 @@ +package net.Indyuce.mmocore.listener.bungee; + +import com.google.common.io.ByteArrayDataInput; +import com.google.common.io.ByteStreams; +import org.bukkit.entity.Player; +import org.bukkit.plugin.messaging.PluginMessageListener; + +import java.util.UUID; + +public class GetMMOCorePlayerListener implements PluginMessageListener { + @Override + public void onPluginMessageReceived( String channel, Player player, byte[] bytes) { + if(!channel.equals("give_mmocore_player")) + return; + ByteArrayDataInput input= ByteStreams.newDataInput(bytes); + UUID uuid=UUID.fromString(input.readUTF()); + String Json=input.readUTF(); + } + + +} diff --git a/src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/event/PlayerPressKeyListener.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java index b6afa74d..410f8ee1 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/DeathExperienceLoss.java @@ -1,25 +1,25 @@ -package net.Indyuce.mmocore.listener.option; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigMessage; -import net.Indyuce.mmocore.api.player.PlayerData; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.PlayerDeathEvent; - -public class DeathExperienceLoss implements Listener { - private final double loss = MMOCore.plugin.getConfig().getDouble("death-exp-loss.percent") / 100; - - @EventHandler(priority = EventPriority.HIGH) - public void a(PlayerDeathEvent event) { - if (!PlayerData.has(event.getEntity())) - return; - - PlayerData data = PlayerData.get(event.getEntity()); - int loss = (int) (data.getExperience() * this.loss); - data.setExperience(data.getExperience() - loss); - if (data.isOnline()) - new ConfigMessage("death-exp-loss").addPlaceholders("loss", "" + loss).send(data.getPlayer()); - } -} +package net.Indyuce.mmocore.listener.option; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.ConfigMessage; +import net.Indyuce.mmocore.api.player.PlayerData; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; + +public class DeathExperienceLoss implements Listener { + private final double loss = MMOCore.plugin.getConfig().getDouble("death-exp-loss.percent") / 100; + + @EventHandler(priority = EventPriority.HIGH) + public void a(PlayerDeathEvent event) { + if (!PlayerData.has(event.getEntity())) + return; + + PlayerData data = PlayerData.get(event.getEntity()); + int loss = (int) (data.getExperience() * this.loss); + data.setExperience(data.getExperience() - loss); + if (data.isOnline()) + new ConfigMessage("death-exp-loss").addPlaceholders("loss", "" + loss).send(data.getPlayer()); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java index 157c9211..6945b610 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/HotbarSwap.java @@ -2,8 +2,8 @@ package net.Indyuce.mmocore.listener.option; import io.lumine.mythic.lib.UtilityMethods; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent; +import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.skill.cast.PlayerKey; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java index 192644f7..d5382c8c 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/NoSpawnerEXP.java @@ -1,17 +1,16 @@ -package net.Indyuce.mmocore.listener.option; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -import org.bukkit.metadata.FixedMetadataValue; - -import net.Indyuce.mmocore.MMOCore; - -public class NoSpawnerEXP implements Listener { - @EventHandler - public void a(CreatureSpawnEvent event) { - if(event.getSpawnReason() == SpawnReason.SPAWNER) - event.getEntity().setMetadata("spawner_spawned", new FixedMetadataValue(MMOCore.plugin, true)); - } -} +package net.Indyuce.mmocore.listener.option; + +import net.Indyuce.mmocore.MMOCore; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; +import org.bukkit.metadata.FixedMetadataValue; + +public class NoSpawnerEXP implements Listener { + @EventHandler + public void a(CreatureSpawnEvent event) { + if(event.getSpawnReason() == SpawnReason.SPAWNER) + event.getEntity().setMetadata("spawner_spawned", new FixedMetadataValue(MMOCore.plugin, true)); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/PlayerProfileCheck.java diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java index 49a19c45..68df53bd 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/RedirectVanillaExp.java @@ -1,23 +1,23 @@ -package net.Indyuce.mmocore.listener.option; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerExpChangeEvent; - -import net.Indyuce.mmocore.experience.EXPSource; -import net.Indyuce.mmocore.api.player.PlayerData; - -public class RedirectVanillaExp implements Listener { - private final double ratio; - - public RedirectVanillaExp(double ratio) { - this.ratio = ratio; - } - - @EventHandler - public void a(PlayerExpChangeEvent event) { - double a = (event.getAmount() * ratio); - if (a > 0) - PlayerData.get(event.getPlayer()).giveExperience(a, EXPSource.VANILLA); - } -} +package net.Indyuce.mmocore.listener.option; + +import net.Indyuce.mmocore.experience.EXPSource; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerExpChangeEvent; + +import net.Indyuce.mmocore.api.player.PlayerData; + +public class RedirectVanillaExp implements Listener { + private final double ratio; + + public RedirectVanillaExp(double ratio) { + this.ratio = ratio; + } + + @EventHandler + public void a(PlayerExpChangeEvent event) { + double a = (event.getAmount() * ratio); + if (a > 0) + PlayerData.get(event.getPlayer()).giveExperience(a, EXPSource.VANILLA); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java index 14b22c46..530390f7 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/option/VanillaExperienceOverride.java @@ -1,35 +1,35 @@ -package net.Indyuce.mmocore.listener.option; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; - -public class VanillaExperienceOverride implements Listener { - - /** - * When picking up exp orbs or any action like that - */ - @EventHandler(priority = EventPriority.HIGHEST) - public void a(PlayerExpChangeEvent event) { - event.setAmount(0); - } - - /** - * This event is not supported by the expChangeEvent. Since the event is - * actually called before applying the enchant and consuming levels, we must - * update the player level using a delayed task. - *

- * {@link EnchantItemEvent#setExpLevelCost(int)} does NOT work - */ - @EventHandler - public void b(EnchantItemEvent event) { - Player player = event.getEnchanter(); - Bukkit.getScheduler().runTask(MMOCore.plugin, () -> player.setLevel(PlayerData.get(player).getLevel())); - } -} +package net.Indyuce.mmocore.listener.option; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.PlayerData; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; + +public class VanillaExperienceOverride implements Listener { + + /** + * When picking up exp orbs or any action like that + */ + @EventHandler(priority = EventPriority.HIGHEST) + public void a(PlayerExpChangeEvent event) { + event.setAmount(0); + } + + /** + * This event is not supported by the expChangeEvent. Since the event is + * actually called before applying the enchant and consuming levels, we must + * update the player level using a delayed task. + *

+ * {@link EnchantItemEvent#setExpLevelCost(int)} does NOT work + */ + @EventHandler + public void b(EnchantItemEvent event) { + Player player = event.getEnchanter(); + Bukkit.getScheduler().runTask(MMOCore.plugin, () -> player.setLevel(PlayerData.get(player).getLevel())); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java index 4f1e0588..87719b7a 100644 --- a/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java @@ -3,11 +3,11 @@ package net.Indyuce.mmocore.listener.profession; import io.lumine.mythic.lib.version.VersionSound; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.event.CustomPlayerFishEvent; +import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.MMOCoreUtils; -import net.Indyuce.mmocore.experience.EXPSource; import net.Indyuce.mmocore.loot.LootBuilder; -import net.Indyuce.mmocore.loot.droptable.dropitem.fishing.FishingDropItem; +import net.Indyuce.mmocore.loot.fishing.FishingDropItem; import net.Indyuce.mmocore.manager.profession.FishingManager.FishingDropTable; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java index b5a5ae7e..c23136ce 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/LootBuilder.java @@ -3,9 +3,8 @@ package net.Indyuce.mmocore.loot; import java.util.ArrayList; import java.util.List; -import org.bukkit.inventory.ItemStack; - import net.Indyuce.mmocore.api.player.PlayerData; +import org.bukkit.inventory.ItemStack; public class LootBuilder { private final PlayerData player; diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/RandomWeightedRoll.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/RandomWeightedRoll.java new file mode 100644 index 00000000..53e3fae2 --- /dev/null +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/RandomWeightedRoll.java @@ -0,0 +1,79 @@ +package net.Indyuce.mmocore.loot; + +import net.Indyuce.mmocore.api.player.PlayerData; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Random; + +/** + * Used whenever the chance stat appears in MMOCore + * + * @param Any weighted object, currently either fishing drop + * items or loot chest tiers. + */ +public class RandomWeightedRoll { + private final Collection collection; + private final T rolled; + + private static final Random RANDOM = new Random(); + + public RandomWeightedRoll(PlayerData player, Collection collection, double chanceWeight) { + this.collection = collection; + + double partialSum = 0; + final double randomCoefficient = RANDOM.nextDouble(), chance = chanceWeight * player.getStats().getStat("CHANCE"), sum = weightedSum(chance); + + for (T item : collection) { + partialSum += computeRealWeight(item, chance); + if (partialSum > randomCoefficient * sum) { + rolled = item; + return; + } + } + + throw new RuntimeException("Could not roll item"); + } + + /** + * The chance stat will make low weight items more + * likely to be chosen by the algorithm. + * + * @return Randomly computed item + */ + @NotNull + public T rollItem() { + return rolled; + } + + private double weightedSum(double chance) { + double sum = 0; + for (T item : collection) + sum += computeRealWeight(item, chance); + return sum; + } + + private static final double CHANCE_COEFFICIENT = 7. / 100; + + /** + * chance = 0 | tier chances are unchanged + * chance = +inf | uniform law for any drop item + * chance = 100 | all tier chances are taken their square root + * + * @return The real weight of an item considering the player's chance stat. + */ + private double computeRealWeight(T item, double chance) { + return Math.pow(item.getWeight(), 1 / Math.pow(1 + CHANCE_COEFFICIENT * chance, 1 / 3)); + } + + /* + Should this be used + private double getTierCoefficient(double initialTierChance, double chance) { + /** + * - Chance = 0 | tier coefficient is left unchanged. + * - Chance -> +oo | all tier coefficients are the same (1) + * - Chance = 50 | coefficients become their square roots + * + return Math.pow(initialTierChance, 1 / Math.pow(1 + CHANCE_COEF * chance, 1 / 3)); + }*/ +} diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/Weighted.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/Weighted.java new file mode 100644 index 00000000..4845b7a4 --- /dev/null +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/Weighted.java @@ -0,0 +1,6 @@ +package net.Indyuce.mmocore.loot; + +public interface Weighted { + + public double getWeight(); +} diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestAlgorithmOptions.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java similarity index 88% rename from src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java index de9ea2a3..0e82e44d 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/ChestTier.java @@ -2,11 +2,12 @@ package net.Indyuce.mmocore.loot.chest; import io.lumine.mythic.lib.api.math.ScalingFormula; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.loot.droptable.DropTable; import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.loot.Weighted; +import net.Indyuce.mmocore.loot.droptable.DropTable; import org.bukkit.configuration.ConfigurationSection; -public class ChestTier { +public class ChestTier implements Weighted { private final TierEffect effect; private final ScalingFormula capacity; private final DropTable table; @@ -27,6 +28,11 @@ public class ChestTier { return chance; } + @Override + public double getWeight() { + return chance; + } + public DropTable getDropTable() { return table; } diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChest.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java similarity index 85% rename from src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java index 8b39522e..07ccc933 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/LootChestRegion.java @@ -5,6 +5,7 @@ import net.Indyuce.mmocore.api.event.LootChestSpawnEvent; import net.Indyuce.mmocore.api.player.PlayerActivity; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.loot.LootBuilder; +import net.Indyuce.mmocore.loot.RandomWeightedRoll; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -124,32 +125,7 @@ public class LootChestRegion { */ @NotNull public ChestTier rollTier(PlayerData player) { - double chance = player.getStats().getStat("CHANCE") * MMOCore.plugin.configManager.lootChestsChanceWeight; - - double sum = 0; - for (ChestTier tier : tiers) - sum += getTierCoefficient(tier.getChance(), chance); - Validate.isTrue(sum > 0, "No chest tier was found"); - - double cummulated = 0; - for (ChestTier tier : tiers) { - cummulated += getTierCoefficient(tier.getChance(), chance); - if (RANDOM.nextDouble() < cummulated / sum) - return tier; - } - - throw new RuntimeException("Could not roll chest tier"); - } - - private static final double CHANCE_COEF = 7 / 100; - - /** - * - Chance = 0 | tier coefficient is left unchanged. - * - Chance -> +oo | all tier coefficients are the same (1) - * - Chance = 50 | coefficients become their square roots - */ - private double getTierCoefficient(double initialTierChance, double chance) { - return Math.pow(initialTierChance, 1 / Math.pow(1 + CHANCE_COEF * chance, 1 / 3)); + return new RandomWeightedRoll<>(player, tiers, MMOCore.plugin.configManager.lootChestsChanceWeight).rollItem(); } public Location getRandomLocation(Location center) { diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java index 1e25507b..5b5cf8de 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/RegionBounds.java @@ -2,6 +2,7 @@ package net.Indyuce.mmocore.loot.chest; import java.util.stream.Stream; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -9,8 +10,6 @@ import org.bukkit.World; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -import net.Indyuce.mmocore.api.player.PlayerData; - public class RegionBounds { private final World world; private final int x1, z1, x2, z2; diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java index cf80f6d5..d44be8b5 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/TierEffect.java @@ -1,14 +1,13 @@ package net.Indyuce.mmocore.loot.chest; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.loot.chest.particle.ChestParticleEffect; import org.apache.commons.lang.Validate; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.scheduler.BukkitRunnable; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.loot.chest.particle.ChestParticleEffect; - public class TierEffect { private final ChestParticleEffect type; private final Particle particle; diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/BiomeCondition.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/Condition.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java index 1666ee8e..02629763 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/ConditionInstance.java @@ -3,11 +3,10 @@ package net.Indyuce.mmocore.loot.chest.condition; import java.util.List; import java.util.stream.Stream; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Location; import org.bukkit.entity.Entity; -import net.Indyuce.mmocore.MMOCore; - public class ConditionInstance { private final Entity entity; private final Location applied; diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/DistanceCondition.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/LevelCondition.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/PermissionCondition.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/condition/WorldCondition.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/CastingParticle.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java index 00bb6c66..c66b5cd2 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ChestParticleEffect.java @@ -2,12 +2,11 @@ package net.Indyuce.mmocore.loot.chest.particle; import java.util.function.BiConsumer; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.scheduler.BukkitRunnable; -import net.Indyuce.mmocore.MMOCore; - public enum ChestParticleEffect { HELIX((loc, particle) -> { diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java index a1615350..c53732bf 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java @@ -2,14 +2,13 @@ package net.Indyuce.mmocore.loot.chest.particle; import java.util.function.Consumer; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -import net.Indyuce.mmocore.MMOCore; - public class ParabolicProjectile extends BukkitRunnable { private final Location target; private final Consumer display; diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java index 63a9343a..25d4e522 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java @@ -1,13 +1,12 @@ package net.Indyuce.mmocore.loot.chest.particle; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Color; import org.bukkit.Particle; import org.bukkit.entity.ThrownPotion; import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.scheduler.BukkitRunnable; -import net.Indyuce.mmocore.MMOCore; - public class PotionParticles extends BukkitRunnable { private double r, g, b; private final ThrownPotion potion; diff --git a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java index 0b0cdef5..9502604c 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/chest/particle/SmallParticleEffect.java @@ -1,12 +1,11 @@ package net.Indyuce.mmocore.loot.chest.particle; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.entity.Entity; import org.bukkit.scheduler.BukkitRunnable; -import net.Indyuce.mmocore.MMOCore; - public class SmallParticleEffect extends BukkitRunnable { private final Location loc; private final Particle particle; diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java index c8588074..ffc90a61 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/DropTable.java @@ -5,14 +5,14 @@ import java.util.List; import java.util.Set; import java.util.logging.Level; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import net.Indyuce.mmocore.loot.chest.condition.Condition; import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance; -import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.loot.LootBuilder; import io.lumine.mythic.lib.api.MMOLineConfig; import io.lumine.mythic.lib.api.util.PostLoadObject; diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java index 8febb7bb..b84e5cc3 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropItem.java @@ -2,9 +2,9 @@ package net.Indyuce.mmocore.loot.droptable.dropitem; import java.util.Random; +import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.loot.LootBuilder; -import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; import io.lumine.mythic.lib.api.MMOLineConfig; public abstract class DropItem { diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/DropTableDropItem.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/GoldDropItem.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/NoteDropItem.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/VanillaDropItem.java diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/fishing/FishingDropItem.java similarity index 86% rename from src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/fishing/FishingDropItem.java index 7762aa7b..b7ef45f4 100644 --- a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/fishing/FishingDropItem.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/loot/fishing/FishingDropItem.java @@ -1,15 +1,16 @@ -package net.Indyuce.mmocore.loot.droptable.dropitem.fishing; +package net.Indyuce.mmocore.loot.fishing; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.util.math.formula.RandomAmount; import net.Indyuce.mmocore.loot.LootBuilder; +import net.Indyuce.mmocore.loot.Weighted; import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import org.apache.commons.lang.Validate; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.Nullable; -public class FishingDropItem { +public class FishingDropItem implements Weighted { private final RandomAmount experience, tugs; private final DropItem dropItem; @@ -23,9 +24,9 @@ public class FishingDropItem { Validate.isTrue(dropItem.getWeight() > 0, "A fishing drop table item must have a strictly positive weight"); } - @Deprecated - public int getWeight() { - return (int) Math.floor(getItem().getWeight()); + @Override + public double getWeight() { + return dropItem.getWeight(); } public DropItem getItem() { diff --git a/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java index ab85face..fc1a50b9 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/AttributeManager.java @@ -6,8 +6,8 @@ import java.util.Map; import java.util.logging.Level; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.api.player.attribute.PlayerAttribute; +import net.Indyuce.mmocore.api.ConfigFile; public class AttributeManager implements MMOCoreManager { private final Map map = new HashMap<>(); diff --git a/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java similarity index 98% rename from src/main/java/net/Indyuce/mmocore/manager/ClassManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java index e94bb005..8d0356c0 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ClassManager.java @@ -1,9 +1,8 @@ package net.Indyuce.mmocore.manager; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.ClassOption; import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.player.profess.ClassOption; import net.Indyuce.mmocore.api.player.profess.event.EventTriggerHandler; import net.Indyuce.mmocore.api.player.profess.event.trigger.*; import org.apache.commons.lang.Validate; diff --git a/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java index 46439ec5..38d895ad 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigItemManager.java @@ -1,8 +1,8 @@ package net.Indyuce.mmocore.manager; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.util.item.ConfigItem; +import net.Indyuce.mmocore.api.ConfigFile; import org.bukkit.configuration.file.FileConfiguration; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java index bbf3ce55..c9ca4bbf 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ConfigManager.java @@ -27,7 +27,7 @@ public class ConfigManager { public String partyChatPrefix, noSkillBoundPlaceholder; public ChatColor staminaFull, staminaHalf, staminaEmpty; public long combatLogTimer, lootChestExpireTime, lootChestPlayerCooldown, globalSkillCooldown; - public double lootChestsChanceWeight; + public double lootChestsChanceWeight, fishingDropsChanceWeight; public int maxPartyLevelDifference; private final FileConfiguration messages; @@ -100,6 +100,7 @@ public class ConfigManager { globalSkillCooldown = MMOCore.plugin.getConfig().getLong("global-skill-cooldown") * 50; noSkillBoundPlaceholder = getSimpleMessage("no-skill-placeholder").message(); lootChestsChanceWeight = MMOCore.plugin.getConfig().getDouble("chance-stat-weight.loot-chests"); + fishingDropsChanceWeight = MMOCore.plugin.getConfig().getDouble("chance-stat-weight.fishing-drops"); maxPartyLevelDifference = MMOCore.plugin.getConfig().getInt("party.max-level-difference"); staminaFull = getColorOrDefault("stamina-whole", ChatColor.GREEN); diff --git a/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java index 00e21b48..4819eb72 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/DropTableManager.java @@ -8,12 +8,12 @@ import java.util.Set; import java.util.logging.Level; import io.lumine.mythic.lib.api.util.PostLoadObject; +import net.Indyuce.mmocore.MMOCore; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.loot.droptable.DropTable; public class DropTableManager implements MMOCoreManager { diff --git a/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java index 3f941a7b..c84ecbd1 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/ExperienceManager.java @@ -1,110 +1,110 @@ -package net.Indyuce.mmocore.manager; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; -import net.Indyuce.mmocore.experience.ExpCurve; -import net.Indyuce.mmocore.experience.droptable.ExperienceTable; -import net.Indyuce.mmocore.experience.source.type.ExperienceSource; -import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; -import org.apache.commons.lang.Validate; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.event.HandlerList; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.logging.Level; - -public class ExperienceManager implements MMOCoreManager { - private final Map expCurves = new HashMap<>(); - private final Map expTables = new HashMap<>(); - - /** - * Saves different experience sources based on experience source type. - */ - private final Map, ExperienceSourceManager> managers = new HashMap<>(); - - @SuppressWarnings("unchecked") - public ExperienceSourceManager getManager(Class t) { - return (ExperienceSourceManager) managers.get(t); - } - - @SuppressWarnings("unchecked") - public void registerSource(T source) { - Class path = (Class) source.getClass(); - - if (!managers.containsKey(path)) - managers.put(path, source.newManager()); - getManager(path).registerSource(source); - } - - public boolean hasCurve(String id) { - return expCurves.containsKey(id); - } - - public ExpCurve getCurveOrThrow(String id) { - Validate.isTrue(hasCurve(id), "Could not find exp curve with ID '" + id + "'"); - return expCurves.get(id); - } - - public boolean hasTable(String id) { - return expTables.containsKey(id); - } - - public ExperienceTable getTableOrThrow(String id) { - return Objects.requireNonNull(expTables.get(id), "Could not find exp table with ID '" + id + "'"); - } - - public ExperienceTable loadExperienceTable(Object obj) { - - if (obj instanceof ConfigurationSection) - return new ExperienceTable((ConfigurationSection) obj); - - if (obj instanceof String) - return MMOCore.plugin.experience.getTableOrThrow(obj.toString()); - - throw new IllegalArgumentException("Please provide either a string (exp table name) or a config section (locally define an exp table)"); - } - - public Collection getCurves() { - return expCurves.values(); - } - - public Collection getTables() { - return expTables.values(); - } - - @Override - public void initialize(boolean clearBefore) { - if (clearBefore) { - expCurves.clear(); - expTables.clear(); - - managers.values().forEach(HandlerList::unregisterAll); - managers.clear(); - } - - expCurves.clear(); - for (File file : new File(MMOCore.plugin.getDataFolder() + "/expcurves").listFiles()) - try { - ExpCurve curve = new ExpCurve(file); - expCurves.put(curve.getId(), curve); - } catch (IllegalArgumentException | IOException exception) { - MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp curve '" + file.getName() + "': " + exception.getMessage()); - } - - expTables.clear(); - FileConfiguration expTablesConfig = new ConfigFile("exp-tables").getConfig(); - for (String key : expTablesConfig.getKeys(false)) - try { - ExperienceTable table = new ExperienceTable(expTablesConfig.getConfigurationSection(key)); - expTables.put(table.getId(), table); - } catch (RuntimeException exception) { - MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp table '" + key + "': " + exception.getMessage()); - } - } -} +package net.Indyuce.mmocore.manager; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.experience.droptable.ExperienceTable; +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.experience.ExpCurve; +import net.Indyuce.mmocore.experience.source.type.ExperienceSource; +import net.Indyuce.mmocore.manager.profession.ExperienceSourceManager; +import org.apache.commons.lang.Validate; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.event.HandlerList; + +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.logging.Level; + +public class ExperienceManager implements MMOCoreManager { + private final Map expCurves = new HashMap<>(); + private final Map expTables = new HashMap<>(); + + /** + * Saves different experience sources based on experience source type. + */ + private final Map, ExperienceSourceManager> managers = new HashMap<>(); + + @SuppressWarnings("unchecked") + public ExperienceSourceManager getManager(Class t) { + return (ExperienceSourceManager) managers.get(t); + } + + @SuppressWarnings("unchecked") + public void registerSource(T source) { + Class path = (Class) source.getClass(); + + if (!managers.containsKey(path)) + managers.put(path, source.newManager()); + getManager(path).registerSource(source); + } + + public boolean hasCurve(String id) { + return expCurves.containsKey(id); + } + + public ExpCurve getCurveOrThrow(String id) { + Validate.isTrue(hasCurve(id), "Could not find exp curve with ID '" + id + "'"); + return expCurves.get(id); + } + + public boolean hasTable(String id) { + return expTables.containsKey(id); + } + + public ExperienceTable getTableOrThrow(String id) { + return Objects.requireNonNull(expTables.get(id), "Could not find exp table with ID '" + id + "'"); + } + + public ExperienceTable loadExperienceTable(Object obj) { + + if (obj instanceof ConfigurationSection) + return new ExperienceTable((ConfigurationSection) obj); + + if (obj instanceof String) + return MMOCore.plugin.experience.getTableOrThrow(obj.toString()); + + throw new IllegalArgumentException("Please provide either a string (exp table name) or a config section (locally define an exp table)"); + } + + public Collection getCurves() { + return expCurves.values(); + } + + public Collection getTables() { + return expTables.values(); + } + + @Override + public void initialize(boolean clearBefore) { + if (clearBefore) { + expCurves.clear(); + expTables.clear(); + + managers.values().forEach(HandlerList::unregisterAll); + managers.clear(); + } + + expCurves.clear(); + for (File file : new File(MMOCore.plugin.getDataFolder() + "/expcurves").listFiles()) + try { + ExpCurve curve = new ExpCurve(file); + expCurves.put(curve.getId(), curve); + } catch (IllegalArgumentException | IOException exception) { + MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp curve '" + file.getName() + "': " + exception.getMessage()); + } + + expTables.clear(); + FileConfiguration expTablesConfig = new ConfigFile("exp-tables").getConfig(); + for (String key : expTablesConfig.getKeys(false)) + try { + ExperienceTable table = new ExperienceTable(expTablesConfig.getConfigurationSection(key)); + expTables.put(table.getId(), table); + } catch (RuntimeException exception) { + MMOCore.plugin.getLogger().log(Level.WARNING, "Could not load exp table '" + key + "': " + exception.getMessage()); + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java index 46b9a8f6..a5a6beb0 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/InventoryManager.java @@ -5,23 +5,23 @@ import java.util.List; import java.util.logging.Level; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.gui.AttributeView; -import net.Indyuce.mmocore.gui.ClassConfirmation; -import net.Indyuce.mmocore.gui.ClassSelect; -import net.Indyuce.mmocore.gui.PlayerStats; -import net.Indyuce.mmocore.gui.QuestViewer; import net.Indyuce.mmocore.gui.SkillList; -import net.Indyuce.mmocore.gui.SubclassConfirmation; -import net.Indyuce.mmocore.gui.SubclassSelect; import net.Indyuce.mmocore.gui.WaypointViewer; -import net.Indyuce.mmocore.gui.api.EditableInventory; import net.Indyuce.mmocore.gui.social.friend.EditableFriendList; import net.Indyuce.mmocore.gui.social.friend.EditableFriendRemoval; import net.Indyuce.mmocore.gui.social.guild.EditableGuildCreation; import net.Indyuce.mmocore.gui.social.guild.EditableGuildView; import net.Indyuce.mmocore.gui.social.party.EditablePartyCreation; import net.Indyuce.mmocore.gui.social.party.EditablePartyView; +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.gui.ClassConfirmation; +import net.Indyuce.mmocore.gui.ClassSelect; +import net.Indyuce.mmocore.gui.PlayerStats; +import net.Indyuce.mmocore.gui.QuestViewer; +import net.Indyuce.mmocore.gui.SubclassConfirmation; +import net.Indyuce.mmocore.gui.SubclassSelect; +import net.Indyuce.mmocore.gui.api.EditableInventory; public class InventoryManager { public static final PlayerStats PLAYER_STATS = new PlayerStats(); diff --git a/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java index 96317c16..090f188f 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/LootChestManager.java @@ -1,82 +1,82 @@ -package net.Indyuce.mmocore.manager; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; -import net.Indyuce.mmocore.loot.chest.LootChest; -import net.Indyuce.mmocore.loot.chest.LootChestRegion; -import net.Indyuce.mmocore.util.HashableLocation; -import org.bukkit.Location; -import org.bukkit.configuration.file.FileConfiguration; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.logging.Level; - -public class LootChestManager implements MMOCoreManager { - - /** - * Active loot chests in the server - */ - private final Map active = new HashMap<>(); - - /** - * Registered loot chest regions - */ - private final Map regions = new HashMap<>(); - - public boolean hasRegion(String id) { - return regions.containsKey(id); - } - - /** - * @return Region with specific identifier - * @throws NullPointerException if not found - */ - @NotNull - public LootChestRegion getRegion(String id) { - return Objects.requireNonNull(regions.get(id), "Could not find region with ID '" + id + "'"); - } - - public Collection getRegions() { - return regions.values(); - } - - public Collection getActive() { - return active.values(); - } - - public void register(LootChest chest) { - active.put(chest.getBlock().getLocation(), chest); - } - - public void unregister(LootChest chest) { - active.remove(chest.getBlock().getLocation()); - } - - @Nullable - public LootChest getChest(Location loc) { - return active.get(new HashableLocation(loc)); - } - - @Override - public void initialize(boolean clearBefore) { - if (clearBefore) { - regions.values().forEach(region -> region.getRunnable().cancel()); - regions.clear(); - } - - FileConfiguration config = new ConfigFile("loot-chests").getConfig(); - for (String key : config.getKeys(false)) - try { - LootChestRegion region = new LootChestRegion(config.getConfigurationSection(key)); - regions.put(region.getId(), region); - } catch (IllegalArgumentException exception) { - MMOCore.plugin.getLogger().log(Level.WARNING, - "An error occured while trying to load loot chest region '" + key + "': " + exception.getMessage()); - } - } -} +package net.Indyuce.mmocore.manager; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.loot.chest.LootChest; +import net.Indyuce.mmocore.loot.chest.LootChestRegion; +import net.Indyuce.mmocore.util.HashableLocation; +import org.bukkit.Location; +import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.logging.Level; + +public class LootChestManager implements MMOCoreManager { + + /** + * Active loot chests in the server + */ + private final Map active = new HashMap<>(); + + /** + * Registered loot chest regions + */ + private final Map regions = new HashMap<>(); + + public boolean hasRegion(String id) { + return regions.containsKey(id); + } + + /** + * @return Region with specific identifier + * @throws NullPointerException if not found + */ + @NotNull + public LootChestRegion getRegion(String id) { + return Objects.requireNonNull(regions.get(id), "Could not find region with ID '" + id + "'"); + } + + public Collection getRegions() { + return regions.values(); + } + + public Collection getActive() { + return active.values(); + } + + public void register(LootChest chest) { + active.put(chest.getBlock().getLocation(), chest); + } + + public void unregister(LootChest chest) { + active.remove(chest.getBlock().getLocation()); + } + + @Nullable + public LootChest getChest(Location loc) { + return active.get(new HashableLocation(loc)); + } + + @Override + public void initialize(boolean clearBefore) { + if (clearBefore) { + regions.values().forEach(region -> region.getRunnable().cancel()); + regions.clear(); + } + + FileConfiguration config = new ConfigFile("loot-chests").getConfig(); + for (String key : config.getKeys(false)) + try { + LootChestRegion region = new LootChestRegion(config.getConfigurationSection(key)); + regions.put(region.getId(), region); + } catch (IllegalArgumentException exception) { + MMOCore.plugin.getLogger().log(Level.WARNING, + "An error occured while trying to load loot chest region '" + key + "': " + exception.getMessage()); + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOCoreManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java index 30f506d4..15c49d03 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/MMOLoadManager.java @@ -4,20 +4,20 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Function; +import net.Indyuce.mmocore.api.block.BlockType; +import net.Indyuce.mmocore.api.quest.trigger.Trigger; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; import com.google.gson.JsonParseException; -import net.Indyuce.mmocore.api.block.BlockType; import net.Indyuce.mmocore.loot.chest.condition.Condition; import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; import net.Indyuce.mmocore.api.load.DefaultMMOLoader; import net.Indyuce.mmocore.api.load.MMOLoader; import net.Indyuce.mmocore.api.quest.objective.Objective; -import net.Indyuce.mmocore.api.quest.trigger.Trigger; import io.lumine.mythic.lib.api.MMOLineConfig; public class MMOLoadManager { diff --git a/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java similarity index 99% rename from src/main/java/net/Indyuce/mmocore/manager/QuestManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java index 31768d61..44ca127f 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/QuestManager.java @@ -7,11 +7,10 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.logging.Level; -import org.apache.commons.lang.Validate; -import org.bukkit.configuration.file.YamlConfiguration; - import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.quest.Quest; +import org.apache.commons.lang.Validate; +import org.bukkit.configuration.file.YamlConfiguration; public class QuestManager implements MMOCoreManager { private final Map quests = new LinkedHashMap<>(); diff --git a/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java index 503a2b95..4d06cdc6 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/RestrictionManager.java @@ -5,8 +5,8 @@ import io.lumine.mythic.lib.api.MMOLineConfig; import io.lumine.mythic.lib.api.itemtype.ItemType; import io.lumine.mythic.lib.api.util.PostLoadObject; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.api.block.BlockType; +import net.Indyuce.mmocore.api.ConfigFile; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; diff --git a/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/SkillManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java index 25a6d67b..2f95fdb1 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillManager.java @@ -2,13 +2,13 @@ package net.Indyuce.mmocore.manager; import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.skill.handler.SkillHandler; +import net.Indyuce.mmocore.skill.list.Sneaky_Picky; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.api.util.MMOCoreUtils; import net.Indyuce.mmocore.skill.RegisteredSkill; import net.Indyuce.mmocore.skill.list.Ambers; import net.Indyuce.mmocore.skill.list.Neptune_Gift; -import net.Indyuce.mmocore.skill.list.Sneaky_Picky; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SkillTreeManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/SoundManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SoundManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/SoundManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/SoundManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/StatManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/StatManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/StatManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/StatManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java index 97bb5a00..5ae15590 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/WaypointManager.java @@ -1,8 +1,8 @@ package net.Indyuce.mmocore.manager; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; import net.Indyuce.mmocore.waypoint.Waypoint; +import net.Indyuce.mmocore.api.ConfigFile; import org.apache.commons.lang.Validate; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java index 1114a86a..e992a5cd 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/DataProvider.java @@ -1,15 +1,15 @@ -package net.Indyuce.mmocore.manager.data; - -/** - * Used to separate MySQL data storage from YAML data storage. - *

- * There is one data provider per storage mecanism (one for YAML, one for MySQL). - * A data provider provides corresponding MMOManagers to correctly save and load - * data - */ -public interface DataProvider { - - PlayerDataManager getDataManager(); - - GuildDataManager getGuildManager(); -} +package net.Indyuce.mmocore.manager.data; + +/** + * Used to separate MySQL data storage from YAML data storage. + *

+ * There is one data provider per storage mecanism (one for YAML, one for MySQL). + * A data provider provides corresponding MMOManagers to correctly save and load + * data + */ +public interface DataProvider { + + PlayerDataManager getDataManager(); + + GuildDataManager getGuildManager(); +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java index 1c3a8f43..a8a6bfe6 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/GuildDataManager.java @@ -1,127 +1,127 @@ -package net.Indyuce.mmocore.manager.data; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.FileConfiguration; - -import net.Indyuce.mmocore.api.ConfigFile; -import net.Indyuce.mmocore.guild.provided.Guild; - -public abstract class GuildDataManager { - protected final Map guilds = new HashMap<>(); - - public Guild newRegisteredGuild(UUID owner, String name, String tag) { - Guild guild = new Guild(owner, name, tag); - registerGuild(guild); - return guild; - } - - public void registerGuild(Guild guild) { - guilds.put(guild.getId(), guild); - } - - public boolean isRegistered(Guild guild) { - return guilds.containsValue(guild); - } - - public boolean isRegistered(String tag) { - return guilds.containsKey(tag); - } - - public void unregisterGuild(Guild guild) { - guild.forEachMember(member -> guild.removeMember(member, true)); - // guild.getMembers().clear(); - guilds.remove(guild.getId()); - delete(guild); - } - - public Guild getGuild(String guild) { - return guilds.get(guild); - } - - public Collection getAll() { - return guilds.values(); - } - - @Deprecated - public void reload() { - for (Guild guild : guilds.values()) - save(guild); - guilds.clear(); - load(); - config = new GuildConfiguration(); - } - - public abstract void save(Guild guild); - - // TODO move to constructor, useless to handle vie abstract method - public abstract void load(); - - public abstract void delete(Guild guild); - - // TODO fix this - // Shitty code for loading config values for guilds. - private GuildConfiguration config; - - public GuildConfiguration getConfig() { - return config == null ? config = new GuildConfiguration() : config; - } - - public static class GuildConfiguration { - private final String prefix; - private final boolean uppercaseTags; - private final NamingRules tagRules, nameRules; - - public GuildConfiguration() { - FileConfiguration config = new ConfigFile("guilds").getConfig(); - - this.prefix = config.getString("chat-prefix", "*"); - this.uppercaseTags = config.getBoolean("uppercase-tags", true); - this.tagRules = new NamingRules(config.getConfigurationSection("rules.tag")); - this.nameRules = new NamingRules(config.getConfigurationSection("rules.name")); - } - - public String getPrefix() { - return prefix; - } - - public boolean shouldUppercaseTags() { - return uppercaseTags; - } - - public NamingRules getTagRules() { - return tagRules; - } - - public NamingRules getNameRules() { - return nameRules; - } - - public static class NamingRules { - private final String regex; - private final int min, max; - - public NamingRules(ConfigurationSection config) { - regex = config.getString("matches", "[a-zA-Z-_!?]+"); - min = config.getInt("min-length", 3); - max = config.getInt("max-length", 5); - } - - public String getRegex() { - return regex; - } - - public int getMin() { - return min; - } - - public int getMax() { - return max; - } - } - } -} +package net.Indyuce.mmocore.manager.data; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; + +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.guild.provided.Guild; + +public abstract class GuildDataManager { + protected final Map guilds = new HashMap<>(); + + public Guild newRegisteredGuild(UUID owner, String name, String tag) { + Guild guild = new Guild(owner, name, tag); + registerGuild(guild); + return guild; + } + + public void registerGuild(Guild guild) { + guilds.put(guild.getId(), guild); + } + + public boolean isRegistered(Guild guild) { + return guilds.containsValue(guild); + } + + public boolean isRegistered(String tag) { + return guilds.containsKey(tag); + } + + public void unregisterGuild(Guild guild) { + guild.forEachMember(member -> guild.removeMember(member, true)); + // guild.getMembers().clear(); + guilds.remove(guild.getId()); + delete(guild); + } + + public Guild getGuild(String guild) { + return guilds.get(guild); + } + + public Collection getAll() { + return guilds.values(); + } + + @Deprecated + public void reload() { + for (Guild guild : guilds.values()) + save(guild); + guilds.clear(); + load(); + config = new GuildConfiguration(); + } + + public abstract void save(Guild guild); + + // TODO move to constructor, useless to handle vie abstract method + public abstract void load(); + + public abstract void delete(Guild guild); + + // TODO fix this + // Shitty code for loading config values for guilds. + private GuildConfiguration config; + + public GuildConfiguration getConfig() { + return config == null ? config = new GuildConfiguration() : config; + } + + public static class GuildConfiguration { + private final String prefix; + private final boolean uppercaseTags; + private final NamingRules tagRules, nameRules; + + public GuildConfiguration() { + FileConfiguration config = new ConfigFile("guilds").getConfig(); + + this.prefix = config.getString("chat-prefix", "*"); + this.uppercaseTags = config.getBoolean("uppercase-tags", true); + this.tagRules = new NamingRules(config.getConfigurationSection("rules.tag")); + this.nameRules = new NamingRules(config.getConfigurationSection("rules.name")); + } + + public String getPrefix() { + return prefix; + } + + public boolean shouldUppercaseTags() { + return uppercaseTags; + } + + public NamingRules getTagRules() { + return tagRules; + } + + public NamingRules getNameRules() { + return nameRules; + } + + public static class NamingRules { + private final String regex; + private final int min, max; + + public NamingRules(ConfigurationSection config) { + regex = config.getString("matches", "[a-zA-Z-_!?]+"); + min = config.getInt("min-length", 3); + max = config.getInt("max-length", 5); + } + + public String getRegex() { + return regex; + } + + public int getMin() { + return min; + } + + public int getMax() { + return max; + } + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java similarity index 63% rename from src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java index 20549d26..ef1745bd 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/PlayerDataManager.java @@ -1,188 +1,254 @@ -package net.Indyuce.mmocore.manager.data; - -import io.lumine.mythic.lib.api.player.MMOPlayerData; -import io.lumine.mythic.lib.player.TemporaryPlayerData; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.event.AsyncPlayerDataLoadEvent; -import net.Indyuce.mmocore.api.event.PlayerDataLoadEvent; -import net.Indyuce.mmocore.api.player.OfflinePlayerData; -import net.Indyuce.mmocore.api.player.PlayerData; -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.configuration.ConfigurationSection; -import org.jetbrains.annotations.NotNull; - -import java.util.*; - -public abstract class PlayerDataManager { - private final static Map data = Collections.synchronizedMap(new HashMap<>()); - - private DefaultPlayerData defaultData = new DefaultPlayerData(1, 0, 0, 0, 0); - - public PlayerData get(OfflinePlayer player) { - return get(player.getUniqueId()); - } - - /** - * Gets the player data, or throws an exception if not found. - * The player data should be loaded when the player logs in - * so it's really bad practice to setup the player data if it's not loaded. - * - * @param uuid Player UUID - * @return Player data, if it's loaded - */ - public PlayerData get(UUID uuid) { - return Objects.requireNonNull(data.get(uuid), "Player data is not loaded"); - } - - /** - * Safely unregisters the player data from the map. - * This saves the player data either through SQL or YAML, - * then closes the player data and clears it from the data map. - * - * @param playerData PLayer data to unregister - */ - public void unregisterSafe(PlayerData playerData) { - - // Save data async if required - if (playerData.isFullyLoaded()) - Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> { - saveData(playerData); - - // Unregister once the data was saved - playerData.close(); - data.remove(playerData.getUniqueId()); - }); - - // Just unregister data without saving - else { - playerData.close(); - data.remove(playerData.getUniqueId()); - } - } - - /** - * Offline player data is used to handle processes like friend removal - * which can still occur if one of the two players is offline. - *

- * Unlike {@link #get(UUID)} this method never returns a null instance - * - * @param uuid Player unique id - * @return Offline player data - */ - @NotNull - public abstract OfflinePlayerData getOffline(UUID uuid); - - /** - * Called when a player logs in, loading the player data inside the map. - *

- * For YAML configs or SQL databases, data is loaded as not to overload - * the main thread with SQL requests. Therefore, the player data returned - * by that method, when the player joined for the first time, is not - * fully loaded YET. - * - * @param uniqueId Player UUID - * @return The loaded player data. - */ - public PlayerData setup(UUID uniqueId) { - // Load player data if it does not exist - if (!data.containsKey(uniqueId)) { - PlayerData newData = TemporaryPlayerData.has(uniqueId) ? new PlayerData(MMOPlayerData.get(uniqueId), TemporaryPlayerData.get(uniqueId)) : new PlayerData(MMOPlayerData.get(uniqueId)); - - // Schedule async data loading - Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> { - loadData(newData); - newData.getStats().updateStats(); - Bukkit.getPluginManager().callEvent(new AsyncPlayerDataLoadEvent(newData)); - Bukkit.getScheduler().runTask(MMOCore.plugin, () -> Bukkit.getPluginManager().callEvent(new PlayerDataLoadEvent(newData))); - }); - - // Update data map - data.put(uniqueId, newData); - - return newData; - } - - return data.get(uniqueId); - } - - public DefaultPlayerData getDefaultData() { - return defaultData; - } - - public void loadDefaultData(ConfigurationSection config) { - defaultData = new DefaultPlayerData(config); - } - - public boolean isLoaded(UUID uuid) { - return data.containsKey(uuid); - } - - public Collection getLoaded() { - return data.values(); - } - - /** - * Called when player data must be loaded from database or config. - * - * @param data Player data to load - */ - public abstract void loadData(PlayerData data); - - /** - * Called when player data must be saved in configs or database. - * This method should always be called sync because it DOES register - * an async task in case MySQL storage is used. - * - * @param data Player data to save - */ - public abstract void saveData(PlayerData data); - - public class DefaultPlayerData { - private final int level, classPoints, skillPoints, attributePoints, attrReallocPoints; - - public DefaultPlayerData(ConfigurationSection config) { - level = config.getInt("level", 1); - classPoints = config.getInt("class-points"); - skillPoints = config.getInt("skill-points"); - attributePoints = config.getInt("attribute-points"); - attrReallocPoints = config.getInt("attribute-realloc-points"); - } - - public DefaultPlayerData(int level, int classPoints, int skillPoints, int attributePoints, int attrReallocPoints) { - this.level = level; - this.classPoints = classPoints; - this.skillPoints = skillPoints; - this.attributePoints = attributePoints; - this.attrReallocPoints = attrReallocPoints; - } - - public int getLevel() { - return level; - } - - public int getSkillPoints() { - return skillPoints; - } - - public int getClassPoints() { - return classPoints; - } - - public int getAttrReallocPoints() { - return attrReallocPoints; - } - - public int getAttributePoints() { - return attributePoints; - } - - public void apply(PlayerData player) { - player.setLevel(level); - player.setClassPoints(classPoints); - player.setSkillPoints(skillPoints); - player.setAttributePoints(attributePoints); - player.setAttributeReallocationPoints(attrReallocPoints); - } - } -} +package net.Indyuce.mmocore.manager.data; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import io.lumine.mythic.lib.MythicLib; +import io.lumine.mythic.lib.api.player.MMOPlayerData; +import io.lumine.mythic.lib.player.TemporaryPlayerData; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.event.AsyncPlayerDataLoadEvent; +import net.Indyuce.mmocore.api.event.PlayerDataLoadEvent; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.player.OfflinePlayerData; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; +import net.Indyuce.mmocore.api.util.MMOCoreUtils; +import net.Indyuce.mmocore.guild.provided.Guild; +import org.apache.commons.lang.Validate; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.configuration.ConfigurationSection; +import org.jetbrains.annotations.NotNull; + +import java.util.*; +import java.util.logging.Level; + +public abstract class PlayerDataManager { + private final static Map data = Collections.synchronizedMap(new HashMap<>()); + + private DefaultPlayerData defaultData = new DefaultPlayerData(1, 0, 0, 0, 0); + + public PlayerData get(OfflinePlayer player) { + return get(player.getUniqueId()); + } + + /** + * Gets the player data, or throws an exception if not found. + * The player data should be loaded when the player logs in + * so it's really bad practice to setup the player data if it's not loaded. + * + * @param uuid Player UUID + * @return Player data, if it's loaded + */ + public PlayerData get(UUID uuid) { + return Objects.requireNonNull(data.get(uuid), "Player data is not loaded"); + } + + + public static void loadDataFromJson(PlayerData data, String json) { + JsonObject object = MythicLib.plugin.getJson().parse(json, JsonObject.class); + + data.setClassPoints(object.get("class_points").getAsInt()); + data.setSkillPoints(object.get("skill_points").getAsInt()); + data.setAttributePoints(object.get("attribute_points").getAsInt()); + data.setAttributeReallocationPoints(object.get("attribute_realloc_points").getAsInt()); + data.setLevel(object.get("level").getAsInt()); + data.setExperience(object.get("experience").getAsInt()); + if (object.has("class")) + data.setClass(MMOCore.plugin.classManager.get(object.get(("class")).getAsString())); + + if (object.has("times_claimed")) { + JsonObject timesClaimed =object.get(("times_claimed")).getAsJsonObject(); + timesClaimed.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt())); + } + + if (object.has(("guild"))) { + Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(object.get("guild").getAsString()); + data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null); + } + if (object.has(("attributes"))) data.getAttributes().load(object.get("attributes").getAsString()); + if (object.has(("professions"))) + data.getCollectionSkills().load(object.get("professions").getAsString()); + if (object.has(("quests"))) data.getQuestData().load(object.get("quests").getAsString()); + data.getQuestData().updateBossBar(); + if (object.has(("waypoints"))) + data.getWaypoints().addAll(MMOCoreUtils.jsonArrayToList(object.get("waypoints").getAsString())); + if (object.has(("friends"))) + MMOCoreUtils.jsonArrayToList(object.get("friends").getAsString()).forEach(str -> data.getFriends().add(UUID.fromString(str))) + ; + if (object.has(("skills"))) { + JsonObject skillsObject = object.get("skills").getAsJsonObject(); + for (Map.Entry entry : skillsObject.entrySet()) + data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt()); + } + if (object.has(("bound_skills"))) + for (String skill : MMOCoreUtils.jsonArrayToList(object.get("bound_skills").getAsString())) + if (data.getProfess().hasSkill(skill)) + data.getBoundSkills().add(data.getProfess().getSkill(skill)); + if (object.has(("class_info"))) { + JsonObject classObject = object.get("class_info").getAsJsonObject(); + for (Map.Entry entry : classObject.entrySet()) { + try { + PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey()); + Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'"); + data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject())); + } catch (IllegalArgumentException exception) { + MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage()); + } + } + } + + } + + + /** + * Safely unregisters the player data from the map. + * This saves the player data either through SQL or YAML, + * then closes the player data and clears it from the data map. + * + * @param playerData PLayer data to unregister + */ + public void unregisterSafe(PlayerData playerData) { + + // Save data async if required + if (playerData.isFullyLoaded()) + Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> { + saveData(playerData); + + // Unregister once the data was saved + playerData.close(); + data.remove(playerData.getUniqueId()); + }); + + // Just unregister data without saving + else { + playerData.close(); + data.remove(playerData.getUniqueId()); + } + } + + /** + * Offline player data is used to handle processes like friend removal + * which can still occur if one of the two players is offline. + *

+ * Unlike {@link #get(UUID)} this method never returns a null instance + * + * @param uuid Player unique id + * @return Offline player data + */ + @NotNull + public abstract OfflinePlayerData getOffline(UUID uuid); + + /** + * Called when a player logs in, loading the player data inside the map. + *

+ * For YAML configs or SQL databases, data is loaded as not to overload + * the main thread with SQL requests. Therefore, the player data returned + * by that method, when the player joined for the first time, is not + * fully loaded YET. + * + * @param uniqueId Player UUID + * @return The loaded player data. + */ + public PlayerData setup(UUID uniqueId) { + // Load player data if it does not exist + if (!data.containsKey(uniqueId)) { + PlayerData newData = TemporaryPlayerData.has(uniqueId) ? new PlayerData(MMOPlayerData.get(uniqueId), TemporaryPlayerData.get(uniqueId)) : new PlayerData(MMOPlayerData.get(uniqueId)); + + // Schedule async data loading + Bukkit.getScheduler().runTaskAsynchronously(MMOCore.plugin, () -> { + loadData(newData); + newData.getStats().updateStats(); + Bukkit.getPluginManager().callEvent(new AsyncPlayerDataLoadEvent(newData)); + Bukkit.getScheduler().runTask(MMOCore.plugin, () -> Bukkit.getPluginManager().callEvent(new PlayerDataLoadEvent(newData))); + }); + + // Update data map + data.put(uniqueId, newData); + + return newData; + } + + return data.get(uniqueId); + } + + public DefaultPlayerData getDefaultData() { + return defaultData; + } + + public void loadDefaultData(ConfigurationSection config) { + defaultData = new DefaultPlayerData(config); + } + + public boolean isLoaded(UUID uuid) { + return data.containsKey(uuid); + } + + public Collection getLoaded() { + return data.values(); + } + + /** + * Called when player data must be loaded from database or config. + * + * @param data Player data to load + */ + public abstract void loadData(PlayerData data); + + /** + * Called when player data must be saved in configs or database. + * This method should always be called sync because it DOES register + * an async task in case MySQL storage is used. + * + * @param data Player data to save + */ + public abstract void saveData(PlayerData data); + + public class DefaultPlayerData { + private final int level, classPoints, skillPoints, attributePoints, attrReallocPoints; + + public DefaultPlayerData(ConfigurationSection config) { + level = config.getInt("level", 1); + classPoints = config.getInt("class-points"); + skillPoints = config.getInt("skill-points"); + attributePoints = config.getInt("attribute-points"); + attrReallocPoints = config.getInt("attribute-realloc-points"); + } + + public DefaultPlayerData(int level, int classPoints, int skillPoints, int attributePoints, int attrReallocPoints) { + this.level = level; + this.classPoints = classPoints; + this.skillPoints = skillPoints; + this.attributePoints = attributePoints; + this.attrReallocPoints = attrReallocPoints; + } + + public int getLevel() { + return level; + } + + public int getSkillPoints() { + return skillPoints; + } + + public int getClassPoints() { + return classPoints; + } + + public int getAttrReallocPoints() { + return attrReallocPoints; + } + + public int getAttributePoints() { + return attributePoints; + } + + public void apply(PlayerData player) { + player.setLevel(level); + player.setClassPoints(classPoints); + player.setSkillPoints(skillPoints); + player.setAttributePoints(attributePoints); + player.setAttributeReallocationPoints(attrReallocPoints); + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java index e720ab8f..b4917974 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLDataProvider.java @@ -1,57 +1,57 @@ -package net.Indyuce.mmocore.manager.data.mysql; - -import io.lumine.mythic.lib.sql.MMODataSource; -import net.Indyuce.mmocore.manager.data.DataProvider; -import net.Indyuce.mmocore.manager.data.GuildDataManager; -import net.Indyuce.mmocore.manager.data.PlayerDataManager; -import net.Indyuce.mmocore.manager.data.yaml.YAMLGuildDataManager; -import org.bukkit.configuration.file.FileConfiguration; - -public class MySQLDataProvider extends MMODataSource implements DataProvider { - private final MySQLPlayerDataManager playerManager = new MySQLPlayerDataManager(this); - private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager(); - - public MySQLDataProvider(FileConfiguration config) { - this.setup(config); - } - - @Override - public void load() { - - - /*TODO - also move Debug function to mysql data provider - - String tableName = getPoolName(); -getResultAsync("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" +getPoolName()+ "' AND TABLE_NAME = 'mmocore_playerdata' AND COLUMN_NAME = 'times_claimed'", - result -> { - if (!result.next()) - executeUpdateAsync() - }): - executeUpdateAsync(); - - - if (!provider.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + provider.getDatabase() - + "' AND TABLE_NAME = '" + provider.getBountyDataTable() + "' AND COLUMN_NAME = 'last_updated'").executeQuery().next()) - provider.prepareStatement("ALTER TABLE " + provider.getBountyDataTable() + " ADD COLUMN last_updated BIGINT").execute();*/ - - executeUpdateAsync( - "CREATE TABLE IF NOT EXISTS mmocore_playerdata(uuid VARCHAR(36),class_points " - + "INT(11) DEFAULT 0,skill_points INT(11) DEFAULT 0,attribute_points INT(11) " - + "DEFAULT 0,attribute_realloc_points INT(11) DEFAULT 0,level INT(11) DEFAULT 1," - + "experience INT(11) DEFAULT 0,class VARCHAR(20),guild VARCHAR(20),last_login LONG," - + "attributes LONGTEXT,professions LONGTEXT,times_claimed LONGTEXT,quests LONGTEXT," - + "waypoints LONGTEXT,friends LONGTEXT,skills LONGTEXT,bound_skills LONGTEXT," - + "class_info LONGTEXT,PRIMARY KEY (uuid));"); - } - - @Override - public PlayerDataManager getDataManager() { - return playerManager; - } - - @Override - public GuildDataManager getGuildManager() { - return guildManager; - } -} +package net.Indyuce.mmocore.manager.data.mysql; + +import io.lumine.mythic.lib.sql.MMODataSource; +import net.Indyuce.mmocore.manager.data.DataProvider; +import net.Indyuce.mmocore.manager.data.GuildDataManager; +import net.Indyuce.mmocore.manager.data.PlayerDataManager; +import net.Indyuce.mmocore.manager.data.yaml.YAMLGuildDataManager; +import org.bukkit.configuration.file.FileConfiguration; + +public class MySQLDataProvider extends MMODataSource implements DataProvider { + private final MySQLPlayerDataManager playerManager = new MySQLPlayerDataManager(this); + private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager(); + + public MySQLDataProvider(FileConfiguration config) { + this.setup(config); + } + + @Override + public void load() { + + + /*TODO + also move Debug function to mysql data provider + + String tableName = getPoolName(); +getResultAsync("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" +getPoolName()+ "' AND TABLE_NAME = 'mmocore_playerdata' AND COLUMN_NAME = 'times_claimed'", + result -> { + if (!result.next()) + executeUpdateAsync() + }): + executeUpdateAsync(); + + + if (!provider.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '" + provider.getDatabase() + + "' AND TABLE_NAME = '" + provider.getBountyDataTable() + "' AND COLUMN_NAME = 'last_updated'").executeQuery().next()) + provider.prepareStatement("ALTER TABLE " + provider.getBountyDataTable() + " ADD COLUMN last_updated BIGINT").execute();*/ + + executeUpdateAsync( + "CREATE TABLE IF NOT EXISTS mmocore_playerdata(uuid VARCHAR(36),class_points " + + "INT(11) DEFAULT 0,skill_points INT(11) DEFAULT 0,attribute_points INT(11) " + + "DEFAULT 0,attribute_realloc_points INT(11) DEFAULT 0,level INT(11) DEFAULT 1," + + "experience INT(11) DEFAULT 0,class VARCHAR(20),guild VARCHAR(20),last_login LONG," + + "attributes LONGTEXT,professions LONGTEXT,times_claimed LONGTEXT,quests LONGTEXT," + + "waypoints LONGTEXT,friends LONGTEXT,skills LONGTEXT,bound_skills LONGTEXT," + + "class_info LONGTEXT, PRIMARY KEY (uuid));"); + } + + @Override + public PlayerDataManager getDataManager() { + return playerManager; + } + + @Override + public GuildDataManager getGuildManager() { + return guildManager; + } +} diff --git a/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java new file mode 100644 index 00000000..f8d77bba --- /dev/null +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java @@ -0,0 +1,260 @@ +package net.Indyuce.mmocore.manager.data.mysql; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import io.lumine.mythic.lib.MythicLib; +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.OfflinePlayerData; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; +import net.Indyuce.mmocore.api.util.MMOCoreUtils; +import net.Indyuce.mmocore.guild.provided.Guild; +import net.Indyuce.mmocore.manager.data.PlayerDataManager; +import org.apache.commons.lang.Validate; +import org.bukkit.Bukkit; +import org.jetbrains.annotations.NotNull; + +import java.io.*; +import java.net.Socket; +import java.sql.SQLException; +import java.util.*; +import java.util.Map.Entry; +import java.util.logging.Level; +import java.util.stream.Collectors; + +import static net.Indyuce.mmocore.api.player.PlayerData.createClassInfoData; + +public class MySQLPlayerDataManager extends PlayerDataManager { + private final MySQLDataProvider provider; + + public MySQLPlayerDataManager(MySQLDataProvider provider) { + this.provider = provider; + } + + @Override + public void loadData(PlayerData data) { + provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + data.getUniqueId() + "';", (result) -> { + try { + MMOCore.sqlDebug("Loading data for: '" + data.getUniqueId() + "'..."); + + // Initialize custom resources + if (!data.hasUsedTemporaryData()) { + data.setMana(data.getStats().getStat("MAX_MANA")); + data.setStamina(data.getStats().getStat("MAX_STAMINA")); + data.setStellium(data.getStats().getStat("MAX_STELLIUM")); + } + + if (!result.next()) { + data.setLevel(getDefaultData().getLevel()); + data.setClassPoints(getDefaultData().getClassPoints()); + data.setSkillPoints(getDefaultData().getSkillPoints()); + data.setAttributePoints(getDefaultData().getAttributePoints()); + data.setAttributeReallocationPoints(getDefaultData().getAttrReallocPoints()); + data.setExperience(0); + data.getQuestData().updateBossBar(); + + data.setFullyLoaded(); + MMOCore.sqlDebug("Loaded DEFAULT data for: '" + data.getUniqueId() + "' as no saved data was found."); + return; + } + + data.setClassPoints(result.getInt("class_points")); + data.setSkillPoints(result.getInt("skill_points")); + data.setAttributePoints(result.getInt("attribute_points")); + data.setAttributeReallocationPoints(result.getInt("attribute_realloc_points")); + data.setLevel(result.getInt("level")); + data.setExperience(result.getInt("experience")); + if (!isEmpty(result.getString("class"))) + data.setClass(MMOCore.plugin.classManager.get(result.getString("class"))); + + if (!isEmpty(result.getString("times_claimed"))) { + JsonObject json = new JsonParser().parse(result.getString("times_claimed")).getAsJsonObject(); + json.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt())); + } + + if (!isEmpty(result.getString("guild"))) { + Guild guild = MMOCore.plugin.dataProvider.getGuildManager().getGuild(result.getString("guild")); + data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null); + } + if (!isEmpty(result.getString("attributes"))) data.getAttributes().load(result.getString("attributes")); + if (!isEmpty(result.getString("professions"))) + data.getCollectionSkills().load(result.getString("professions")); + if (!isEmpty(result.getString("quests"))) data.getQuestData().load(result.getString("quests")); + data.getQuestData().updateBossBar(); + if (!isEmpty(result.getString("waypoints"))) + data.getWaypoints().addAll(MMOCoreUtils.jsonArrayToList(result.getString("waypoints"))); + if (!isEmpty(result.getString("friends"))) + MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> data.getFriends().add(UUID.fromString(str))); + if (!isEmpty(result.getString("skills"))) { + JsonObject object = MythicLib.plugin.getJson().parse(result.getString("skills"), JsonObject.class); + for (Entry entry : object.entrySet()) + data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt()); + } + if (!isEmpty(result.getString("bound_skills"))) + for (String skill : MMOCoreUtils.jsonArrayToList(result.getString("bound_skills"))) + if (data.getProfess().hasSkill(skill)) + data.getBoundSkills().add(data.getProfess().getSkill(skill)); + if (!isEmpty(result.getString("class_info"))) { + JsonObject object = MythicLib.plugin.getJson().parse(result.getString("class_info"), JsonObject.class); + for (Entry entry : object.entrySet()) { + try { + PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey()); + Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'"); + data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject())); + } catch (IllegalArgumentException exception) { + MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage()); + } + } + } + + //We now change the saved status to false because the data on SQL won't be the same as in the RAM + MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId()); + + + data.setFullyLoaded(); + MMOCore.sqlDebug("Loaded saved data for: '" + data.getUniqueId() + "'!"); + MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel())); + } catch (SQLException e) { + e.printStackTrace(); + } + }); + } + + private boolean isEmpty(String s) { + return s == null || s.equalsIgnoreCase("null") || s.equalsIgnoreCase("{}") || s.equalsIgnoreCase("[]") || s.equalsIgnoreCase(""); + } + + @Override + public void saveData(PlayerData data) { + + if (MMOCore.plugin.hasBungee) { + //Initialize a connection with bungee using Sockets + try { + Socket socket=new Socket("localhost",25580); + BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); + writer.write("BONJOUR"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + DataOutputStream outStream = new DataOutputStream(out); + try { + outStream.writeChars(data.toJson()); + } catch (IOException e) { + MMOCore.plugin.getLogger().log(Level.SEVERE, "Couldn't send the data to Bungee for player " + data.getPlayer().getName()); + return; + } + MMOCore.plugin.getLogger().log(Level.WARNING, "BUNGEE"+ Bukkit.getOnlinePlayers().size()); + + + MMOCore.sqlDebug("Sent data to bungee for: " + data.getUniqueId()); + MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel())); + + + } else { + MySQLTableEditor sql = new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, data.getUniqueId()); + MMOCore.sqlDebug("Saving data for: '" + data.getUniqueId() + "'..."); + + sql.updateData("class_points", data.getClassPoints()); + sql.updateData("skill_points", data.getSkillPoints()); + sql.updateData("attribute_points", data.getAttributePoints()); + sql.updateData("attribute_realloc_points", data.getAttributeReallocationPoints()); + sql.updateData("level", data.getLevel()); + sql.updateData("experience", data.getExperience()); + sql.updateData("class", data.getProfess().getId()); + sql.updateData("last_login", data.getLastLogin()); + sql.updateData("guild", data.hasGuild() ? data.getGuild().getId() : null); + + sql.updateJSONArray("waypoints", data.getWaypoints()); + sql.updateJSONArray("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList())); + sql.updateJSONArray("bound_skills", data.getBoundSkills().stream().map(skill -> skill.getSkill().getHandler().getId()).collect(Collectors.toList())); + + sql.updateJSONObject("skills", data.mapSkillLevels().entrySet()); + sql.updateJSONObject("times_claimed", data.getItemClaims().entrySet()); + + sql.updateData("attributes", data.getAttributes().toJsonString()); + sql.updateData("professions", data.getCollectionSkills().toJsonString()); + sql.updateData("quests", data.getQuestData().toJsonString()); + + sql.updateData("class_info", createClassInfoData(data).toString()); + + + MMOCore.sqlDebug("Saved data for: " + data.getUniqueId()); + MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel())); + + + } + } + + + @NotNull + @Override + public OfflinePlayerData getOffline(UUID uuid) { + return isLoaded(uuid) ? get(uuid) : new MySQLOfflinePlayerData(uuid); + } + + + public class MySQLOfflinePlayerData extends OfflinePlayerData { + private int level; + private long lastLogin; + private PlayerClass profess; + private List friends; + + public MySQLOfflinePlayerData(UUID uuid) { + super(uuid); + + provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + uuid + "';", (result) -> { + try { + MMOCore.sqlDebug("Loading OFFLINE data for '" + uuid + "'."); + if (!result.next()) { + level = 0; + lastLogin = 0; + profess = MMOCore.plugin.classManager.getDefaultClass(); + friends = new ArrayList<>(); + MMOCore.sqlDebug("Default OFFLINE data loaded."); + } else { + level = result.getInt("level"); + lastLogin = result.getLong("last_login"); + profess = isEmpty(result.getString("class")) ? MMOCore.plugin.classManager.getDefaultClass() : MMOCore.plugin.classManager.get(result.getString("class")); + if (!isEmpty(result.getString("friends"))) + MMOCoreUtils.jsonArrayToList(result.getString("friends")).forEach(str -> friends.add(UUID.fromString(str))); + else friends = new ArrayList<>(); + MMOCore.sqlDebug("Saved OFFLINE data loaded."); + } + } catch (SQLException e) { + e.printStackTrace(); + } + }); + } + + @Override + public void removeFriend(UUID uuid) { + friends.remove(uuid); + new MySQLTableEditor(MySQLTableEditor.Table.PLAYERDATA, uuid).updateData("friends", friends.stream().map(UUID::toString).collect(Collectors.toList())); + } + + @Override + public boolean hasFriend(UUID uuid) { + return friends.contains(uuid); + } + + @Override + public PlayerClass getProfess() { + return profess; + } + + @Override + public int getLevel() { + return level; + } + + @Override + public long getLastLogin() { + return lastLogin; + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java index f6d1a7ad..8f5cbea7 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLTableEditor.java @@ -1,55 +1,55 @@ -package net.Indyuce.mmocore.manager.data.mysql; - -import java.util.Collection; -import java.util.Map.Entry; -import java.util.Set; -import java.util.UUID; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; - -import net.Indyuce.mmocore.MMOCore; - -public class MySQLTableEditor { - private final Table table; - private final UUID uuid; - - public MySQLTableEditor(Table table, UUID uuid) { - this.table = table; - this.uuid = uuid; - } - - public void updateData(String key, Object value) { - ((MySQLDataProvider) MMOCore.plugin.dataProvider).executeUpdate("INSERT INTO " + table + "(uuid, " + key - + ") VALUES('" + uuid + "', '" + value + "') ON DUPLICATE KEY UPDATE " + key + "='" + value + "';"); - } - - public void updateJSONArray(String key, Collection collection) { - JsonArray json = new JsonArray(); - for (String s : collection) - json.add(s); - updateData(key, json.toString()); - } - - public void updateJSONObject(String key, Set> collection) { - JsonObject json = new JsonObject(); - for (Entry entry : collection) - json.addProperty(entry.getKey(), entry.getValue()); - updateData(key, json.toString()); - } - - public enum Table { - PLAYERDATA("mmocore_playerdata"), GUILDDATA("mmocore_guilddata"); - - final String tableName; - - Table(String tN) { - tableName = tN; - } - - @Override - public String toString() { - return tableName; - } - } -} +package net.Indyuce.mmocore.manager.data.mysql; + +import java.util.Collection; +import java.util.Map.Entry; +import java.util.Set; +import java.util.UUID; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; + +import net.Indyuce.mmocore.MMOCore; + +public class MySQLTableEditor { + private final Table table; + private final UUID uuid; + + public MySQLTableEditor(Table table, UUID uuid) { + this.table = table; + this.uuid = uuid; + } + + public void updateData(String key, Object value) { + ((MySQLDataProvider) MMOCore.plugin.dataProvider).executeUpdate("INSERT INTO " + table + "(uuid, " + key + + ") VALUES('" + uuid + "', '" + value + "') ON DUPLICATE KEY UPDATE " + key + "='" + value + "';"); + } + + public void updateJSONArray(String key, Collection collection) { + JsonArray json = new JsonArray(); + for (String s : collection) + json.add(s); + updateData(key, json.toString()); + } + + public void updateJSONObject(String key, Set> collection) { + JsonObject json = new JsonObject(); + for (Entry entry : collection) + json.addProperty(entry.getKey(), entry.getValue()); + updateData(key, json.toString()); + } + + public enum Table { + PLAYERDATA("mmocore_playerdata"), GUILDDATA("mmocore_guilddata"); + + final String tableName; + + Table(String tN) { + tableName = tN; + } + + @Override + public String toString() { + return tableName; + } + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java index d6ea6a2b..39d20dd5 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLDataProvider.java @@ -1,20 +1,20 @@ -package net.Indyuce.mmocore.manager.data.yaml; - -import net.Indyuce.mmocore.manager.data.DataProvider; -import net.Indyuce.mmocore.manager.data.GuildDataManager; -import net.Indyuce.mmocore.manager.data.PlayerDataManager; - -public class YAMLDataProvider implements DataProvider { - private final YAMLPlayerDataManager playerManager = new YAMLPlayerDataManager(this); - private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager(); - - @Override - public PlayerDataManager getDataManager() { - return playerManager; - } - - @Override - public GuildDataManager getGuildManager() { - return guildManager; - } -} +package net.Indyuce.mmocore.manager.data.yaml; + +import net.Indyuce.mmocore.manager.data.DataProvider; +import net.Indyuce.mmocore.manager.data.GuildDataManager; +import net.Indyuce.mmocore.manager.data.PlayerDataManager; + +public class YAMLDataProvider implements DataProvider { + private final YAMLPlayerDataManager playerManager = new YAMLPlayerDataManager(this); + private final YAMLGuildDataManager guildManager = new YAMLGuildDataManager(); + + @Override + public PlayerDataManager getDataManager() { + return playerManager; + } + + @Override + public GuildDataManager getGuildManager() { + return guildManager; + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java index 15d9e65e..ab2557ce 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLGuildDataManager.java @@ -1,50 +1,50 @@ -package net.Indyuce.mmocore.manager.data.yaml; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; -import net.Indyuce.mmocore.guild.provided.Guild; -import net.Indyuce.mmocore.manager.data.GuildDataManager; - -public class YAMLGuildDataManager extends GuildDataManager { - @Override - public void save(Guild guild) { - ConfigFile config = new ConfigFile(guild); - config.getConfig().set("name", guild.getName()); - config.getConfig().set("tag", guild.getTag()); - config.getConfig().set("owner", guild.getOwner().toString()); - - List memberList = new ArrayList<>(); - guild.forEachMember(uuid -> memberList.add(uuid.toString())); - config.getConfig().set("members", memberList); - - config.save(); - } - - @Override - public void load() { - File guildsFolder = new File(MMOCore.plugin.getDataFolder(), "guilds"); - if (!guildsFolder.exists()) - guildsFolder.mkdirs(); - for (File file : guildsFolder.listFiles()) { - if (!file.isDirectory() && file.getName().substring(file.getName().lastIndexOf('.')).equalsIgnoreCase(".yml")) { - FileConfiguration c = YamlConfiguration.loadConfiguration(file); - Guild guild = newRegisteredGuild(UUID.fromString(c.getString("owner")), c.getString("name"), c.getString("tag")); - for (String m : c.getStringList("members")) - guild.registerMember(UUID.fromString(m)); - } - } - } - - @Override - public void delete(Guild guild) { - new ConfigFile(guild).delete(); - } -} +package net.Indyuce.mmocore.manager.data.yaml; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import net.Indyuce.mmocore.MMOCore; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; + +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.guild.provided.Guild; +import net.Indyuce.mmocore.manager.data.GuildDataManager; + +public class YAMLGuildDataManager extends GuildDataManager { + @Override + public void save(Guild guild) { + ConfigFile config = new ConfigFile(guild); + config.getConfig().set("name", guild.getName()); + config.getConfig().set("tag", guild.getTag()); + config.getConfig().set("owner", guild.getOwner().toString()); + + List memberList = new ArrayList<>(); + guild.forEachMember(uuid -> memberList.add(uuid.toString())); + config.getConfig().set("members", memberList); + + config.save(); + } + + @Override + public void load() { + File guildsFolder = new File(MMOCore.plugin.getDataFolder(), "guilds"); + if (!guildsFolder.exists()) + guildsFolder.mkdirs(); + for (File file : guildsFolder.listFiles()) { + if (!file.isDirectory() && file.getName().substring(file.getName().lastIndexOf('.')).equalsIgnoreCase(".yml")) { + FileConfiguration c = YamlConfiguration.loadConfiguration(file); + Guild guild = newRegisteredGuild(UUID.fromString(c.getString("owner")), c.getString("name"), c.getString("tag")); + for (String m : c.getStringList("members")) + guild.registerMember(UUID.fromString(m)); + } + } + } + + @Override + public void delete(Guild guild) { + new ConfigFile(guild).delete(); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java index c2eb4047..67de7675 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLOfflinePlayerData.java @@ -1,51 +1,51 @@ -package net.Indyuce.mmocore.manager.data.yaml; - -import java.util.List; -import java.util.UUID; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; -import net.Indyuce.mmocore.api.player.OfflinePlayerData; -import net.Indyuce.mmocore.api.player.profess.PlayerClass; - -public class YAMLOfflinePlayerData extends OfflinePlayerData { - private final ConfigFile config; - - /** - * Supports offline player data operations like friend removals which can't - * be handled when their player data is not loaded in the data map. - */ - public YAMLOfflinePlayerData(UUID uuid) { - super(uuid); - - config = new ConfigFile(uuid); - } - - @Override - public void removeFriend(UUID uuid) { - List friends = config.getConfig().getStringList("friends"); - friends.remove(uuid.toString()); - config.getConfig().set("friends", friends); - config.save(); - } - - @Override - public boolean hasFriend(UUID uuid) { - return config.getConfig().getStringList("friends").contains(uuid.toString()); - } - - @Override - public PlayerClass getProfess() { - return config.getConfig().contains("class") ? MMOCore.plugin.classManager.get(config.getConfig().getString("class")) : MMOCore.plugin.classManager.getDefaultClass(); - } - - @Override - public int getLevel() { - return config.getConfig().getInt("level"); - } - - @Override - public long getLastLogin() { - return config.getConfig().getLong("last-login"); - } -} +package net.Indyuce.mmocore.manager.data.yaml; + +import java.util.List; +import java.util.UUID; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.api.player.OfflinePlayerData; + +public class YAMLOfflinePlayerData extends OfflinePlayerData { + private final ConfigFile config; + + /** + * Supports offline player data operations like friend removals which can't + * be handled when their player data is not loaded in the data map. + */ + public YAMLOfflinePlayerData(UUID uuid) { + super(uuid); + + config = new ConfigFile(uuid); + } + + @Override + public void removeFriend(UUID uuid) { + List friends = config.getConfig().getStringList("friends"); + friends.remove(uuid.toString()); + config.getConfig().set("friends", friends); + config.save(); + } + + @Override + public boolean hasFriend(UUID uuid) { + return config.getConfig().getStringList("friends").contains(uuid.toString()); + } + + @Override + public PlayerClass getProfess() { + return config.getConfig().contains("class") ? MMOCore.plugin.classManager.get(config.getConfig().getString("class")) : MMOCore.plugin.classManager.getDefaultClass(); + } + + @Override + public int getLevel() { + return config.getConfig().getInt("level"); + } + + @Override + public long getLastLogin() { + return config.getConfig().getLong("last-login"); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java index e9f6986d..37cc03f7 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/data/yaml/YAMLPlayerDataManager.java @@ -1,147 +1,147 @@ -package net.Indyuce.mmocore.manager.data.yaml; - -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.ConfigFile; -import net.Indyuce.mmocore.api.player.OfflinePlayerData; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.PlayerClass; -import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; -import net.Indyuce.mmocore.guild.provided.Guild; -import net.Indyuce.mmocore.manager.data.DataProvider; -import net.Indyuce.mmocore.manager.data.PlayerDataManager; -import org.apache.commons.lang.Validate; -import org.bukkit.configuration.file.FileConfiguration; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.logging.Level; -import java.util.stream.Collectors; - -public class YAMLPlayerDataManager extends PlayerDataManager { - private final DataProvider provider; - - public YAMLPlayerDataManager(DataProvider provider) { - this.provider = provider; - } - - @Override - public void loadData(PlayerData data) { - FileConfiguration config = new ConfigFile(data.getUniqueId()).getConfig(); - - data.setClassPoints(config.getInt("class-points", getDefaultData().getClassPoints())); - data.setSkillPoints(config.getInt("skill-points", getDefaultData().getSkillPoints())); - data.setAttributePoints(config.getInt("attribute-points", getDefaultData().getAttributePoints())); - data.setAttributeReallocationPoints(config.getInt("attribute-realloc-points", getDefaultData().getAttrReallocPoints())); - data.setLevel(config.getInt("level", getDefaultData().getLevel())); - data.setExperience(config.getInt("experience")); - if (config.contains("class")) - data.setClass(MMOCore.plugin.classManager.get(config.getString("class"))); - - if (!data.hasUsedTemporaryData()) { - data.setMana(data.getStats().getStat("MAX_MANA")); - data.setStamina(data.getStats().getStat("MAX_STAMINA")); - data.setStellium(data.getStats().getStat("MAX_STELLIUM")); - } - - if (config.contains("guild")) { - Guild guild = provider.getGuildManager().getGuild(config.getString("guild")); - data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null); - } - if (config.contains("attribute")) - data.getAttributes().load(config.getConfigurationSection("attribute")); - if (config.contains("profession")) - data.getCollectionSkills().load(config.getConfigurationSection("profession")); - if (config.contains("quest")) - data.getQuestData().load(config.getConfigurationSection("quest")); - data.getQuestData().updateBossBar(); - if (config.contains("waypoints")) - data.getWaypoints().addAll(config.getStringList("waypoints")); - if (config.contains("friends")) - config.getStringList("friends").forEach(str -> data.getFriends().add(UUID.fromString(str))); - if (config.contains("skill")) - config.getConfigurationSection("skill").getKeys(false).forEach(id -> data.setSkillLevel(id, config.getInt("skill." + id))); - if (config.contains("bound-skills")) - for (String id : config.getStringList("bound-skills")) - if (data.getProfess().hasSkill(id)) - data.getBoundSkills().add(data.getProfess().getSkill(id)); - - if (config.contains("times-claimed")) - for (String key : config.getConfigurationSection("times-claimed").getKeys(true)) - data.getItemClaims().put(key, config.getInt("times-claimed." + key)); - - // Load class slots, use try so the player can log in. - if (config.contains("class-info")) - for (String key : config.getConfigurationSection("class-info").getKeys(false)) - try { - PlayerClass profess = MMOCore.plugin.classManager.get(key); - Validate.notNull(profess, "Could not find class '" + key + "'"); - data.applyClassInfo(profess, new SavedClassInformation(config.getConfigurationSection("class-info." + key))); - } catch (IllegalArgumentException exception) { - MMOCore.log(Level.WARNING, "Could not load class info '" + key + "': " + exception.getMessage()); - } - - data.setFullyLoaded(); - } - - @Override - public void saveData(PlayerData data) { - ConfigFile file = new ConfigFile(data.getUniqueId()); - FileConfiguration config = file.getConfig(); - - config.set("class-points", data.getClassPoints()); - config.set("skill-points", data.getSkillPoints()); - config.set("attribute-points", data.getAttributePoints()); - // config.set("skill-realloc-points", skillReallocationPoints); - config.set("attribute-realloc-points", data.getAttributeReallocationPoints()); - config.set("level", data.getLevel()); - config.set("experience", data.getExperience()); - config.set("class", data.getProfess().getId()); - config.set("waypoints", new ArrayList<>(data.getWaypoints())); - config.set("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList())); - config.set("last-login", data.getLastLogin()); - config.set("guild", data.hasGuild() ? data.getGuild().getId() : null); - - config.set("skill", null); - data.mapSkillLevels().forEach((key1, value) -> config.set("skill." + key1, value)); - data.getItemClaims().forEach((key, times) -> config.set("times-claimed." + key, times)); - - List boundSkills = new ArrayList<>(); - data.getBoundSkills().forEach(skill -> boundSkills.add(skill.getSkill().getHandler().getId())); - config.set("bound-skills", boundSkills); - - config.set("attribute", null); - config.createSection("attribute"); - data.getAttributes().save(config.getConfigurationSection("attribute")); - - config.set("profession", null); - config.createSection("profession"); - data.getCollectionSkills().save(config.getConfigurationSection("profession")); - - config.set("quest", null); - config.createSection("quest"); - data.getQuestData().save(config.getConfigurationSection("quest")); - - config.set("class-info", null); - for (String key : data.getSavedClasses()) { - SavedClassInformation info = data.getClassInfo(key); - config.set("class-info." + key + ".level", info.getLevel()); - config.set("class-info." + key + ".experience", info.getExperience()); - config.set("class-info." + key + ".skill-points", info.getSkillPoints()); - config.set("class-info." + key + ".attribute-points", info.getAttributePoints()); - config.set("class-info." + key + ".attribute-realloc-points", info.getAttributeReallocationPoints()); - info.getSkillKeys().forEach(skill -> config.set("class-info." + key + ".skill." + skill, info.getSkillLevel(skill))); - info.getAttributeKeys() - .forEach(attribute -> config.set("class-info." + key + ".attribute." + attribute, info.getAttributeLevel(attribute))); - } - - file.save(); - } - - @NotNull - @Override - public OfflinePlayerData getOffline(UUID uuid) { - return isLoaded(uuid) ? get(uuid) : new YAMLOfflinePlayerData(uuid); - } -} +package net.Indyuce.mmocore.manager.data.yaml; + +import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.api.player.profess.PlayerClass; +import net.Indyuce.mmocore.api.ConfigFile; +import net.Indyuce.mmocore.api.player.OfflinePlayerData; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; +import net.Indyuce.mmocore.guild.provided.Guild; +import net.Indyuce.mmocore.manager.data.DataProvider; +import net.Indyuce.mmocore.manager.data.PlayerDataManager; +import org.apache.commons.lang.Validate; +import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.logging.Level; +import java.util.stream.Collectors; + +public class YAMLPlayerDataManager extends PlayerDataManager { + private final DataProvider provider; + + public YAMLPlayerDataManager(DataProvider provider) { + this.provider = provider; + } + + @Override + public void loadData(PlayerData data) { + FileConfiguration config = new ConfigFile(data.getUniqueId()).getConfig(); + + data.setClassPoints(config.getInt("class-points", getDefaultData().getClassPoints())); + data.setSkillPoints(config.getInt("skill-points", getDefaultData().getSkillPoints())); + data.setAttributePoints(config.getInt("attribute-points", getDefaultData().getAttributePoints())); + data.setAttributeReallocationPoints(config.getInt("attribute-realloc-points", getDefaultData().getAttrReallocPoints())); + data.setLevel(config.getInt("level", getDefaultData().getLevel())); + data.setExperience(config.getInt("experience")); + if (config.contains("class")) + data.setClass(MMOCore.plugin.classManager.get(config.getString("class"))); + + if (!data.hasUsedTemporaryData()) { + data.setMana(data.getStats().getStat("MAX_MANA")); + data.setStamina(data.getStats().getStat("MAX_STAMINA")); + data.setStellium(data.getStats().getStat("MAX_STELLIUM")); + } + + if (config.contains("guild")) { + Guild guild = provider.getGuildManager().getGuild(config.getString("guild")); + data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null); + } + if (config.contains("attribute")) + data.getAttributes().load(config.getConfigurationSection("attribute")); + if (config.contains("profession")) + data.getCollectionSkills().load(config.getConfigurationSection("profession")); + if (config.contains("quest")) + data.getQuestData().load(config.getConfigurationSection("quest")); + data.getQuestData().updateBossBar(); + if (config.contains("waypoints")) + data.getWaypoints().addAll(config.getStringList("waypoints")); + if (config.contains("friends")) + config.getStringList("friends").forEach(str -> data.getFriends().add(UUID.fromString(str))); + if (config.contains("skill")) + config.getConfigurationSection("skill").getKeys(false).forEach(id -> data.setSkillLevel(id, config.getInt("skill." + id))); + if (config.contains("bound-skills")) + for (String id : config.getStringList("bound-skills")) + if (data.getProfess().hasSkill(id)) + data.getBoundSkills().add(data.getProfess().getSkill(id)); + + if (config.contains("times-claimed")) + for (String key : config.getConfigurationSection("times-claimed").getKeys(true)) + data.getItemClaims().put(key, config.getInt("times-claimed." + key)); + + // Load class slots, use try so the player can log in. + if (config.contains("class-info")) + for (String key : config.getConfigurationSection("class-info").getKeys(false)) + try { + PlayerClass profess = MMOCore.plugin.classManager.get(key); + Validate.notNull(profess, "Could not find class '" + key + "'"); + data.applyClassInfo(profess, new SavedClassInformation(config.getConfigurationSection("class-info." + key))); + } catch (IllegalArgumentException exception) { + MMOCore.log(Level.WARNING, "Could not load class info '" + key + "': " + exception.getMessage()); + } + + data.setFullyLoaded(); + } + + @Override + public void saveData(PlayerData data) { + ConfigFile file = new ConfigFile(data.getUniqueId()); + FileConfiguration config = file.getConfig(); + + config.set("class-points", data.getClassPoints()); + config.set("skill-points", data.getSkillPoints()); + config.set("attribute-points", data.getAttributePoints()); + // config.set("skill-realloc-points", skillReallocationPoints); + config.set("attribute-realloc-points", data.getAttributeReallocationPoints()); + config.set("level", data.getLevel()); + config.set("experience", data.getExperience()); + config.set("class", data.getProfess().getId()); + config.set("waypoints", new ArrayList<>(data.getWaypoints())); + config.set("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList())); + config.set("last-login", data.getLastLogin()); + config.set("guild", data.hasGuild() ? data.getGuild().getId() : null); + + config.set("skill", null); + data.mapSkillLevels().forEach((key1, value) -> config.set("skill." + key1, value)); + data.getItemClaims().forEach((key, times) -> config.set("times-claimed." + key, times)); + + List boundSkills = new ArrayList<>(); + data.getBoundSkills().forEach(skill -> boundSkills.add(skill.getSkill().getHandler().getId())); + config.set("bound-skills", boundSkills); + + config.set("attribute", null); + config.createSection("attribute"); + data.getAttributes().save(config.getConfigurationSection("attribute")); + + config.set("profession", null); + config.createSection("profession"); + data.getCollectionSkills().save(config.getConfigurationSection("profession")); + + config.set("quest", null); + config.createSection("quest"); + data.getQuestData().save(config.getConfigurationSection("quest")); + + config.set("class-info", null); + for (String key : data.getSavedClasses()) { + SavedClassInformation info = data.getClassInfo(key); + config.set("class-info." + key + ".level", info.getLevel()); + config.set("class-info." + key + ".experience", info.getExperience()); + config.set("class-info." + key + ".skill-points", info.getSkillPoints()); + config.set("class-info." + key + ".attribute-points", info.getAttributePoints()); + config.set("class-info." + key + ".attribute-realloc-points", info.getAttributeReallocationPoints()); + info.getSkillKeys().forEach(skill -> config.set("class-info." + key + ".skill." + skill, info.getSkillLevel(skill))); + info.getAttributeKeys() + .forEach(attribute -> config.set("class-info." + key + ".attribute." + attribute, info.getAttributeLevel(attribute))); + } + + file.save(); + } + + @NotNull + @Override + public OfflinePlayerData getOffline(UUID uuid) { + return isLoaded(uuid) ? get(uuid) : new YAMLOfflinePlayerData(uuid); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/AlchemyManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java similarity index 95% rename from src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java index 5b69846d..4f089d10 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/CustomBlockManager.java @@ -3,7 +3,6 @@ package net.Indyuce.mmocore.manager.profession; import io.papermc.lib.PaperLib; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.block.BlockInfo; -import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock; import net.Indyuce.mmocore.api.block.BlockType; import net.Indyuce.mmocore.api.block.SkullBlockType; import net.Indyuce.mmocore.api.block.VanillaBlockType; @@ -33,7 +32,7 @@ public class CustomBlockManager extends SpecificProfessionManager { * Blocks that are regenerating and that must be refreshed whenever the * server reloads or shuts down not to hurt the world map */ - private final Set active = new HashSet<>(); + private final Set active = new HashSet<>(); /** * Stores conditions which must be met to apply custom mining @@ -93,7 +92,7 @@ public class CustomBlockManager extends SpecificProfessionManager { * a "block chain", no regen should be scheduled as * there is already one */ - public void initialize(RegeneratingBlock info, boolean scheduleRegen) { + public void initialize(BlockInfo.RegeneratingBlock info, boolean scheduleRegen) { if (scheduleRegen) { active.add(info); Bukkit.getScheduler().runTaskLater(MMOCore.plugin, () -> regen(info, false), info.getRegeneratingBlock().getRegenerationInfo().getTime()); @@ -112,7 +111,7 @@ public class CustomBlockManager extends SpecificProfessionManager { * the server shuts down, it iterates through active blocks. * This prevents any issue when editing lists being iterated */ - private void regen(RegeneratingBlock info, boolean shutdown) { + private void regen(BlockInfo.RegeneratingBlock info, boolean shutdown) { // Get the chunk and load it async if needed. PaperLib.getChunkAtAsync(info.getLocation()).whenComplete((chunk, ex) -> { @@ -138,7 +137,7 @@ public class CustomBlockManager extends SpecificProfessionManager { */ public boolean isTemporaryBlock(Block block) { Location loc = block.getLocation(); - for (RegeneratingBlock info : active) + for (BlockInfo.RegeneratingBlock info : active) if (info.getLocation().getBlockX() == loc.getBlockX() && info.getLocation().getBlockY() == loc.getBlockY() && info.getLocation().getBlockZ() == loc.getBlockZ()) return true; diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/EnchantManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ExperienceSourceManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java similarity index 83% rename from src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java index e794c9e3..aad6403d 100644 --- a/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/FishingManager.java @@ -3,9 +3,10 @@ package net.Indyuce.mmocore.manager.profession; import io.lumine.mythic.lib.api.MMOLineConfig; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.loot.RandomWeightedRoll; import net.Indyuce.mmocore.loot.chest.condition.Condition; import net.Indyuce.mmocore.loot.chest.condition.ConditionInstance; -import net.Indyuce.mmocore.loot.droptable.dropitem.fishing.FishingDropItem; +import net.Indyuce.mmocore.loot.fishing.FishingDropItem; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Entity; @@ -16,8 +17,6 @@ import java.util.logging.Level; public class FishingManager extends SpecificProfessionManager { private final Set tables = new LinkedHashSet<>(); - private static final Random RANDOM = new Random(); - public FishingManager() { super("on-fish"); } @@ -96,25 +95,12 @@ public class FishingManager extends SpecificProfessionManager { /** * The chance stat will make low weight items more - * likely to be chosen by the algorithm + * likely to be chosen by the algorithm. * * @return Randomly computed fishing drop item */ public FishingDropItem getRandomItem(PlayerData player) { - double chance = player.getStats().getStat("CHANCE"); - - //chance=0 ->the tier.chance remains the same - //chance ->+inf -> the tier.chance becomes the same for everyone, uniform law - //chance=8-> tierChance=sqrt(tierChance) - double sum = 0; - double randomCoefficient=RANDOM.nextDouble(); - for (FishingDropItem item : items) { - sum += Math.pow(item.getItem().getWeight(), 1 / Math.log(1 + chance)); - if(sum(player, items, MMOCore.plugin.configManager.fishingDropsChanceWeight).rollItem(); } } diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/ProfessionManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SmithingManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/profession/SpecificProfessionManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/MMOCoreRegister.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/registry/RegisterObject.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/BoosterManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/PartyManager.java diff --git a/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/manager/social/RequestManager.java diff --git a/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/AbstractParty.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/AbstractParty.java diff --git a/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/MMOCoreTargetRestriction.java diff --git a/src/main/java/net/Indyuce/mmocore/party/PartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/PartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsPartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PAFPartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/compat/PartiesPartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/MMOCorePartyModule.java diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/Party.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java similarity index 96% rename from src/main/java/net/Indyuce/mmocore/party/provided/Party.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java index 218a830e..9bc6b2db 100644 --- a/src/main/java/net/Indyuce/mmocore/party/provided/Party.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/Party.java @@ -1,12 +1,12 @@ package net.Indyuce.mmocore.party.provided; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.gui.api.PluginInventory; +import net.Indyuce.mmocore.gui.social.party.EditablePartyView; +import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.api.ConfigMessage; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.social.Request; -import net.Indyuce.mmocore.gui.api.PluginInventory; -import net.Indyuce.mmocore.gui.social.party.EditablePartyView.PartyViewInventory; -import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.party.AbstractParty; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -107,7 +107,7 @@ public class Party implements AbstractParty { public void removeMember(PlayerData data, boolean notify) { if (data.isOnline() && data.getPlayer().getOpenInventory() != null - && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof PartyViewInventory) + && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditablePartyView.PartyViewInventory) InventoryManager.PARTY_CREATION.newInventory(data).open(); members.remove(data); @@ -146,7 +146,7 @@ public class Party implements AbstractParty { private void updateOpenInventories() { for (PlayerData member : members) if (member.isOnline() && member.getPlayer().getOpenInventory() != null - && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof PartyViewInventory) + && member.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof EditablePartyView.PartyViewInventory) ((PluginInventory) member.getPlayer().getOpenInventory().getTopInventory().getHolder()).open(); } diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java index 40d13a4c..e5010170 100644 --- a/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyInvite.java @@ -1,9 +1,9 @@ package net.Indyuce.mmocore.party.provided; import net.Indyuce.mmocore.MMOCore; +import net.Indyuce.mmocore.manager.InventoryManager; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.social.Request; -import net.Indyuce.mmocore.manager.InventoryManager; public class PartyInvite extends Request { private final Party party; diff --git a/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java similarity index 87% rename from src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java index 10d0a69d..943aa556 100644 --- a/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/party/provided/PartyListener.java @@ -2,8 +2,8 @@ package net.Indyuce.mmocore.party.provided; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.event.social.PartyChatEvent; +import net.Indyuce.mmocore.manager.ConfigManager; import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.manager.ConfigManager.SimpleMessage; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -31,7 +31,7 @@ public class PartyListener implements Listener { // Running it in a delayed task is recommended Bukkit.getScheduler().scheduleSyncDelayedTask(MMOCore.plugin, () -> { - SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message", + ConfigManager.SimpleMessage format = MMOCore.plugin.configManager.getSimpleMessage("party-chat", "player", data.getPlayer().getName(), "message", event.getMessage().substring(MMOCore.plugin.configManager.partyChatPrefix.length())); PartyChatEvent called = new PartyChatEvent(party, data, format.message()); Bukkit.getPluginManager().callEvent(called); diff --git a/src/main/java/net/Indyuce/mmocore/player/Unlockable.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/Unlockable.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/player/Unlockable.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/Unlockable.java diff --git a/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTrigger.java diff --git a/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/playerclass/ClassTriggerType.java diff --git a/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/player/stats/StatInfo.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/AbstractQuest.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java similarity index 93% rename from src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java index 1af7fdbc..7f97a26c 100644 --- a/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/MMOCoreQuestModule.java @@ -8,7 +8,7 @@ import org.bukkit.entity.Player; public class MMOCoreQuestModule implements QuestModule { @Override public AbstractQuest getQuestOrThrow(String id) { - Quest quest=MMOCore.plugin.questManager.get(id); + Quest quest= MMOCore.plugin.questManager.get(id); if(quest==null) return null; return new MMOCoreQuest(quest); diff --git a/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/PlayerQuestData.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/QuestModuleType.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/TODO.txt b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/TODO.txt similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/TODO.txt rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/TODO.txt diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BeautyQuestsModule.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/BlackVeinQuestsModule.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestCreatorModule.java diff --git a/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/quest/compat/QuestModule.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java similarity index 97% rename from src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java index 97748824..f3813ac6 100644 --- a/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/CastableSkill.java @@ -6,12 +6,10 @@ import io.lumine.mythic.lib.player.cooldown.CooldownInfo; import io.lumine.mythic.lib.skill.Skill; import io.lumine.mythic.lib.skill.SkillMetadata; import io.lumine.mythic.lib.skill.handler.SkillHandler; -import io.lumine.mythic.lib.skill.trigger.TriggerType; import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent; import net.Indyuce.mmocore.api.player.PlayerActivity; import net.Indyuce.mmocore.api.player.PlayerData; -import org.jetbrains.annotations.NotNull; public class CastableSkill extends Skill { private final ClassSkill skill; diff --git a/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java index 841c76a2..386cd07a 100644 --- a/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/ClassSkill.java @@ -5,9 +5,9 @@ import io.lumine.mythic.lib.player.cooldown.CooldownObject; import io.lumine.mythic.lib.player.modifier.ModifierSource; import io.lumine.mythic.lib.player.skill.PassiveSkill; import io.lumine.mythic.lib.skill.custom.condition.Condition; -import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.util.math.formula.IntegerLinearValue; import net.Indyuce.mmocore.api.util.math.formula.LinearValue; +import net.Indyuce.mmocore.api.player.PlayerData; import org.apache.commons.lang.Validate; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/RegisteredSkill.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/KeyCombo.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/PlayerKey.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingHandler.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/SkillCastingMode.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java index c33637e8..f59d888d 100644 --- a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/KeyCombos.java @@ -8,8 +8,8 @@ import io.lumine.mythic.lib.player.PlayerMetadata; import io.lumine.mythic.lib.skill.trigger.TriggerMetadata; import io.lumine.mythic.lib.skill.trigger.TriggerType; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundObject; import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent; +import net.Indyuce.mmocore.api.SoundObject; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.skill.cast.KeyCombo; import net.Indyuce.mmocore.skill.cast.PlayerKey; diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java index 3db7938d..46bac2f1 100644 --- a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillBar.java @@ -5,8 +5,8 @@ import io.lumine.mythic.lib.api.player.EquipmentSlot; import io.lumine.mythic.lib.player.PlayerMetadata; import io.lumine.mythic.lib.skill.trigger.TriggerMetadata; import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent; +import net.Indyuce.mmocore.api.SoundEvent; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.skill.ClassSkill; import net.Indyuce.mmocore.skill.cast.PlayerKey; diff --git a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java index f9fdd078..43717196 100644 --- a/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java +++ b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/cast/listener/SkillScroller.java @@ -4,8 +4,8 @@ import io.lumine.mythic.lib.UtilityMethods; import io.lumine.mythic.lib.api.player.EquipmentSlot; import io.lumine.mythic.lib.player.PlayerMetadata; import io.lumine.mythic.lib.skill.trigger.TriggerMetadata; -import net.Indyuce.mmocore.api.SoundObject; import net.Indyuce.mmocore.api.event.PlayerKeyPressEvent; +import net.Indyuce.mmocore.api.SoundObject; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.skill.cast.PlayerKey; import net.Indyuce.mmocore.skill.cast.SkillCastingHandler; diff --git a/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/ManaMechanic.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StaminaMechanic.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/custom/mechanic/StelliumMechanic.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Neptune_Gift.java diff --git a/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java diff --git a/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/IntegerCoordinates.java diff --git a/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/tree/SkillTree.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTree.java diff --git a/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/SkillTreeNode.java diff --git a/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/tree/modifier/UnlockSkillModifier.java diff --git a/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/HashableLocation.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/HashableLocation.java diff --git a/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java diff --git a/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/ConfigItem.java diff --git a/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/CurrencyItemBuilder.java diff --git a/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SimpleItemBuilder.java diff --git a/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/SkillBookBuilder.java diff --git a/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/util/item/WaypointBookBuilder.java diff --git a/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java diff --git a/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointOption.java diff --git a/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java b/spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java similarity index 100% rename from src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java rename to spigot-plugin/src/main/java/net/Indyuce/mmocore/waypoint/WaypointPath.java diff --git a/src/main/resources/config.yml b/spigot-plugin/src/main/resources/config.yml similarity index 99% rename from src/main/resources/config.yml rename to spigot-plugin/src/main/resources/config.yml index 141b310d..93027bb8 100644 --- a/src/main/resources/config.yml +++ b/spigot-plugin/src/main/resources/config.yml @@ -85,6 +85,7 @@ guild-plugin: mmocore # all set to 1 by default, this option is really server specific chance-stat-weight: loot-chests: 1 + fishing-drops: 1 # Whether blocks generated with a "cobblegenerator" should # provide the player with experience points or not diff --git a/src/main/resources/default/attributes.yml b/spigot-plugin/src/main/resources/default/attributes.yml similarity index 100% rename from src/main/resources/default/attributes.yml rename to spigot-plugin/src/main/resources/default/attributes.yml diff --git a/src/main/resources/default/classes/arcane-mage.yml b/spigot-plugin/src/main/resources/default/classes/arcane-mage.yml similarity index 100% rename from src/main/resources/default/classes/arcane-mage.yml rename to spigot-plugin/src/main/resources/default/classes/arcane-mage.yml diff --git a/src/main/resources/default/classes/human.yml b/spigot-plugin/src/main/resources/default/classes/human.yml similarity index 100% rename from src/main/resources/default/classes/human.yml rename to spigot-plugin/src/main/resources/default/classes/human.yml diff --git a/src/main/resources/default/classes/mage.yml b/spigot-plugin/src/main/resources/default/classes/mage.yml similarity index 100% rename from src/main/resources/default/classes/mage.yml rename to spigot-plugin/src/main/resources/default/classes/mage.yml diff --git a/src/main/resources/default/classes/marksman.yml b/spigot-plugin/src/main/resources/default/classes/marksman.yml similarity index 100% rename from src/main/resources/default/classes/marksman.yml rename to spigot-plugin/src/main/resources/default/classes/marksman.yml diff --git a/src/main/resources/default/classes/paladin.yml b/spigot-plugin/src/main/resources/default/classes/paladin.yml similarity index 100% rename from src/main/resources/default/classes/paladin.yml rename to spigot-plugin/src/main/resources/default/classes/paladin.yml diff --git a/src/main/resources/default/classes/rogue.yml b/spigot-plugin/src/main/resources/default/classes/rogue.yml similarity index 100% rename from src/main/resources/default/classes/rogue.yml rename to spigot-plugin/src/main/resources/default/classes/rogue.yml diff --git a/src/main/resources/default/classes/warrior.yml b/spigot-plugin/src/main/resources/default/classes/warrior.yml similarity index 100% rename from src/main/resources/default/classes/warrior.yml rename to spigot-plugin/src/main/resources/default/classes/warrior.yml diff --git a/src/main/resources/default/commands.yml b/spigot-plugin/src/main/resources/default/commands.yml similarity index 94% rename from src/main/resources/default/commands.yml rename to spigot-plugin/src/main/resources/default/commands.yml index b6ddec29..83f70cc7 100644 --- a/src/main/resources/default/commands.yml +++ b/spigot-plugin/src/main/resources/default/commands.yml @@ -1,33 +1,33 @@ -player: - main: "player" - aliases: ["p", "profile"] -attributes: - main: "attributes" - aliases: ["att", "stats"] -class: - main: "class" - aliases: ["c"] -waypoints: - main: "waypoints" - aliases: ["wp"] -quests: - main: "quests" - aliases: ["q", "journal"] -skills: - main: "skills" - aliases: ["s"] -friends: - main: "friends" - aliases: ["f"] -party: - main: "party" - aliases: [] -guild: - main: "guild" - aliases: [] -withdraw: - main: "withdraw" - aliases: ["w"] -deposit: - main: "deposit" +player: + main: "player" + aliases: ["p", "profile"] +attributes: + main: "attributes" + aliases: ["att", "stats"] +class: + main: "class" + aliases: ["c"] +waypoints: + main: "waypoints" + aliases: ["wp"] +quests: + main: "quests" + aliases: ["q", "journal"] +skills: + main: "skills" + aliases: ["s"] +friends: + main: "friends" + aliases: ["f"] +party: + main: "party" + aliases: [] +guild: + main: "guild" + aliases: [] +withdraw: + main: "withdraw" + aliases: ["w"] +deposit: + main: "deposit" aliases: ["d"] \ No newline at end of file diff --git a/src/main/resources/default/drop-tables/example-drop-tables.yml b/spigot-plugin/src/main/resources/default/drop-tables/example-drop-tables.yml similarity index 100% rename from src/main/resources/default/drop-tables/example-drop-tables.yml rename to spigot-plugin/src/main/resources/default/drop-tables/example-drop-tables.yml diff --git a/src/main/resources/default/exp-tables.yml b/spigot-plugin/src/main/resources/default/exp-tables.yml similarity index 100% rename from src/main/resources/default/exp-tables.yml rename to spigot-plugin/src/main/resources/default/exp-tables.yml diff --git a/src/main/resources/default/expcurves/levels.txt b/spigot-plugin/src/main/resources/default/expcurves/levels.txt similarity index 100% rename from src/main/resources/default/expcurves/levels.txt rename to spigot-plugin/src/main/resources/default/expcurves/levels.txt diff --git a/src/main/resources/default/expcurves/mining.txt b/spigot-plugin/src/main/resources/default/expcurves/mining.txt similarity index 100% rename from src/main/resources/default/expcurves/mining.txt rename to spigot-plugin/src/main/resources/default/expcurves/mining.txt diff --git a/src/main/resources/default/gui/attribute-view.yml b/spigot-plugin/src/main/resources/default/gui/attribute-view.yml similarity index 100% rename from src/main/resources/default/gui/attribute-view.yml rename to spigot-plugin/src/main/resources/default/gui/attribute-view.yml diff --git a/src/main/resources/default/gui/class-confirm.yml b/spigot-plugin/src/main/resources/default/gui/class-confirm.yml similarity index 100% rename from src/main/resources/default/gui/class-confirm.yml rename to spigot-plugin/src/main/resources/default/gui/class-confirm.yml diff --git a/src/main/resources/default/gui/class-select.yml b/spigot-plugin/src/main/resources/default/gui/class-select.yml similarity index 100% rename from src/main/resources/default/gui/class-select.yml rename to spigot-plugin/src/main/resources/default/gui/class-select.yml diff --git a/src/main/resources/default/gui/friend-list.yml b/spigot-plugin/src/main/resources/default/gui/friend-list.yml similarity index 100% rename from src/main/resources/default/gui/friend-list.yml rename to spigot-plugin/src/main/resources/default/gui/friend-list.yml diff --git a/src/main/resources/default/gui/friend-removal.yml b/spigot-plugin/src/main/resources/default/gui/friend-removal.yml similarity index 100% rename from src/main/resources/default/gui/friend-removal.yml rename to spigot-plugin/src/main/resources/default/gui/friend-removal.yml diff --git a/src/main/resources/default/gui/guild-creation.yml b/spigot-plugin/src/main/resources/default/gui/guild-creation.yml similarity index 100% rename from src/main/resources/default/gui/guild-creation.yml rename to spigot-plugin/src/main/resources/default/gui/guild-creation.yml diff --git a/src/main/resources/default/gui/guild-view.yml b/spigot-plugin/src/main/resources/default/gui/guild-view.yml similarity index 100% rename from src/main/resources/default/gui/guild-view.yml rename to spigot-plugin/src/main/resources/default/gui/guild-view.yml diff --git a/src/main/resources/default/gui/party-creation.yml b/spigot-plugin/src/main/resources/default/gui/party-creation.yml similarity index 100% rename from src/main/resources/default/gui/party-creation.yml rename to spigot-plugin/src/main/resources/default/gui/party-creation.yml diff --git a/src/main/resources/default/gui/party-view.yml b/spigot-plugin/src/main/resources/default/gui/party-view.yml similarity index 100% rename from src/main/resources/default/gui/party-view.yml rename to spigot-plugin/src/main/resources/default/gui/party-view.yml diff --git a/src/main/resources/default/gui/player-stats.yml b/spigot-plugin/src/main/resources/default/gui/player-stats.yml similarity index 100% rename from src/main/resources/default/gui/player-stats.yml rename to spigot-plugin/src/main/resources/default/gui/player-stats.yml diff --git a/src/main/resources/default/gui/quest-list.yml b/spigot-plugin/src/main/resources/default/gui/quest-list.yml similarity index 100% rename from src/main/resources/default/gui/quest-list.yml rename to spigot-plugin/src/main/resources/default/gui/quest-list.yml diff --git a/src/main/resources/default/gui/skill-list.yml b/spigot-plugin/src/main/resources/default/gui/skill-list.yml similarity index 100% rename from src/main/resources/default/gui/skill-list.yml rename to spigot-plugin/src/main/resources/default/gui/skill-list.yml diff --git a/src/main/resources/default/gui/subclass-confirm.yml b/spigot-plugin/src/main/resources/default/gui/subclass-confirm.yml similarity index 100% rename from src/main/resources/default/gui/subclass-confirm.yml rename to spigot-plugin/src/main/resources/default/gui/subclass-confirm.yml diff --git a/src/main/resources/default/gui/subclass-select.yml b/spigot-plugin/src/main/resources/default/gui/subclass-select.yml similarity index 100% rename from src/main/resources/default/gui/subclass-select.yml rename to spigot-plugin/src/main/resources/default/gui/subclass-select.yml diff --git a/src/main/resources/default/gui/waypoints.yml b/spigot-plugin/src/main/resources/default/gui/waypoints.yml similarity index 100% rename from src/main/resources/default/gui/waypoints.yml rename to spigot-plugin/src/main/resources/default/gui/waypoints.yml diff --git a/src/main/resources/default/guilds.yml b/spigot-plugin/src/main/resources/default/guilds.yml similarity index 96% rename from src/main/resources/default/guilds.yml rename to spigot-plugin/src/main/resources/default/guilds.yml index 77177910..7d50864c 100644 --- a/src/main/resources/default/guilds.yml +++ b/spigot-plugin/src/main/resources/default/guilds.yml @@ -1,41 +1,41 @@ -# WARNING! Please note that this file will be changed -# A LOT during the different phases of Guilds. -# The layout and settings displayed here are NOT final! - -# The prefix character needed for typing in the guild chat. -# Guild Chat format can be found in 'messages.yml' -chat-prefix: "*" - -# Set to true if guild tags should automatically be -# converted to Uppercase upon creation. -uppercase-tags: true -rules: - tag: - # The tag characters must match this RegEx string - # or the guild creation will fail. - # !!! If you don't know RegEx I wouldn't mess with this! - # You can always test your expression here: https://regexr.com/ - matches: "[a-zA-Z-_!?]+" - # Minimum and Maximum lengt of a tag - min-length: 3 - max-length: 4 - name: - # The name characters must match this RegEx string - # or the guild creation will fail. - # !!! If you don't know RegEx I wouldn't mess with this! - # You can always test your expression here: https://regexr.com/ - matches: "[a-zA-Z -_!?]+" - # Minimum and Maximum lengt of a tag - min-length: 3 - max-length: 14 - - - - - -# Max allowed members -max-size: 40 - -# "Guilds 1.0 doesn't have the max members feature -# A hotfix will be out before Christmas!" +# WARNING! Please note that this file will be changed +# A LOT during the different phases of Guilds. +# The layout and settings displayed here are NOT final! + +# The prefix character needed for typing in the guild chat. +# Guild Chat format can be found in 'messages.yml' +chat-prefix: "*" + +# Set to true if guild tags should automatically be +# converted to Uppercase upon creation. +uppercase-tags: true +rules: + tag: + # The tag characters must match this RegEx string + # or the guild creation will fail. + # !!! If you don't know RegEx I wouldn't mess with this! + # You can always test your expression here: https://regexr.com/ + matches: "[a-zA-Z-_!?]+" + # Minimum and Maximum lengt of a tag + min-length: 3 + max-length: 4 + name: + # The name characters must match this RegEx string + # or the guild creation will fail. + # !!! If you don't know RegEx I wouldn't mess with this! + # You can always test your expression here: https://regexr.com/ + matches: "[a-zA-Z -_!?]+" + # Minimum and Maximum lengt of a tag + min-length: 3 + max-length: 14 + + + + + +# Max allowed members +max-size: 40 + +# "Guilds 1.0 doesn't have the max members feature +# A hotfix will be out before Christmas!" # - Aria \ No newline at end of file diff --git a/src/main/resources/default/items.yml b/spigot-plugin/src/main/resources/default/items.yml similarity index 100% rename from src/main/resources/default/items.yml rename to spigot-plugin/src/main/resources/default/items.yml diff --git a/src/main/resources/default/loot-chests.yml b/spigot-plugin/src/main/resources/default/loot-chests.yml similarity index 100% rename from src/main/resources/default/loot-chests.yml rename to spigot-plugin/src/main/resources/default/loot-chests.yml diff --git a/src/main/resources/default/messages.yml b/spigot-plugin/src/main/resources/default/messages.yml similarity index 100% rename from src/main/resources/default/messages.yml rename to spigot-plugin/src/main/resources/default/messages.yml diff --git a/src/main/resources/default/professions/alchemy.yml b/spigot-plugin/src/main/resources/default/professions/alchemy.yml similarity index 100% rename from src/main/resources/default/professions/alchemy.yml rename to spigot-plugin/src/main/resources/default/professions/alchemy.yml diff --git a/src/main/resources/default/professions/enchanting.yml b/spigot-plugin/src/main/resources/default/professions/enchanting.yml similarity index 100% rename from src/main/resources/default/professions/enchanting.yml rename to spigot-plugin/src/main/resources/default/professions/enchanting.yml diff --git a/src/main/resources/default/professions/farming.yml b/spigot-plugin/src/main/resources/default/professions/farming.yml similarity index 100% rename from src/main/resources/default/professions/farming.yml rename to spigot-plugin/src/main/resources/default/professions/farming.yml diff --git a/src/main/resources/default/professions/fishing.yml b/spigot-plugin/src/main/resources/default/professions/fishing.yml similarity index 100% rename from src/main/resources/default/professions/fishing.yml rename to spigot-plugin/src/main/resources/default/professions/fishing.yml diff --git a/src/main/resources/default/professions/mining.yml b/spigot-plugin/src/main/resources/default/professions/mining.yml similarity index 100% rename from src/main/resources/default/professions/mining.yml rename to spigot-plugin/src/main/resources/default/professions/mining.yml diff --git a/src/main/resources/default/professions/smelting.yml b/spigot-plugin/src/main/resources/default/professions/smelting.yml similarity index 100% rename from src/main/resources/default/professions/smelting.yml rename to spigot-plugin/src/main/resources/default/professions/smelting.yml diff --git a/src/main/resources/default/professions/smithing.yml b/spigot-plugin/src/main/resources/default/professions/smithing.yml similarity index 100% rename from src/main/resources/default/professions/smithing.yml rename to spigot-plugin/src/main/resources/default/professions/smithing.yml diff --git a/src/main/resources/default/professions/woodcutting.yml b/spigot-plugin/src/main/resources/default/professions/woodcutting.yml similarity index 100% rename from src/main/resources/default/professions/woodcutting.yml rename to spigot-plugin/src/main/resources/default/professions/woodcutting.yml diff --git a/src/main/resources/default/quests/adv-begins.yml b/spigot-plugin/src/main/resources/default/quests/adv-begins.yml similarity index 100% rename from src/main/resources/default/quests/adv-begins.yml rename to spigot-plugin/src/main/resources/default/quests/adv-begins.yml diff --git a/src/main/resources/default/quests/fetch-mango.yml b/spigot-plugin/src/main/resources/default/quests/fetch-mango.yml similarity index 100% rename from src/main/resources/default/quests/fetch-mango.yml rename to spigot-plugin/src/main/resources/default/quests/fetch-mango.yml diff --git a/src/main/resources/default/quests/tutorial.yml b/spigot-plugin/src/main/resources/default/quests/tutorial.yml similarity index 100% rename from src/main/resources/default/quests/tutorial.yml rename to spigot-plugin/src/main/resources/default/quests/tutorial.yml diff --git a/src/main/resources/default/recipes/brewing.yml b/spigot-plugin/src/main/resources/default/recipes/brewing.yml similarity index 100% rename from src/main/resources/default/recipes/brewing.yml rename to spigot-plugin/src/main/resources/default/recipes/brewing.yml diff --git a/src/main/resources/default/recipes/furnace.yml b/spigot-plugin/src/main/resources/default/recipes/furnace.yml similarity index 100% rename from src/main/resources/default/recipes/furnace.yml rename to spigot-plugin/src/main/resources/default/recipes/furnace.yml diff --git a/src/main/resources/default/restrictions.yml b/spigot-plugin/src/main/resources/default/restrictions.yml similarity index 100% rename from src/main/resources/default/restrictions.yml rename to spigot-plugin/src/main/resources/default/restrictions.yml diff --git a/src/main/resources/default/skills/ambers.yml b/spigot-plugin/src/main/resources/default/skills/ambers.yml similarity index 100% rename from src/main/resources/default/skills/ambers.yml rename to spigot-plugin/src/main/resources/default/skills/ambers.yml diff --git a/src/main/resources/default/skills/backstab.yml b/spigot-plugin/src/main/resources/default/skills/backstab.yml similarity index 100% rename from src/main/resources/default/skills/backstab.yml rename to spigot-plugin/src/main/resources/default/skills/backstab.yml diff --git a/src/main/resources/default/skills/combo-attack.yml b/spigot-plugin/src/main/resources/default/skills/combo-attack.yml similarity index 100% rename from src/main/resources/default/skills/combo-attack.yml rename to spigot-plugin/src/main/resources/default/skills/combo-attack.yml diff --git a/src/main/resources/default/skills/control.yml b/spigot-plugin/src/main/resources/default/skills/control.yml similarity index 100% rename from src/main/resources/default/skills/control.yml rename to spigot-plugin/src/main/resources/default/skills/control.yml diff --git a/src/main/resources/default/skills/deep-wound.yml b/spigot-plugin/src/main/resources/default/skills/deep-wound.yml similarity index 100% rename from src/main/resources/default/skills/deep-wound.yml rename to spigot-plugin/src/main/resources/default/skills/deep-wound.yml diff --git a/src/main/resources/default/skills/empowered-attack.yml b/spigot-plugin/src/main/resources/default/skills/empowered-attack.yml similarity index 100% rename from src/main/resources/default/skills/empowered-attack.yml rename to spigot-plugin/src/main/resources/default/skills/empowered-attack.yml diff --git a/src/main/resources/default/skills/evade.yml b/spigot-plugin/src/main/resources/default/skills/evade.yml similarity index 100% rename from src/main/resources/default/skills/evade.yml rename to spigot-plugin/src/main/resources/default/skills/evade.yml diff --git a/src/main/resources/default/skills/fire-berserker.yml b/spigot-plugin/src/main/resources/default/skills/fire-berserker.yml similarity index 100% rename from src/main/resources/default/skills/fire-berserker.yml rename to spigot-plugin/src/main/resources/default/skills/fire-berserker.yml diff --git a/src/main/resources/default/skills/fire-rage.yml b/spigot-plugin/src/main/resources/default/skills/fire-rage.yml similarity index 100% rename from src/main/resources/default/skills/fire-rage.yml rename to spigot-plugin/src/main/resources/default/skills/fire-rage.yml diff --git a/src/main/resources/default/skills/fire-storm.yml b/spigot-plugin/src/main/resources/default/skills/fire-storm.yml similarity index 100% rename from src/main/resources/default/skills/fire-storm.yml rename to spigot-plugin/src/main/resources/default/skills/fire-storm.yml diff --git a/src/main/resources/default/skills/fireball.yml b/spigot-plugin/src/main/resources/default/skills/fireball.yml similarity index 100% rename from src/main/resources/default/skills/fireball.yml rename to spigot-plugin/src/main/resources/default/skills/fireball.yml diff --git a/src/main/resources/default/skills/furtive-strike.yml b/spigot-plugin/src/main/resources/default/skills/furtive-strike.yml similarity index 100% rename from src/main/resources/default/skills/furtive-strike.yml rename to spigot-plugin/src/main/resources/default/skills/furtive-strike.yml diff --git a/src/main/resources/default/skills/greater-healings.yml b/spigot-plugin/src/main/resources/default/skills/greater-healings.yml similarity index 100% rename from src/main/resources/default/skills/greater-healings.yml rename to spigot-plugin/src/main/resources/default/skills/greater-healings.yml diff --git a/src/main/resources/default/skills/human-shield.yml b/spigot-plugin/src/main/resources/default/skills/human-shield.yml similarity index 100% rename from src/main/resources/default/skills/human-shield.yml rename to spigot-plugin/src/main/resources/default/skills/human-shield.yml diff --git a/src/main/resources/default/skills/ice-spikes.yml b/spigot-plugin/src/main/resources/default/skills/ice-spikes.yml similarity index 100% rename from src/main/resources/default/skills/ice-spikes.yml rename to spigot-plugin/src/main/resources/default/skills/ice-spikes.yml diff --git a/src/main/resources/default/skills/minor-healings.yml b/spigot-plugin/src/main/resources/default/skills/minor-healings.yml similarity index 100% rename from src/main/resources/default/skills/minor-healings.yml rename to spigot-plugin/src/main/resources/default/skills/minor-healings.yml diff --git a/src/main/resources/default/skills/neptune-gift.yml b/spigot-plugin/src/main/resources/default/skills/neptune-gift.yml similarity index 100% rename from src/main/resources/default/skills/neptune-gift.yml rename to spigot-plugin/src/main/resources/default/skills/neptune-gift.yml diff --git a/src/main/resources/default/skills/power-mark.yml b/spigot-plugin/src/main/resources/default/skills/power-mark.yml similarity index 100% rename from src/main/resources/default/skills/power-mark.yml rename to spigot-plugin/src/main/resources/default/skills/power-mark.yml diff --git a/src/main/resources/default/skills/sneaky-picky.yml b/spigot-plugin/src/main/resources/default/skills/sneaky-picky.yml similarity index 100% rename from src/main/resources/default/skills/sneaky-picky.yml rename to spigot-plugin/src/main/resources/default/skills/sneaky-picky.yml diff --git a/src/main/resources/default/skills/telekinesy.yml b/spigot-plugin/src/main/resources/default/skills/telekinesy.yml similarity index 100% rename from src/main/resources/default/skills/telekinesy.yml rename to spigot-plugin/src/main/resources/default/skills/telekinesy.yml diff --git a/src/main/resources/default/skills/warp.yml b/spigot-plugin/src/main/resources/default/skills/warp.yml similarity index 100% rename from src/main/resources/default/skills/warp.yml rename to spigot-plugin/src/main/resources/default/skills/warp.yml diff --git a/src/main/resources/default/skills/weaken.yml b/spigot-plugin/src/main/resources/default/skills/weaken.yml similarity index 100% rename from src/main/resources/default/skills/weaken.yml rename to spigot-plugin/src/main/resources/default/skills/weaken.yml diff --git a/src/main/resources/default/sounds.yml b/spigot-plugin/src/main/resources/default/sounds.yml similarity index 100% rename from src/main/resources/default/sounds.yml rename to spigot-plugin/src/main/resources/default/sounds.yml diff --git a/src/main/resources/default/stats.yml b/spigot-plugin/src/main/resources/default/stats.yml similarity index 100% rename from src/main/resources/default/stats.yml rename to spigot-plugin/src/main/resources/default/stats.yml diff --git a/src/main/resources/default/waypoints.yml b/spigot-plugin/src/main/resources/default/waypoints.yml similarity index 100% rename from src/main/resources/default/waypoints.yml rename to spigot-plugin/src/main/resources/default/waypoints.yml diff --git a/src/main/resources/plugin.yml b/spigot-plugin/src/main/resources/plugin.yml similarity index 100% rename from src/main/resources/plugin.yml rename to spigot-plugin/src/main/resources/plugin.yml diff --git a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java b/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java deleted file mode 100644 index a01e69f4..00000000 --- a/src/main/java/net/Indyuce/mmocore/manager/data/mysql/MySQLPlayerDataManager.java +++ /dev/null @@ -1,246 +0,0 @@ -package net.Indyuce.mmocore.manager.data.mysql; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import io.lumine.mythic.lib.MythicLib; -import net.Indyuce.mmocore.MMOCore; -import net.Indyuce.mmocore.api.player.OfflinePlayerData; -import net.Indyuce.mmocore.api.player.PlayerData; -import net.Indyuce.mmocore.api.player.profess.PlayerClass; -import net.Indyuce.mmocore.api.player.profess.SavedClassInformation; -import net.Indyuce.mmocore.guild.provided.Guild; -import net.Indyuce.mmocore.manager.data.PlayerDataManager; -import net.Indyuce.mmocore.manager.data.mysql.MySQLTableEditor.Table; -import org.apache.commons.lang.Validate; -import org.jetbrains.annotations.NotNull; - -import java.sql.SQLException; -import java.util.*; -import java.util.Map.Entry; -import java.util.logging.Level; -import java.util.stream.Collectors; - -public class MySQLPlayerDataManager extends PlayerDataManager { - private final MySQLDataProvider provider; - - public MySQLPlayerDataManager(MySQLDataProvider provider) { - this.provider = provider; - } - - @Override - public void loadData(PlayerData data) { - provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + data.getUniqueId() + "';", (result) -> { - try { - MMOCore.sqlDebug("Loading data for: '" + data.getUniqueId() + "'..."); - - // Initialize custom resources - if (!data.hasUsedTemporaryData()) { - data.setMana(data.getStats().getStat("MAX_MANA")); - data.setStamina(data.getStats().getStat("MAX_STAMINA")); - data.setStellium(data.getStats().getStat("MAX_STELLIUM")); - } - - if (!result.next()) { - data.setLevel(getDefaultData().getLevel()); - data.setClassPoints(getDefaultData().getClassPoints()); - data.setSkillPoints(getDefaultData().getSkillPoints()); - data.setAttributePoints(getDefaultData().getAttributePoints()); - data.setAttributeReallocationPoints(getDefaultData().getAttrReallocPoints()); - data.setExperience(0); - data.getQuestData().updateBossBar(); - - data.setFullyLoaded(); - MMOCore.sqlDebug("Loaded DEFAULT data for: '" + data.getUniqueId() + "' as no saved data was found."); - return; - } - - data.setClassPoints(result.getInt("class_points")); - data.setSkillPoints(result.getInt("skill_points")); - data.setAttributePoints(result.getInt("attribute_points")); - data.setAttributeReallocationPoints(result.getInt("attribute_realloc_points")); - data.setLevel(result.getInt("level")); - data.setExperience(result.getInt("experience")); - if (!isEmpty(result.getString("class"))) - data.setClass(MMOCore.plugin.classManager.get(result.getString("class"))); - - if (!isEmpty(result.getString("times_claimed"))) { - JsonObject json = new JsonParser().parse(result.getString("times_claimed")).getAsJsonObject(); - json.entrySet().forEach(entry -> data.getItemClaims().put(entry.getKey(), entry.getValue().getAsInt())); - } - - if (!isEmpty(result.getString("guild"))) { - Guild guild = provider.getGuildManager().getGuild(result.getString("guild")); - data.setGuild(guild.hasMember(data.getUniqueId()) ? guild : null); - } - if (!isEmpty(result.getString("attributes"))) data.getAttributes().load(result.getString("attributes")); - if (!isEmpty(result.getString("professions"))) - data.getCollectionSkills().load(result.getString("professions")); - if (!isEmpty(result.getString("quests"))) data.getQuestData().load(result.getString("quests")); - data.getQuestData().updateBossBar(); - if (!isEmpty(result.getString("waypoints"))) - data.getWaypoints().addAll(getJSONArray(result.getString("waypoints"))); - if (!isEmpty(result.getString("friends"))) - getJSONArray(result.getString("friends")).forEach(str -> data.getFriends().add(UUID.fromString(str))); - if (!isEmpty(result.getString("skills"))) { - JsonObject object = MythicLib.plugin.getJson().parse(result.getString("skills"), JsonObject.class); - for (Entry entry : object.entrySet()) - data.setSkillLevel(entry.getKey(), entry.getValue().getAsInt()); - } - if (!isEmpty(result.getString("bound_skills"))) - for (String skill : getJSONArray(result.getString("bound_skills"))) - if (data.getProfess().hasSkill(skill)) - data.getBoundSkills().add(data.getProfess().getSkill(skill)); - if (!isEmpty(result.getString("class_info"))) { - JsonObject object = MythicLib.plugin.getJson().parse(result.getString("class_info"), JsonObject.class); - for (Entry entry : object.entrySet()) { - try { - PlayerClass profess = MMOCore.plugin.classManager.get(entry.getKey()); - Validate.notNull(profess, "Could not find class '" + entry.getKey() + "'"); - data.applyClassInfo(profess, new SavedClassInformation(entry.getValue().getAsJsonObject())); - } catch (IllegalArgumentException exception) { - MMOCore.log(Level.WARNING, "Could not load class info '" + entry.getKey() + "': " + exception.getMessage()); - } - } - } - - data.setFullyLoaded(); - MMOCore.sqlDebug("Loaded saved data for: '" + data.getUniqueId() + "'!"); - MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel())); - } catch (SQLException e) { - e.printStackTrace(); - } - }); - } - - private boolean isEmpty(String s) { - return s == null || s.equalsIgnoreCase("null") || s.equalsIgnoreCase("{}") || s.equalsIgnoreCase("[]") || s.equalsIgnoreCase(""); - } - - @Override - public void saveData(PlayerData data) { - MySQLTableEditor sql = new MySQLTableEditor(Table.PLAYERDATA, data.getUniqueId()); - MMOCore.sqlDebug("Saving data for: '" + data.getUniqueId() + "'..."); - - sql.updateData("class_points", data.getClassPoints()); - sql.updateData("skill_points", data.getSkillPoints()); - sql.updateData("attribute_points", data.getAttributePoints()); - sql.updateData("attribute_realloc_points", data.getAttributeReallocationPoints()); - sql.updateData("level", data.getLevel()); - sql.updateData("experience", data.getExperience()); - sql.updateData("class", data.getProfess().getId()); - sql.updateData("last_login", data.getLastLogin()); - sql.updateData("guild", data.hasGuild() ? data.getGuild().getId() : null); - - sql.updateJSONArray("waypoints", data.getWaypoints()); - sql.updateJSONArray("friends", data.getFriends().stream().map(UUID::toString).collect(Collectors.toList())); - sql.updateJSONArray("bound_skills", data.getBoundSkills().stream().map(skill -> skill.getSkill().getHandler().getId()).collect(Collectors.toList())); - - sql.updateJSONObject("skills", data.mapSkillLevels().entrySet()); - sql.updateJSONObject("times_claimed", data.getItemClaims().entrySet()); - - sql.updateData("attributes", data.getAttributes().toJsonString()); - sql.updateData("professions", data.getCollectionSkills().toJsonString()); - sql.updateData("quests", data.getQuestData().toJsonString()); - - sql.updateData("class_info", createClassInfoData(data).toString()); - - MMOCore.sqlDebug("Saved data for: " + data.getUniqueId()); - MMOCore.sqlDebug(String.format("{ class: %s, level: %d }", data.getProfess().getId(), data.getLevel())); - } - - private JsonObject createClassInfoData(PlayerData data) { - JsonObject json = new JsonObject(); - for (String c : data.getSavedClasses()) { - SavedClassInformation info = data.getClassInfo(c); - JsonObject classinfo = new JsonObject(); - classinfo.addProperty("level", info.getLevel()); - classinfo.addProperty("experience", info.getExperience()); - classinfo.addProperty("skill-points", info.getSkillPoints()); - classinfo.addProperty("attribute-points", info.getAttributePoints()); - classinfo.addProperty("attribute-realloc-points", info.getAttributeReallocationPoints()); - JsonObject skillinfo = new JsonObject(); - for (String skill : info.getSkillKeys()) - skillinfo.addProperty(skill, info.getSkillLevel(skill)); - classinfo.add("skill", skillinfo); - JsonObject attributeinfo = new JsonObject(); - for (String attribute : info.getAttributeKeys()) - attributeinfo.addProperty(attribute, info.getAttributeLevel(attribute)); - classinfo.add("attribute", attributeinfo); - - json.add(c, classinfo); - } - - return json; - } - - @NotNull - @Override - public OfflinePlayerData getOffline(UUID uuid) { - return isLoaded(uuid) ? get(uuid) : new MySQLOfflinePlayerData(uuid); - } - - private Collection getJSONArray(String json) { - return new ArrayList<>(Arrays.asList(MythicLib.plugin.getJson().parse(json, String[].class))); - } - - public class MySQLOfflinePlayerData extends OfflinePlayerData { - private int level; - private long lastLogin; - private PlayerClass profess; - private List friends; - - public MySQLOfflinePlayerData(UUID uuid) { - super(uuid); - - provider.getResult("SELECT * FROM mmocore_playerdata WHERE uuid = '" + uuid + "';", (result) -> { - try { - MMOCore.sqlDebug("Loading OFFLINE data for '" + uuid + "'."); - if (!result.next()) { - level = 0; - lastLogin = 0; - profess = MMOCore.plugin.classManager.getDefaultClass(); - friends = new ArrayList<>(); - MMOCore.sqlDebug("Default OFFLINE data loaded."); - } else { - level = result.getInt("level"); - lastLogin = result.getLong("last_login"); - profess = isEmpty(result.getString("class")) ? MMOCore.plugin.classManager.getDefaultClass() : MMOCore.plugin.classManager.get(result.getString("class")); - if (!isEmpty(result.getString("friends"))) - getJSONArray(result.getString("friends")).forEach(str -> friends.add(UUID.fromString(str))); - else friends = new ArrayList<>(); - MMOCore.sqlDebug("Saved OFFLINE data loaded."); - } - } catch (SQLException e) { - e.printStackTrace(); - } - }); - } - - @Override - public void removeFriend(UUID uuid) { - friends.remove(uuid); - new MySQLTableEditor(Table.PLAYERDATA, uuid).updateData("friends", friends.stream().map(UUID::toString).collect(Collectors.toList())); - } - - @Override - public boolean hasFriend(UUID uuid) { - return friends.contains(uuid); - } - - @Override - public PlayerClass getProfess() { - return profess; - } - - @Override - public int getLevel() { - return level; - } - - @Override - public long getLastLogin() { - return lastLogin; - } - } -}