From 47438b7db9278649b8394caa9949d06e6b254a78 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 9 Dec 2020 01:36:21 -0700 Subject: [PATCH] Fix reloading issues --- src/main/java/com/dfsek/terra/Terra.java | 11 ++++++++--- .../java/com/dfsek/terra/command/ReloadCommand.java | 7 +++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/dfsek/terra/Terra.java b/src/main/java/com/dfsek/terra/Terra.java index 621e88e26..8689a30cd 100644 --- a/src/main/java/com/dfsek/terra/Terra.java +++ b/src/main/java/com/dfsek/terra/Terra.java @@ -71,12 +71,17 @@ public class Terra extends GaeaPlugin { private final ConfigRegistry registry = new ConfigRegistry(); private final PluginConfig config = new PluginConfig(); - public void invalidate() { + public void reload() { + Map newMap = new HashMap<>(); + worldMap.forEach((world, tw) -> { + String packID = tw.getConfig().getTemplate().getID(); + newMap.put(world, new TerraWorld(world, registry.get(packID))); + }); worldMap.clear(); - worlds.clear(); - registry.clear(); + worldMap.putAll(newMap); } + @Override public void onDisable() { TerraChunkGenerator.saveAll(); diff --git a/src/main/java/com/dfsek/terra/command/ReloadCommand.java b/src/main/java/com/dfsek/terra/command/ReloadCommand.java index 911562e48..306bc3bc8 100644 --- a/src/main/java/com/dfsek/terra/command/ReloadCommand.java +++ b/src/main/java/com/dfsek/terra/command/ReloadCommand.java @@ -29,8 +29,11 @@ public class ReloadCommand extends Command implements DebugCommand { public boolean execute(@NotNull CommandSender sender, org.bukkit.command.@NotNull Command command, @NotNull String label, @NotNull String[] args) { ((Terra) getMain()).getTerraConfig().load(getMain()); LangUtil.load(((Terra) getMain()).getTerraConfig().getLanguage(), getMain()); // Load language. - if(!((Terra) getMain()).getRegistry().loadAll((Terra) getMain())) LangUtil.send("command.reload-error", sender); - ((Terra) getMain()).invalidate(); + if(!((Terra) getMain()).getRegistry().loadAll((Terra) getMain())) { + LangUtil.send("command.reload-error", sender); + return true; + } + ((Terra) getMain()).reload(); LangUtil.send("command.reload", sender); return true; }