GroupManager/src/main/java/org/anjocaido/groupmanager/events/GMWorldListener.java

50 lines
2.1 KiB
Java

package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldInitEvent;
/**
* @author ElgarL
*
* Handle new world creation from other plugins
*
*/
public class GMWorldListener implements Listener {
private final GroupManager plugin;
public GMWorldListener(final GroupManager instance) {
plugin = instance;
registerEvents();
}
@EventHandler(priority = EventPriority.LOWEST)
public void onWorldInit(final WorldInitEvent event) {
final String worldName = event.getWorld().getName();
if (GroupManager.isLoaded() && !plugin.getWorldsHolder().isInList(worldName)) {
GroupManager.logger.info("发现一个新的世界...");
GroupManager.logger.info("创建新的数据: " + worldName);
if (plugin.getWorldsHolder().isWorldKnown("all_unnamed_worlds")) {
final String usersMirror = plugin.getWorldsHolder().getMirrorsUser().get("all_unnamed_worlds");
final String groupsMirror = plugin.getWorldsHolder().getMirrorsGroup().get("all_unnamed_worlds");
if (usersMirror != null)
plugin.getWorldsHolder().getMirrorsUser().put(worldName.toLowerCase(), usersMirror);
if (groupsMirror != null)
plugin.getWorldsHolder().getMirrorsGroup().put(worldName.toLowerCase(), groupsMirror);
}
plugin.getWorldsHolder().setupWorldFolder(worldName);
plugin.getWorldsHolder().loadWorld(worldName);
if (plugin.getWorldsHolder().isInList(worldName)) {
GroupManager.logger.info("请不要忘记配置或者镜像这个世界在 config.yml.");
} else
GroupManager.logger.severe("自动配置失败 请联系开发者.");
}
}
private void registerEvents() {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
}