9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-22 00:19:24 +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

@@ -4,7 +4,7 @@ plugins {
}
group = 'net.momirealms'
version = '2.0-r7'
version = '2.0-r8-hotfix'
repositories {
mavenCentral()

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());
}

View File

@@ -1,5 +1,5 @@
#Don't change
config-version: '13'
config-version: '14'
# lang: english / spanish / chinese
lang: english
@@ -99,7 +99,7 @@ mechanics:
# Season would not affect ripe crops(for better performance and friendly player's experience)
season:
enable: true
# If you want all the worlds share the same season
# If you want all the worlds to share the same season
sync-seasons:
enable: false
world: world
@@ -192,7 +192,7 @@ sounds:
# Hologram information
hologram:
# Pot infomation
# Fertilizer infomation
fertilizer-info:
enable: true
y-offset: 0.8
@@ -233,6 +233,10 @@ season-broadcast:
winter:
- '<#87CEFA>Winter is coming!'
season-change-command:
enable: false
spring:
- 'say spring is coming!'
watering-can-lore: