diff --git a/build.gradle b/build.gradle index 72ac97e..9e8aa3f 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { group = 'net.momirealms' -version = '1.6.1.0' +version = '1.6.1.2' repositories { mavenCentral() @@ -63,8 +63,10 @@ dependencies { compileOnly 'com.sk89q.worldguard:worldguard-bukkit:7.0.7' compileOnly 'com.github.LoneDev6:api-itemsadder:3.2.3c' compileOnly 'com.palmergames.bukkit.towny:towny:0.98.2.0' - compileOnly fileTree(dir:'libs',includes:['*.jar']) + compileOnly 'com.willfp:EcoSkills:1.72.0' + compileOnly 'com.willfp:eco:6.38.3' compileOnly 'com.github.Zrips:Jobs:4.17.2' + compileOnly fileTree(dir:'libs',includes:['*.jar']) implementation("net.kyori:adventure-api:4.11.0") implementation('net.kyori:adventure-platform-bukkit:4.1.2') implementation("net.kyori:adventure-text-minimessage:4.11.0") diff --git a/src/main/java/net/momirealms/customcrops/ConfigReader.java b/src/main/java/net/momirealms/customcrops/ConfigReader.java index cef51e0..66fd5b4 100644 --- a/src/main/java/net/momirealms/customcrops/ConfigReader.java +++ b/src/main/java/net/momirealms/customcrops/ConfigReader.java @@ -47,6 +47,7 @@ public class ConfigReader { public static HashMap FERTILIZERS = new HashMap<>(); public static HashMap CANS = new HashMap<>(); public static HashMap SPRINKLERS = new HashMap<>(); + public static boolean useRedis; public static YamlConfiguration getConfig(String configName) { File file = new File(CustomCrops.plugin.getDataFolder(), configName); @@ -239,6 +240,10 @@ public class ConfigReader { if(Bukkit.getPluginManager().getPlugin("EcoSkills") == null) Log.warn("Failed to initialize EcoSkills!"); else {skillXP = new EcoSkill();hookMessage("EcoSkills");} } + if(config.getBoolean("config.integration.JobsReborn",false)){ + if(Bukkit.getPluginManager().getPlugin("Jobs") == null) Log.warn("Failed to initialize Jobs!"); + else {skillXP = new JobsReborn();hookMessage("JobsReborn");} + } } } @@ -288,7 +293,7 @@ public class ConfigReader { CANS.put(namespacedID, wateringCan); }); } - AdventureManager.consoleMessage("[CustomCrops] " + CANS.size() + " cans loaded!"); + AdventureManager.consoleMessage("[CustomCrops] Loaded " + CANS.size() + " watering-cans"); SPRINKLERS.clear(); if (config.contains("sprinkler")){ @@ -302,7 +307,7 @@ public class ConfigReader { SPRINKLERS.put(twoD, sprinklerData); }); } - AdventureManager.consoleMessage("[CustomCrops] " + SPRINKLERS.size()/2 + " sprinklers loaded!"); + AdventureManager.consoleMessage("[CustomCrops] Loaded " + SPRINKLERS.size()/2 + " sprinklers"); } } @@ -324,8 +329,8 @@ public class ConfigReader { if (greenhouse) range = config.getInt("season.greenhouse.range",7); seasonChange = config.getBoolean("season.auto-season-change.enable",false); duration = config.getInt("season.auto-season-change.duration",28); - if (seasonChange) AdventureManager.consoleMessage("[CustomCrops] Season Change mode: Auto"); - else AdventureManager.consoleMessage("[CustomCrops] Season Change mode: Command"); + if (seasonChange) AdventureManager.consoleMessage("[CustomCrops] Season Change mode: Auto"); + else AdventureManager.consoleMessage("[CustomCrops] Season Change mode: Command"); } } } @@ -480,7 +485,7 @@ public class ConfigReader { }else {cropInstance.setDropIALoot(false);} CROPS.put(key, cropInstance); }); - AdventureManager.consoleMessage("[CustomCrops] " + CROPS.size() + " crops loaded!"); + AdventureManager.consoleMessage("[CustomCrops] Loaded " + CROPS.size() + " crops"); } public static void fertilizerLoad(){ @@ -540,7 +545,7 @@ public class ConfigReader { FERTILIZERS.put(id, yieldIncreasing); }); } - AdventureManager.consoleMessage("[CustomCrops] " + FERTILIZERS.size() + " fertilizers loaded!"); + AdventureManager.consoleMessage("[CustomCrops] Loaded " + FERTILIZERS.size() + " fertilizers"); } public static class Sounds{ @@ -585,11 +590,15 @@ public class ConfigReader { public static void tryEnableJedis(){ YamlConfiguration configuration = ConfigReader.getConfig("redis.yml"); - JedisUtil.useRedis = configuration.getBoolean("redis.enable", false); - if (JedisUtil.useRedis) JedisUtil.initializeRedis(configuration); + if (configuration.getBoolean("redis.enable", false)){ + useRedis = true; + JedisUtil.initializeRedis(configuration); + }else { + useRedis = false; + } } private static void hookMessage(String plugin){ - AdventureManager.consoleMessage("[CustomCrops] " + plugin + " Hooked!"); + AdventureManager.consoleMessage("[CustomCrops] " + plugin + " Hooked!"); } } diff --git a/src/main/java/net/momirealms/customcrops/CustomCrops.java b/src/main/java/net/momirealms/customcrops/CustomCrops.java index b9e79e8..cf9bb1e 100644 --- a/src/main/java/net/momirealms/customcrops/CustomCrops.java +++ b/src/main/java/net/momirealms/customcrops/CustomCrops.java @@ -24,7 +24,7 @@ import net.momirealms.customcrops.datamanager.*; import net.momirealms.customcrops.datamanager.CropManager; import net.momirealms.customcrops.datamanager.SprinklerManager; import net.momirealms.customcrops.helper.LibraryLoader; -import net.momirealms.customcrops.hook.Placeholders; +import net.momirealms.customcrops.integrations.Placeholders; import net.momirealms.customcrops.listener.*; import net.momirealms.customcrops.listener.itemframe.BreakBlockI; import net.momirealms.customcrops.listener.itemframe.BreakFurnitureI; @@ -73,33 +73,31 @@ public final class CustomCrops extends JavaPlugin { public void onEnable() { adventure = BukkitAudiences.create(plugin); - AdventureManager.consoleMessage("[CustomCrops] Running on " + Bukkit.getVersion()); + AdventureManager.consoleMessage("[CustomCrops] Running on " + Bukkit.getVersion()); ConfigReader.reloadConfig(); - if (!Objects.equals(ConfigReader.Config.version, "3")){ + if (!Objects.equals(ConfigReader.Config.version, "5")){ ConfigUtil.update(); } if(Bukkit.getPluginManager().getPlugin("PlaceHolderAPI") != null){ placeholders = new Placeholders(); placeholders.register(); - AdventureManager.consoleMessage("[CustomCrops] PlaceHolderAPI Hooked!"); Bukkit.getPluginManager().registerEvents(new PapiReload(), this); } Objects.requireNonNull(Bukkit.getPluginCommand("customcrops")).setExecutor(new Executor(this)); Objects.requireNonNull(Bukkit.getPluginCommand("customcrops")).setTabCompleter(new Completer()); - //公用事件 Bukkit.getPluginManager().registerEvents(new ItemSpawn(), this); Bukkit.getPluginManager().registerEvents(new JoinAndQuit(), this); ConfigReader.tryEnableJedis(); + if (ConfigReader.Season.enable){ this.seasonManager = new SeasonManager(); this.seasonManager.loadData(); } - this.sprinklerManager = new SprinklerManager(); this.sprinklerManager.loadData(); this.potManager = new PotManager(); @@ -107,14 +105,14 @@ public final class CustomCrops extends JavaPlugin { this.cropTimer = new CropTimer(); if (ConfigReader.Config.cropMode.equalsIgnoreCase("item_frame")){ this.cropManager = new CropManager(true); - AdventureManager.consoleMessage("[CustomCrops] Crop Mode: ItemFrame"); + AdventureManager.consoleMessage("[CustomCrops] Crop Mode: ItemFrame"); Bukkit.getPluginManager().registerEvents(new RightClickI(), this); Bukkit.getPluginManager().registerEvents(new BreakBlockI(), this); Bukkit.getPluginManager().registerEvents(new BreakFurnitureI(), this); Bukkit.getPluginManager().registerEvents(new InteractFurnitureI(), this); }else{ this.cropManager = new CropManager(false); - AdventureManager.consoleMessage("[CustomCrops] Crop Mode: TripWire"); + AdventureManager.consoleMessage("[CustomCrops] Crop Mode: TripWire"); Bukkit.getPluginManager().registerEvents(new RightClickT(), this); Bukkit.getPluginManager().registerEvents(new BreakBlockT(), this); Bukkit.getPluginManager().registerEvents(new BreakFurnitureT(), this); diff --git a/src/main/java/net/momirealms/customcrops/datamanager/CropManager.java b/src/main/java/net/momirealms/customcrops/datamanager/CropManager.java index e5410f0..ce721fa 100644 --- a/src/main/java/net/momirealms/customcrops/datamanager/CropManager.java +++ b/src/main/java/net/momirealms/customcrops/datamanager/CropManager.java @@ -816,7 +816,7 @@ public class CropManager{ } private HashSet getPlayers(){ - if (JedisUtil.useRedis){ + if (ConfigReader.useRedis){ return JedisUtil.getPlayers(); }else { return new HashSet<>(JoinAndQuit.onlinePlayers); diff --git a/src/main/java/net/momirealms/customcrops/datamanager/SeasonManager.java b/src/main/java/net/momirealms/customcrops/datamanager/SeasonManager.java index 55eacb6..52ecdf4 100644 --- a/src/main/java/net/momirealms/customcrops/datamanager/SeasonManager.java +++ b/src/main/java/net/momirealms/customcrops/datamanager/SeasonManager.java @@ -17,7 +17,7 @@ package net.momirealms.customcrops.datamanager; -import net.momirealms.customcrops.hook.RealisticSeason; +import net.momirealms.customcrops.integrations.RealisticSeason; import net.momirealms.customcrops.utils.AdventureManager; import net.momirealms.customcrops.ConfigReader; import net.momirealms.customcrops.CustomCrops; diff --git a/src/main/java/net/momirealms/customcrops/datamanager/SprinklerManager.java b/src/main/java/net/momirealms/customcrops/datamanager/SprinklerManager.java index d329043..06c2055 100644 --- a/src/main/java/net/momirealms/customcrops/datamanager/SprinklerManager.java +++ b/src/main/java/net/momirealms/customcrops/datamanager/SprinklerManager.java @@ -338,7 +338,7 @@ public class SprinklerManager { } private HashSet getPlayers(){ - if (JedisUtil.useRedis){ + if (ConfigReader.useRedis){ return JedisUtil.getPlayers(); }else { return new HashSet<>(JoinAndQuit.onlinePlayers); diff --git a/src/main/java/net/momirealms/customcrops/hook/Placeholders.java b/src/main/java/net/momirealms/customcrops/integrations/Placeholders.java similarity index 98% rename from src/main/java/net/momirealms/customcrops/hook/Placeholders.java rename to src/main/java/net/momirealms/customcrops/integrations/Placeholders.java index 21043b7..d408b38 100644 --- a/src/main/java/net/momirealms/customcrops/hook/Placeholders.java +++ b/src/main/java/net/momirealms/customcrops/integrations/Placeholders.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package net.momirealms.customcrops.hook; +package net.momirealms.customcrops.integrations; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import net.momirealms.customcrops.ConfigReader; diff --git a/src/main/java/net/momirealms/customcrops/hook/RealisticSeason.java b/src/main/java/net/momirealms/customcrops/integrations/RealisticSeason.java similarity index 96% rename from src/main/java/net/momirealms/customcrops/hook/RealisticSeason.java rename to src/main/java/net/momirealms/customcrops/integrations/RealisticSeason.java index 134b9b2..a4ab22a 100644 --- a/src/main/java/net/momirealms/customcrops/hook/RealisticSeason.java +++ b/src/main/java/net/momirealms/customcrops/integrations/RealisticSeason.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package net.momirealms.customcrops.hook; +package net.momirealms.customcrops.integrations; import me.casperge.realisticseasons.api.SeasonsAPI; import org.bukkit.World; diff --git a/src/main/java/net/momirealms/customcrops/integrations/skill/JobsReborn.java b/src/main/java/net/momirealms/customcrops/integrations/skill/JobsReborn.java index 7448eb7..87eb072 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/skill/JobsReborn.java +++ b/src/main/java/net/momirealms/customcrops/integrations/skill/JobsReborn.java @@ -1,9 +1,28 @@ package net.momirealms.customcrops.integrations.skill; +import com.gamingmesh.jobs.Jobs; +import com.gamingmesh.jobs.container.Job; +import com.gamingmesh.jobs.container.JobProgression; +import com.gamingmesh.jobs.container.JobsPlayer; import org.bukkit.entity.Player; +import java.util.List; + public class JobsReborn implements SkillXP{ + @Override public void addXp(Player player, double amount) { + JobsPlayer jobsPlayer = Jobs.getPlayerManager().getJobsPlayer(player); + + if (jobsPlayer != null) { + List jobs = jobsPlayer.getJobProgression(); + + Job job = Jobs.getJob("Farmer"); + + for (JobProgression progression : jobs) + if (progression.getJob().equals(job)){ + progression.addExperience(amount); + } + } } } diff --git a/src/main/java/net/momirealms/customcrops/listener/JoinAndQuit.java b/src/main/java/net/momirealms/customcrops/listener/JoinAndQuit.java index e3a94ff..ce4dd71 100644 --- a/src/main/java/net/momirealms/customcrops/listener/JoinAndQuit.java +++ b/src/main/java/net/momirealms/customcrops/listener/JoinAndQuit.java @@ -1,5 +1,6 @@ package net.momirealms.customcrops.listener; +import net.momirealms.customcrops.ConfigReader; import net.momirealms.customcrops.utils.JedisUtil; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -17,13 +18,13 @@ public class JoinAndQuit implements Listener { @EventHandler public void onJoin(PlayerJoinEvent event){ - if (JedisUtil.useRedis) JedisUtil.addPlayer(event.getPlayer().getName()); + if (ConfigReader.useRedis) JedisUtil.addPlayer(event.getPlayer().getName()); else onlinePlayers.add(event.getPlayer().getName()); } @EventHandler public void onQuit(PlayerQuitEvent event){ - if (JedisUtil.useRedis) JedisUtil.remPlayer(event.getPlayer().getName()); + if (ConfigReader.useRedis) JedisUtil.remPlayer(event.getPlayer().getName()); else onlinePlayers.remove(event.getPlayer().getName()); coolDown.remove(event.getPlayer()); } diff --git a/src/main/java/net/momirealms/customcrops/utils/JedisUtil.java b/src/main/java/net/momirealms/customcrops/utils/JedisUtil.java index 5d3201d..2732e37 100644 --- a/src/main/java/net/momirealms/customcrops/utils/JedisUtil.java +++ b/src/main/java/net/momirealms/customcrops/utils/JedisUtil.java @@ -15,7 +15,6 @@ import java.util.List; public class JedisUtil { private static JedisPool jedisPool; - public static boolean useRedis; public static Jedis getJedis(){ return jedisPool.getResource(); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 93f6b43..16f552c 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,5 +1,5 @@ #Don't change -config-version: '4' +config-version: '5' #Want to sell the crops? #Try this plugin: https://www.spigotmc.org/resources/shipping-bin.104591/ @@ -67,6 +67,7 @@ config: mcMMO: false MMOCore: false EcoSkills: false + JobsReborn: false #integration to sync seasons RealisticSeasons: false diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 46c32b1..b7b2b60 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -22,6 +22,7 @@ softdepend: - EcoSkills - CrashClaim - RealisticSeasons + - Jobs commands: customcrops: usage: /customcrops diff --git a/src/main/resources/zh-cn/config.yml b/src/main/resources/zh-cn/config.yml index 7b0e73c..483d1d1 100644 --- a/src/main/resources/zh-cn/config.yml +++ b/src/main/resources/zh-cn/config.yml @@ -1,5 +1,5 @@ #请不要修改此值 -config-version: '4' +config-version: '5' config: @@ -59,6 +59,7 @@ config: mcMMO: false MMOCore: false EcoSkills: false + JobsReborn: false #季节同步 RealisticSeasons: false