FastAsyncWorldedit/sponge112/src/main/java/com/boydti/fawe/sponge/FaweSponge.java

169 lines
4.9 KiB
Java
Raw Normal View History

2016-04-23 22:41:07 +02:00
package com.boydti.fawe.sponge;
2016-04-02 07:58:42 +02:00
import com.boydti.fawe.Fawe;
import com.boydti.fawe.IFawe;
2016-04-23 22:41:07 +02:00
import com.boydti.fawe.SpongeCommand;
import com.boydti.fawe.config.BBC;
2016-04-02 07:58:42 +02:00
import com.boydti.fawe.object.FaweCommand;
import com.boydti.fawe.object.FawePlayer;
import com.boydti.fawe.object.FaweQueue;
2016-04-02 07:58:42 +02:00
import com.boydti.fawe.regions.FaweMaskManager;
import com.boydti.fawe.util.MainUtil;
2016-04-02 07:58:42 +02:00
import com.boydti.fawe.util.TaskManager;
import com.sk89q.worldedit.sponge.chat.SpongeChatManager;
2016-04-23 22:41:07 +02:00
import com.sk89q.worldedit.world.World;
2016-04-02 07:58:42 +02:00
import java.io.File;
import java.util.ArrayList;
2016-04-02 07:58:42 +02:00
import java.util.Collection;
import java.util.UUID;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.profile.GameProfile;
import org.spongepowered.api.profile.GameProfileManager;
2016-04-02 07:58:42 +02:00
import org.spongepowered.api.text.serializer.TextSerializers;
import static org.spongepowered.api.Sponge.getGame;
2016-04-02 07:58:42 +02:00
public class FaweSponge implements IFawe {
public final SpongeMain plugin;
2016-04-02 07:58:42 +02:00
public FaweSponge instance;
2016-04-02 07:58:42 +02:00
public FaweSponge(SpongeMain plugin) {
2016-04-02 07:58:42 +02:00
instance = this;
this.plugin = plugin;
2016-04-02 07:58:42 +02:00
try {
Fawe.set(this);
2016-12-26 08:42:33 +01:00
Fawe.setupInjector();
2017-03-05 17:19:14 +01:00
com.sk89q.worldedit.sponge.SpongePlayer.inject();
Fawe.get().setChatManager(new SpongeChatManager());
2016-04-02 07:58:42 +02:00
} catch (final Throwable e) {
MainUtil.handleError(e);
2016-04-02 07:58:42 +02:00
}
}
@Override
public void debug(String message) {
message = BBC.color(message);
Sponge.getServer().getConsole().sendMessage(TextSerializers.LEGACY_FORMATTING_CODE.deserialize(BBC.color(message)));
2016-04-02 07:58:42 +02:00
}
2017-08-15 11:43:17 +02:00
@Override
public boolean isOnlineMode() {
return Sponge.getServer().getOnlineMode();
}
@Override
public String getPlatformVersion() {
return Sponge.getPlatform().getMinecraftVersion().getName();
}
@Override
public int getPlayerCount() {
return Sponge.getServer().getOnlinePlayers().size();
}
2016-04-02 07:58:42 +02:00
@Override
public File getDirectory() {
2016-04-02 20:29:31 +02:00
return new File("config/FastAsyncWorldEdit");
2016-04-02 07:58:42 +02:00
}
@Override
public void setupCommand(String label, FaweCommand cmd) {
getGame().getCommandManager().register(plugin, new SpongeCommand(cmd), label);
2016-04-02 07:58:42 +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;
}
Player player = Sponge.getServer().getPlayer(name).orElseGet(null);
return player != null ? new SpongePlayer(player) : null;
} else if (obj instanceof Player) {
Player player = (Player) obj;
FawePlayer existing = Fawe.get().getCachedPlayer(player.getName());
return existing != null ? existing : new SpongePlayer(player);
} else {
return null;
}
2016-04-02 07:58:42 +02:00
}
@Override
public void setupVault() {
debug("Permission hook not implemented yet!");
2016-04-02 07:58:42 +02:00
}
@Override
public TaskManager getTaskManager() {
return new SpongeTaskMan(plugin);
2016-04-02 07:58:42 +02:00
}
@Override
2016-12-26 08:42:33 +01:00
public FaweQueue getNewQueue(World world, boolean fast) {
2017-07-27 02:47:14 +02:00
return new com.boydti.fawe.sponge.v1_12.SpongeQueue_1_12(getWorldName(world));
2016-04-02 07:58:42 +02:00
}
@Override
public FaweQueue getNewQueue(String world, boolean fast) {
2017-07-27 02:47:14 +02:00
return new com.boydti.fawe.sponge.v1_12.SpongeQueue_1_12(world);
2016-04-02 07:58:42 +02:00
}
2016-04-23 22:41:07 +02:00
@Override
public String getWorldName(World world) {
return world.getName();
}
2016-04-02 07:58:42 +02:00
@Override
public Collection<FaweMaskManager> getMaskManagers() {
return new ArrayList<>();
2016-04-02 07:58:42 +02:00
}
@Override
public void startMetrics() {
try {
SpongeMetrics metrics = new SpongeMetrics(Sponge.getGame(), Sponge.getPluginManager().fromInstance(plugin).get());
2016-04-02 07:58:42 +02:00
metrics.start();
2016-04-23 22:41:07 +02:00
} catch (Throwable e) {
debug("[FAWE] &cFailed to load up metrics.");
}
}
2016-04-20 20:22:47 +02:00
@Override
public String getPlatform() {
return "sponge";
}
@Override
public UUID getUUID(String name) {
try {
GameProfileManager pm = Sponge.getServer().getGameProfileManager();
GameProfile profile = pm.get(name).get();
return profile != null ? profile.getUniqueId() : null;
} catch (Exception e) {
return null;
}
}
@Override
public String getName(UUID uuid) {
try {
GameProfileManager pm = Sponge.getServer().getGameProfileManager();
GameProfile profile = pm.get(uuid).get();
return profile != null ? profile.getName().orElse(null) : null;
} catch (Exception e) {
return null;
}
}
@Override
public Object getBlocksHubApi() {
return null;
}
2016-04-02 07:58:42 +02:00
}