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