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