类org.bukkit.event.world.WorldUnloadEvent源码实例Demo

下面列出了怎么用org.bukkit.event.world.WorldUnloadEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: QuickShop-Reremake   文件: WorldListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onWorldUnload(WorldUnloadEvent e) {
    // FIXME: 24/11/2019 It's not necessary but ok.
    // This is a workaround, because I don't get parsed chunk events when a
    // world unloads, I think...
    // So manually tell all of these shops they're unloaded.
    for (final Chunk chunk : e.getWorld().getLoadedChunks()) {
        final Map<Location, Shop> inChunk = plugin.getShopManager().getShops(chunk);
        if (inChunk == null) {
            continue;
        }
        for (final Shop shop : inChunk.values()) {
            if (shop.isLoaded()) { //Don't unload already unloaded shops.
                shop.onUnload();
            }
        }
    }
}
 
源代码2 项目: Carbon   文件: ReferenceCleanup.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onWorldUnload(WorldUnloadEvent event) {
	final World world = event.getWorld();
	if (plugin.getConfig().getBoolean("optimizations.cleanupreferences.world", false)) {
		executor.schedule(new Runnable() {
			@Override
			public void run() {
				List<World> loadedworlds = Bukkit.getWorlds();
				for (World loadedworld : loadedworlds) {
					if (loadedworld == world) {
						return;
					}
				}
				nullFields(world);
			}
		}, 1, TimeUnit.SECONDS);
	}
}
 
源代码3 项目: GriefDefender   文件: WorldEventHandler.java
@EventHandler(priority = EventPriority.LOWEST)
public void onWorldUnload(WorldUnloadEvent event) {
    if (!GriefDefenderPlugin.getInstance().claimsEnabledForWorld(event.getWorld().getUID())) {
        return;
    }

    GriefDefenderPlugin.getInstance().dataStore.removeClaimWorldManager(event.getWorld().getUID());
}
 
源代码4 项目: Thermos   文件: CraftServer.java
@Override
public boolean unloadWorld(World world, boolean save) {
    if (world == null) {
        return false;
    }

    net.minecraft.world.WorldServer handle = ((CraftWorld) world).getHandle();

    if (!(console.worlds.contains(handle))) {
        return false;
    }

    if (handle.playerEntities.size() > 0) {
        return false;
    }

    WorldUnloadEvent e = new WorldUnloadEvent(handle.getWorld());
    pluginManager.callEvent(e);

    if (e.isCancelled()) {
        return false;
    }

    if (save) {
        try {
            handle.saveAllChunks(true, null);
            handle.flush();
            WorldSaveEvent event = new WorldSaveEvent(handle.getWorld());
            getPluginManager().callEvent(event);
        } catch (net.minecraft.world.MinecraftException ex) {
            getLogger().log(Level.SEVERE, null, ex);
            FMLLog.log(org.apache.logging.log4j.Level.ERROR, ex, "Failed to save world " + handle.getWorld().getName() + " while unloading it.");
        }
    }
    MinecraftForge.EVENT_BUS.post(new WorldEvent.Unload(handle)); // Cauldron - fire unload event before removing world
    worlds.remove(world.getName().toLowerCase());
    DimensionManager.setWorld(handle.provider.dimensionId, null); // Cauldron - remove world from DimensionManager
    return true;
}
 
源代码5 项目: RedProtect   文件: WorldListener.java
@EventHandler(priority = EventPriority.NORMAL)
public void onWorldUnload(WorldUnloadEvent e) {
    World w = e.getWorld();
    try {
        RedProtect.get().rm.unload(w.getName());

        RedProtect.get().reloadConfigs();
        RedProtect.get().logger.warning("World unloaded: " + w.getName());
    } catch (Exception ex) {
        RedProtect.get().logger.severe("RedProtect problem on unload world:");
        ex.printStackTrace();
    }
}
 
源代码6 项目: Slimefun4   文件: WorldListener.java
@EventHandler
public void onWorldUnload(WorldUnloadEvent e) {
    BlockStorage storage = BlockStorage.getStorage(e.getWorld());

    if (storage != null) {
        storage.save(true);
    }
    else {
        Slimefun.getLogger().log(Level.SEVERE, "Could not save Slimefun Blocks for World \"{0}\"", e.getWorld().getName());
    }
}
 
源代码7 项目: PGM   文件: WorldProblemListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void unloadWorld(WorldUnloadEvent event) {
  this.repairedChunks.removeAll(event.getWorld());
  block36Locations.remove(event.getWorld());
}
 
源代码8 项目: Kettle   文件: CraftServer.java
@Override
public boolean unloadWorld(World world, boolean save) {
    if (world == null) {
        return false;
    }

    WorldServer handle = ((CraftWorld) world).getHandle();

    if (!(console.worldServerList.contains(handle))) {
        return false;
    }

    if (handle.dimension == 0) {
        return false;
    }

    if (handle.playerEntities.size() > 0) {
        return false;
    }

    WorldUnloadEvent e = new WorldUnloadEvent(handle.getWorld());
    pluginManager.callEvent(e);

    if (e.isCancelled()) {
        return false;
    }

    if (save) {
        try {
            handle.saveAllChunks(true, null);
            handle.flush();
        } catch (MinecraftException ex) {
            getLogger().log(Level.SEVERE, null, ex);
        }
    }
    MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(handle)); // fire unload event before removing world
    worlds.remove(world.getName().toLowerCase(java.util.Locale.ENGLISH));
    DimensionManager.setWorld(handle.provider.getDimension(), null, FMLCommonHandler.instance().getMinecraftServerInstance()); // remove world from DimensionManager

    return true;
}
 
源代码9 项目: ProjectAres   文件: LivingEntityMapAdapter.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onWorldUnload(WorldUnloadEvent event) {
    for(Entity entity : event.getWorld().getEntities()) {
        map.remove(entity);
    }
}
 
源代码10 项目: ProjectAres   文件: LeakListener.java
@EventHandler(priority = EventPriority.LOWEST)
public void onWorldChange(WorldUnloadEvent event) {
    leakDetector.expectRelease(event.getWorld(), DEADLINE, true);
}
 
源代码11 项目: ProjectAres   文件: PlayerFreezer.java
@EventHandler(priority = EventPriority.MONITOR)
public void onUnload(WorldUnloadEvent event) {
    armorStands.remove(event.getWorld());
}
 
源代码12 项目: EliteMobs   文件: ChunkUnloadMetadataPurge.java
@EventHandler
public void onWorldUnload(WorldUnloadEvent event) {
    EntityTracker.chunkWiper(event);
}
 
源代码13 项目: EliteMobs   文件: EntityTracker.java
public static void chunkWiper(WorldUnloadEvent event) {
    for (Chunk chunk : event.getWorld().getLoadedChunks())
        for (Entity entity : chunk.getEntities())
            wipeEntity(entity);
}
 
源代码14 项目: LagMonitor   文件: ThreadSafetyListener.java
@EventHandler
public void onWorldUnload(WorldUnloadEvent worldUnloadEvent) {
    checkSafety(worldUnloadEvent);
}
 
源代码15 项目: LagMonitor   文件: ThreadSafetyListener.java
@EventHandler
public void onWorldUnload(WorldUnloadEvent worldUnloadEvent) {
    checkSafety(worldUnloadEvent);
}
 
源代码16 项目: Shopkeepers   文件: WorldListener.java
@EventHandler(priority = EventPriority.LOWEST)
void onWorldUnload(WorldUnloadEvent event) {
	plugin.unloadShopkeepersInWorld(event.getWorld());
}
 
 类所在包
 类方法
 同包方法