|
|
|
package ru.simsonic.rscPermissions;
|
|
|
|
|
|
|
|
import com.sk89q.wepif.PermissionsResolverManager;
|
|
|
|
import org.bukkit.command.ConsoleCommandSender;
|
|
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import org.bukkit.plugin.ServicePriority;
|
|
|
|
import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes;
|
|
|
|
import ru.simsonic.rscPermissions.API.Settings;
|
|
|
|
import ru.simsonic.rscPermissions.Bukkit.VaultChat;
|
|
|
|
import ru.simsonic.rscPermissions.Bukkit.VaultPermission;
|
|
|
|
import ru.simsonic.rscPermissions.Bukkit.WorldEditPermissions;
|
|
|
|
import ru.simsonic.rscPermissions.Engine.Phrases;
|
|
|
|
|
|
|
|
public class BridgeForBukkitAPI
|
|
|
|
{
|
|
|
|
private static BridgeForBukkitAPI instance;
|
|
|
|
public static BridgeForBukkitAPI getInstance()
|
|
|
|
{
|
|
|
|
return instance;
|
|
|
|
}
|
|
|
|
private final BukkitPluginMain rscp;
|
|
|
|
private final VaultPermission vaultPermission;
|
|
|
|
private final VaultChat vaultChat;
|
|
|
|
protected BridgeForBukkitAPI(BukkitPluginMain plugin)
|
|
|
|
{
|
|
|
|
BridgeForBukkitAPI.instance = BridgeForBukkitAPI.this;
|
|
|
|
this.rscp = plugin;
|
|
|
|
this.vaultPermission = new VaultPermission(this);
|
|
|
|
this.vaultChat = new VaultChat(this, vaultPermission);
|
|
|
|
}
|
|
|
|
public org.bukkit.plugin.java.JavaPlugin getPlugin()
|
|
|
|
{
|
|
|
|
return this.rscp;
|
|
|
|
}
|
|
|
|
public net.milkbowl.vault.permission.Permission getPermission()
|
|
|
|
{
|
|
|
|
return this.vaultPermission;
|
|
|
|
}
|
|
|
|
public net.milkbowl.vault.chat.Chat getChat()
|
|
|
|
{
|
|
|
|
return this.vaultChat;
|
|
|
|
}
|
|
|
|
public String getName()
|
|
|
|
{
|
|
|
|
return rscp.getDescription().getName();
|
|
|
|
}
|
|
|
|
public boolean isEnabled()
|
|
|
|
{
|
|
|
|
return rscp.isEnabled();
|
|
|
|
}
|
|
|
|
protected void setupVault()
|
|
|
|
{
|
|
|
|
final ConsoleCommandSender console = rscp.getServer().getConsoleSender();
|
|
|
|
final Plugin plugin = rscp.getServer().getPluginManager().getPlugin("Vault");
|
|
|
|
if(plugin != null)
|
|
|
|
{
|
|
|
|
// Register Chat
|
|
|
|
rscp.getServer().getServicesManager().register(
|
|
|
|
net.milkbowl.vault.chat.Chat.class, vaultChat,
|
|
|
|
rscp, ServicePriority.Highest);
|
|
|
|
// Register Permission
|
|
|
|
rscp.getServer().getServicesManager().register(
|
|
|
|
net.milkbowl.vault.permission.Permission.class, vaultPermission,
|
|
|
|
rscp, ServicePriority.Highest);
|
|
|
|
console.sendMessage(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_V_Y.toString()));
|
|
|
|
} else
|
|
|
|
console.sendMessage(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_V_N.toString()));
|
|
|
|
}
|
|
|
|
protected void setupWEPIF()
|
|
|
|
{
|
|
|
|
final ConsoleCommandSender console = rscp.getServer().getConsoleSender();
|
|
|
|
final Plugin plugin = rscp.getServer().getPluginManager().getPlugin("WorldEdit");
|
|
|
|
if(plugin != null)
|
|
|
|
{
|
|
|
|
final WorldEditPermissions wepif = new WorldEditPermissions(this);
|
|
|
|
final PermissionsResolverManager prm = PermissionsResolverManager.getInstance();
|
|
|
|
if(prm != null)
|
|
|
|
prm.setPluginPermissionsResolver(wepif);
|
|
|
|
else
|
|
|
|
PermissionsResolverManager.initialize(wepif);
|
|
|
|
console.sendMessage(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_WE_Y.toString()));
|
|
|
|
} else
|
|
|
|
console.sendMessage(GenericChatCodes.processStringStatic("[rscp] " + Phrases.INTEGRATION_WE_N.toString()));
|
|
|
|
}
|
|
|
|
public void printDebugString(String info)
|
|
|
|
{
|
|
|
|
if(rscp.permissionManager.isConsoleDebugging())
|
|
|
|
{
|
|
|
|
final StringBuilder sb = new StringBuilder(Settings.CHAT_PREFIX).append("[DEBUG] {_LS}").append(info);
|
|
|
|
rscp.getServer().getConsoleSender().sendMessage(GenericChatCodes.processStringStatic(sb.toString()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public void printDebugStackTrace()
|
|
|
|
{
|
|
|
|
if(rscp.permissionManager.isConsoleDebugging())
|
|
|
|
{
|
|
|
|
final StringBuilder sb = new StringBuilder(Settings.CHAT_PREFIX);
|
|
|
|
sb.append("[DEBUG] An API method was invoked from the path:").append(System.lineSeparator());
|
|
|
|
for(StackTraceElement ste : Thread.currentThread().getStackTrace())
|
|
|
|
{
|
|
|
|
final String className = ste.getClassName();
|
|
|
|
if(!className.equals(BridgeForBukkitAPI.class.getName())
|
|
|
|
&& !className.equals(Thread.class.getName())
|
|
|
|
)
|
|
|
|
sb.append(Settings.CHAT_PREFIX).append("[DEBUG] ")
|
|
|
|
.append(className.startsWith(BukkitPluginMain.class.getPackage().getName()) ? "{_LG}" : "{_LS}")
|
|
|
|
.append(ste.toString())
|
|
|
|
.append(System.lineSeparator());
|
|
|
|
}
|
|
|
|
rscp.getServer().getConsoleSender().sendMessage(GenericChatCodes.processStringStatic(sb.toString()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|