Added support for platforms to declare capabilities.

Platforms can declare certain capabilities and a suggested preference
for the platform for each capability. WorldEdit can then choose
the best platform for a given capability.

Examples of capabilities include providing configuration, registering
game hooks/events, performing changes to the world, or checking
permissions/authorization.
This commit is contained in:
sk89q
2014-06-27 01:11:35 -07:00
parent d9cea950b0
commit e52ca6661f
13 changed files with 416 additions and 131 deletions

View File

@@ -21,11 +21,17 @@ package com.sk89q.worldedit.internal;
import com.sk89q.minecraft.util.commands.Command;
import com.sk89q.minecraft.util.commands.CommandsManager;
import com.sk89q.worldedit.*;
import com.sk89q.worldedit.BiomeTypes;
import com.sk89q.worldedit.LocalConfiguration;
import com.sk89q.worldedit.LocalPlayer;
import com.sk89q.worldedit.ServerInterface;
import com.sk89q.worldedit.extension.platform.Capability;
import com.sk89q.worldedit.extension.platform.Platform;
import com.sk89q.worldedit.extension.platform.Preference;
import com.sk89q.worldedit.world.World;
import java.util.List;
import java.util.Map;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -87,6 +93,10 @@ public class ServerInterfaceAdapter extends ServerInterface {
platform.onCommandRegistration(commands, manager);
}
@Override
public void registerGameHooks() {
}
@Override
public LocalConfiguration getConfiguration() {
return platform.getConfiguration();
@@ -107,6 +117,11 @@ public class ServerInterfaceAdapter extends ServerInterface {
return platform.getPlatformVersion();
}
@Override
public Map<Capability, Preference> getCapabilities() {
return platform.getCapabilities();
}
/**
* Adapt an {@link Platform} instance into a {@link ServerInterface}.
*