9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-25 09:59:20 +00:00
This commit is contained in:
Xiao-MoMi
2022-10-15 22:39:50 +08:00
parent 9cc1abfc44
commit 04cfa5770f
7 changed files with 69 additions and 28 deletions

View File

@@ -106,6 +106,11 @@ public class MainConfig {
public static String[] summerMsg;
public static String[] autumnMsg;
public static String[] winterMsg;
public static boolean enableSeasonChangeCmd;
public static String[] winterCmd;
public static String[] springCmd;
public static String[] summerCmd;
public static String[] autumnCmd;
public static String worldFolder;
public static boolean rightHarvestVanilla;
public static boolean preventPlantVanilla;
@@ -174,6 +179,11 @@ public class MainConfig {
summerMsg = config.getStringList("season-broadcast.summer").toArray(new String[0]);
autumnMsg = config.getStringList("season-broadcast.autumn").toArray(new String[0]);
winterMsg = config.getStringList("season-broadcast.winter").toArray(new String[0]);
enableSeasonChangeCmd = config.getBoolean("season-change-command.enable", false);
springCmd = config.getStringList("season-change-command.spring").toArray(new String[0]);
summerCmd = config.getStringList("season-change-command.summer").toArray(new String[0]);
autumnCmd = config.getStringList("season-change-command.autumn").toArray(new String[0]);
winterCmd = config.getStringList("season-change-command.winter").toArray(new String[0]);
try {
boneMealSuccess = Particle.valueOf(config.getString("mechanics.bone-meal.success-particle", "VILLAGER_HAPPY"));
@@ -314,7 +324,7 @@ public class MainConfig {
else {skillXP = new EcoSkillsHook();}
}
if (config.getBoolean("integration.JobsReborn")) {
if (Bukkit.getPluginManager().getPlugin("JobsReborn") == null) Log.warn("Failed to initialize JobsReborn!");
if (Bukkit.getPluginManager().getPlugin("Jobs") == null) Log.warn("Failed to initialize JobsReborn!");
else {skillXP = new JobsRebornHook();}
}
realisticSeasonHook = false;

View File

@@ -301,7 +301,7 @@ public class ItemsAdderWireHandler extends ItemsAdderHandler {
event.setCancelled(true);
CustomBlock.place(namespacedId, location);
if (player.getGameMode() != GameMode.CREATIVE)
CustomBlock.byAlreadyPlaced(location.getBlock()).getLoot().forEach(itemStack -> location.getWorld().dropItem(location.clone().add(0.5,0.2,0.5), itemStack));
CustomBlock.byAlreadyPlaced(location.getBlock()).getLoot().forEach(itemStack -> location.getWorld().dropItemNaturally(location, itemStack));
CustomBlock.remove(location);
}

View File

@@ -96,35 +96,57 @@ public class InternalSeason extends Function implements SeasonInterface {
return;
}
CCSeason oldSeason = seasonHashMap.put(world, season);
if (!MainConfig.enableSeasonBroadcast) return;
if (!MainConfig.enableSeasonBroadcast && !MainConfig.enableSeasonChangeCmd) return;
if (oldSeason == null) return;
// season changed
if (oldSeason != season) {
Collection<? extends Player> players;
if (MainConfig.syncSeason) players = Bukkit.getOnlinePlayers();
else players = world.getPlayers();
if (MainConfig.enableSeasonBroadcast) {
Collection<? extends Player> players;
if (MainConfig.syncSeason) players = Bukkit.getOnlinePlayers();
else players = world.getPlayers();
switch (season) {
case SPRING -> players.forEach(player -> {
for (String msg : MainConfig.springMsg) {
AdventureUtil.playerMessage(player, msg);
switch (season) {
case SPRING -> players.forEach(player -> {
for (String msg : MainConfig.springMsg) {
AdventureUtil.playerMessage(player, msg);
}
});
case SUMMER -> players.forEach(player -> {
for (String msg : MainConfig.summerMsg) {
AdventureUtil.playerMessage(player, msg);
}
});
case AUTUMN -> players.forEach(player -> {
for (String msg : MainConfig.autumnMsg) {
AdventureUtil.playerMessage(player, msg);
}
});
case WINTER -> players.forEach(player -> {
for (String msg : MainConfig.winterMsg) {
AdventureUtil.playerMessage(player, msg);
}
});
}
}
if (MainConfig.enableSeasonChangeCmd) {
switch (season) {
case SPRING -> {
for (String cmd : MainConfig.springCmd)
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), cmd);
}
});
case SUMMER -> players.forEach(player -> {
for (String msg : MainConfig.summerMsg) {
AdventureUtil.playerMessage(player, msg);
case SUMMER -> {
for (String cmd : MainConfig.summerCmd)
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), cmd);
}
});
case AUTUMN -> players.forEach(player -> {
for (String msg : MainConfig.autumnMsg) {
AdventureUtil.playerMessage(player, msg);
case AUTUMN -> {
for (String cmd : MainConfig.autumnCmd)
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), cmd);
}
});
case WINTER -> players.forEach(player -> {
for (String msg : MainConfig.winterMsg) {
AdventureUtil.playerMessage(player, msg);
case WINTER -> {
for (String cmd : MainConfig.winterCmd)
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), cmd);
}
});
}
}
}
}

View File

@@ -88,6 +88,9 @@ public class CropManager extends Function {
this.worldListener = new WorldListener(this);
this.armorStandUtil = new ArmorStandUtil(this);
Bukkit.getPluginManager().registerEvents(itemSpawnListener, CustomCrops.plugin);
Bukkit.getPluginManager().registerEvents(worldListener, CustomCrops.plugin);
loadMode();
loadSeason();
loadPacket();
@@ -408,7 +411,9 @@ public class CropManager extends Function {
}
}
@Nullable
private ItemStack getLoot(String id) {
if (id == null) return null;
if (MiscUtils.isVanillaItem(id)) return new ItemStack(Material.valueOf(id));
else return customInterface.getItemStack(id);
}

View File

@@ -26,7 +26,7 @@ import org.bukkit.event.world.WorldUnloadEvent;
public record WorldListener(CropManager cropManager) implements Listener {
@EventHandler
public void onWorldUnload(WorldLoadEvent event) {
public void onWorldLoad(WorldLoadEvent event) {
cropManager.onWorldLoad(event.getWorld());
}