You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
4.1 KiB

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()));
}
}
}