FastAsyncWorldedit/nukkit/src/main/java/com/boydti/fawe/nukkit/optimization/FaweNukkit.java

193 lines
5.0 KiB
Java
Raw Normal View History

2016-09-05 04:35:05 +02:00
package com.boydti.fawe.nukkit.optimization;
2017-08-15 11:43:17 +02:00
import cn.nukkit.Nukkit;
2016-09-05 04:35:05 +02:00
import cn.nukkit.Player;
2016-09-05 15:53:50 +02:00
import cn.nukkit.event.EventHandler;
import cn.nukkit.event.Listener;
import cn.nukkit.event.player.PlayerFormRespondedEvent;
2016-09-05 15:53:50 +02:00
import cn.nukkit.event.player.PlayerQuitEvent;
2016-09-05 04:35:05 +02:00
import com.boydti.fawe.Fawe;
import com.boydti.fawe.IFawe;
2016-09-05 15:53:50 +02:00
import com.boydti.fawe.config.Settings;
import com.boydti.fawe.nukkit.core.NukkitTaskManager;
2016-09-05 04:35:05 +02:00
import com.boydti.fawe.nukkit.core.NukkitWorldEdit;
import com.boydti.fawe.nukkit.core.gui.NukkitFormBuilder;
2017-03-09 21:27:29 +01:00
import com.boydti.fawe.nukkit.listener.BrushListener;
2016-09-05 04:35:05 +02:00
import com.boydti.fawe.nukkit.optimization.queue.NukkitQueue;
import com.boydti.fawe.object.FaweChunk;
import com.boydti.fawe.object.FaweCommand;
import com.boydti.fawe.object.FawePlayer;
import com.boydti.fawe.object.FaweQueue;
import com.boydti.fawe.object.brush.visualization.VisualChunk;
2016-09-05 04:35:05 +02:00
import com.boydti.fawe.regions.FaweMaskManager;
import com.boydti.fawe.util.TaskManager;
import com.boydti.fawe.util.gui.FormBuilder;
2016-09-05 04:35:05 +02:00
import com.sk89q.worldedit.world.World;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.UUID;
import java.util.logging.Level;
2016-09-05 15:53:50 +02:00
public class FaweNukkit implements IFawe, Listener {
2016-09-05 04:35:05 +02:00
private final NukkitWorldEdit plugin;
public FaweNukkit(NukkitWorldEdit mod) {
this.plugin = mod;
FaweChunk.HEIGHT = 256;
2017-03-09 21:27:29 +01:00
VisualChunk.VISUALIZE_BLOCK = 20 << 4;
2016-09-05 15:53:50 +02:00
plugin.getServer().getPluginManager().registerEvents(this, plugin);
2017-06-09 09:37:26 +02:00
try {
new BrushListener(mod);
} catch (Throwable e) {
debug("====== BRUSH LISTENER FAILED ======");
e.printStackTrace();
debug("===================================");
}
2016-09-05 15:53:50 +02:00
}
@Override
public FormBuilder getFormBuilder() {
return new NukkitFormBuilder();
}
2017-08-15 11:43:17 +02:00
@Override
public int getPlayerCount() {
return plugin.getServer().getOnlinePlayers().size();
}
@Override
public boolean isOnlineMode() {
return false;
}
@Override
public String getPlatformVersion() {
return Nukkit.VERSION;
}
@EventHandler
public void onFormSubmit(PlayerFormRespondedEvent event) {
// TODO
}
Fix Exception if server is full Could not pass event 'cn.nukkit.event.player.PlayerQuitEvent' to 'FastAsyncWorldEdit v17.05.29-a607d85-699-13.0.8': null on com.boydti.fawe.nukkit.optimization.FaweNukkit cn.nukkit.utils.EventException at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:34) at cn.nukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:56) at cn.nukkit.plugin.PluginManager.callEvent(PluginManager.java:553) at cn.nukkit.Player.close(Player.java:3893) at cn.nukkit.Player.close(Player.java:3879) at cn.nukkit.Player.kick(Player.java:3732) at cn.nukkit.Player.handleDataPacket(Player.java:1959) at cn.nukkit.network.Network.processPackets(Network.java:180) at cn.nukkit.network.Network.processBatch(Network.java:151) at cn.nukkit.Player.handleDataPacket(Player.java:1920) at cn.nukkit.network.RakNetInterface.handleEncapsulated(RakNetInterface.java:157) at cn.nukkit.raknet.server.ServerHandler.handlePacket(ServerHandler.java:123) at cn.nukkit.network.RakNetInterface.process(RakNetInterface.java:68) at cn.nukkit.network.Network.processInterfaces(Network.java:75) at cn.nukkit.Server.tick(Server.java:990) at cn.nukkit.Server.tickProcessor(Server.java:788) at cn.nukkit.Server.start(Server.java:767) at cn.nukkit.Server.<init>(Server.java:458) at cn.nukkit.Nukkit.main(Nukkit.java:68) Caused by: com.sk89q.worldedit.extension.platform.NoCapablePlatformException: No platform was found supporting CONFIGURATION at com.sk89q.worldedit.extension.platform.PlatformManager.queryCapability(PlatformManager.java:186) at com.sk89q.worldedit.extension.platform.PlatformManager.getConfiguration(PlatformManager.java:314) at com.sk89q.worldedit.WorldEdit.getConfiguration(WorldEdit.java:801) at com.sk89q.worldedit.session.SessionManager.get(SessionManager.java:172) at com.sk89q.worldedit.WorldEdit.getSession(WorldEdit.java:210) at com.boydti.fawe.object.FawePlayer.getSession(FawePlayer.java:382) at com.boydti.fawe.object.FawePlayer.unregister(FawePlayer.java:453) at com.boydti.fawe.nukkit.optimization.FaweNukkit.onPlayerQuit(FaweNukkit.java:45) at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:29) ... 18 more
2017-06-18 11:07:10 +02:00
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
FawePlayer fp = FawePlayer.wrap(player);
if (fp != null) {
fp.unregister();
}
Fawe.get().unregister(event.getPlayer().getName());
Fix Exception if server is full Could not pass event 'cn.nukkit.event.player.PlayerQuitEvent' to 'FastAsyncWorldEdit v17.05.29-a607d85-699-13.0.8': null on com.boydti.fawe.nukkit.optimization.FaweNukkit cn.nukkit.utils.EventException at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:34) at cn.nukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:56) at cn.nukkit.plugin.PluginManager.callEvent(PluginManager.java:553) at cn.nukkit.Player.close(Player.java:3893) at cn.nukkit.Player.close(Player.java:3879) at cn.nukkit.Player.kick(Player.java:3732) at cn.nukkit.Player.handleDataPacket(Player.java:1959) at cn.nukkit.network.Network.processPackets(Network.java:180) at cn.nukkit.network.Network.processBatch(Network.java:151) at cn.nukkit.Player.handleDataPacket(Player.java:1920) at cn.nukkit.network.RakNetInterface.handleEncapsulated(RakNetInterface.java:157) at cn.nukkit.raknet.server.ServerHandler.handlePacket(ServerHandler.java:123) at cn.nukkit.network.RakNetInterface.process(RakNetInterface.java:68) at cn.nukkit.network.Network.processInterfaces(Network.java:75) at cn.nukkit.Server.tick(Server.java:990) at cn.nukkit.Server.tickProcessor(Server.java:788) at cn.nukkit.Server.start(Server.java:767) at cn.nukkit.Server.<init>(Server.java:458) at cn.nukkit.Nukkit.main(Nukkit.java:68) Caused by: com.sk89q.worldedit.extension.platform.NoCapablePlatformException: No platform was found supporting CONFIGURATION at com.sk89q.worldedit.extension.platform.PlatformManager.queryCapability(PlatformManager.java:186) at com.sk89q.worldedit.extension.platform.PlatformManager.getConfiguration(PlatformManager.java:314) at com.sk89q.worldedit.WorldEdit.getConfiguration(WorldEdit.java:801) at com.sk89q.worldedit.session.SessionManager.get(SessionManager.java:172) at com.sk89q.worldedit.WorldEdit.getSession(WorldEdit.java:210) at com.boydti.fawe.object.FawePlayer.getSession(FawePlayer.java:382) at com.boydti.fawe.object.FawePlayer.unregister(FawePlayer.java:453) at com.boydti.fawe.nukkit.optimization.FaweNukkit.onPlayerQuit(FaweNukkit.java:45) at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:29) ... 18 more
2017-06-18 11:07:10 +02:00
}
2016-09-05 04:35:05 +02:00
@Override
public void debug(String s) {
2016-09-08 05:26:10 +02:00
if (plugin.getWELogger() == null) {
System.out.println(s);
} else {
plugin.getWELogger().log(Level.INFO, s);
}
2016-09-05 04:35:05 +02:00
}
@Override
public File getDirectory() {
return plugin.getDataFolder();
}
@Override
public void setupCommand(String label, final FaweCommand cmd) {
plugin.getServer().getCommandMap().register(label, new NukkitCommand(label, cmd));
2016-09-05 04:35:05 +02:00
}
@Override
public FawePlayer wrap(Object obj) {
if (obj.getClass() == String.class) {
String name = (String) obj;
FawePlayer existing = Fawe.get().getCachedPlayer(name);
if (existing != null) {
return existing;
}
return new FaweNukkitPlayer(getPlugin().getServer().getPlayer(name));
} else if (obj instanceof Player) {
Player player = (Player) obj;
FawePlayer existing = Fawe.get().getCachedPlayer(player.getName());
return existing != null ? existing : new FaweNukkitPlayer(player);
} else {
return null;
}
}
public NukkitWorldEdit getPlugin() {
return plugin;
}
@Override
public void setupVault() {
}
@Override
public TaskManager getTaskManager() {
return new NukkitTaskManager(plugin);
2016-09-05 04:35:05 +02:00
}
@Override
public FaweQueue getNewQueue(World world, boolean fast) {
Settings.IMP.HISTORY.COMBINE_STAGES = false;
2016-09-05 04:35:05 +02:00
return new NukkitQueue(this, world);
}
@Override
public FaweQueue getNewQueue(String world, boolean fast) {
Settings.IMP.HISTORY.COMBINE_STAGES = false;
return new NukkitQueue(this, world);
}
2016-09-05 04:35:05 +02:00
@Override
public String getWorldName(World world) {
return world.getName();
}
@Override
public Collection<FaweMaskManager> getMaskManagers() {
return new ArrayList<>();
}
@Override
public void startMetrics() {
Metrics metrics = new Metrics(plugin);
metrics.start();
}
@Override
public String getPlatform() {
2016-11-29 05:05:18 +01:00
return "nukkit";
2016-09-05 04:35:05 +02:00
}
@Override
public UUID getUUID(String name) {
try {
return UUID.fromString(name);
} catch (Exception e) {
return null;
}
}
@Override
public String getName(UUID uuid) {
return uuid.toString();
}
@Override
public Object getBlocksHubApi() {
return null;
}
}