mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-06-14 21:13:54 +00:00
Add support for delegating permissions to Sponge.
When Sponge is not installed, behaviour is as before. Closes #331
This commit is contained in:
@ -23,6 +23,7 @@ import net.minecraft.command.ICommand;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.world.WorldSettings.GameType;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import org.spongepowered.api.entity.player.Player;
|
||||
|
||||
public interface ForgePermissionsProvider {
|
||||
|
||||
@ -49,4 +50,17 @@ public interface ForgePermissionsProvider {
|
||||
@Override
|
||||
public void registerPermission(ICommand command, String permission) {}
|
||||
}
|
||||
|
||||
public static class SpongePermissionsProvider implements ForgePermissionsProvider {
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(EntityPlayerMP player, String permission) {
|
||||
return ((Player) player).hasPermission(permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerPermission(ICommand command, String permission) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.CommandEvent;
|
||||
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import net.minecraftforge.fml.common.Loader;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.Mod.EventHandler;
|
||||
import net.minecraftforge.fml.common.Mod.Instance;
|
||||
@ -60,7 +61,7 @@ import static net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
|
||||
/**
|
||||
* The Forge implementation of WorldEdit.
|
||||
*/
|
||||
@Mod(modid = ForgeWorldEdit.MOD_ID, name = "WorldEdit", version = "%VERSION%", acceptableRemoteVersions = "*")
|
||||
@Mod(modid = ForgeWorldEdit.MOD_ID, name = "WorldEdit", version = "%VERSION%", acceptableRemoteVersions = "*", dependencies = "after:Sponge")
|
||||
public class ForgeWorldEdit {
|
||||
|
||||
public static Logger logger;
|
||||
@ -116,7 +117,12 @@ public class ForgeWorldEdit {
|
||||
this.platform = new ForgePlatform(this);
|
||||
|
||||
WorldEdit.getInstance().getPlatformManager().register(platform);
|
||||
this.provider = new ForgePermissionsProvider.VanillaPermissionsProvider(platform);
|
||||
|
||||
if (Loader.isModLoaded("Sponge")) {
|
||||
this.provider = new ForgePermissionsProvider.SpongePermissionsProvider();
|
||||
} else {
|
||||
this.provider = new ForgePermissionsProvider.VanillaPermissionsProvider(platform);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
Reference in New Issue
Block a user