64 lines
2.1 KiB
Java
64 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
|
|
* <p/>
|
|
* Handle new world creation from other plugins
|
|
*/
|
|
public class GMWorldListener implements Listener {
|
|
|
|
private final GroupManager plugin;
|
|
|
|
public GMWorldListener(GroupManager instance) {
|
|
|
|
plugin = instance;
|
|
registerEvents();
|
|
}
|
|
|
|
private void registerEvents() {
|
|
|
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
|
public void onWorldInit(WorldInitEvent event) {
|
|
|
|
String worldName = event.getWorld().getName();
|
|
|
|
if (GroupManager.isLoaded() && !plugin.getWorldsHolder().isInList(worldName)) {
|
|
GroupManager.logger.info("New world detected...");
|
|
GroupManager.logger.info("Creating data for: " + worldName);
|
|
|
|
if (plugin.getWorldsHolder().isWorldKnown("all_unnamed_worlds")) {
|
|
|
|
String usersMirror = plugin.getWorldsHolder().getMirrorsUser().get("all_unnamed_worlds");
|
|
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("Don't forget to configure/mirror this world in config.yml.");
|
|
} else {
|
|
GroupManager.logger.severe("Failed to configure this world.");
|
|
}
|
|
}
|
|
}
|
|
} |