mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-12 10:38:34 +00:00
Fix Javadocs and code issues.
This commit is contained in:
@ -19,10 +19,8 @@
|
||||
|
||||
package com.sk89q.bukkit.util;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class CommandInfo {
|
||||
|
||||
private final String[] aliases;
|
||||
private final Object registeredWith;
|
||||
private final String usage, desc;
|
||||
@ -63,4 +61,5 @@ public class CommandInfo {
|
||||
public Object getRegisteredWith() {
|
||||
return registeredWith;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -19,12 +19,6 @@
|
||||
|
||||
package com.sk89q.bukkit.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sk89q.util.ReflectionUtil;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
@ -32,9 +26,12 @@ import org.bukkit.command.CommandMap;
|
||||
import org.bukkit.command.SimpleCommandMap;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class CommandRegistration {
|
||||
|
||||
static {
|
||||
@ -109,4 +106,5 @@ public class CommandRegistration {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,10 +31,8 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class CommandsManagerRegistration extends CommandRegistration {
|
||||
|
||||
protected CommandsManager<?> commands;
|
||||
|
||||
public CommandsManagerRegistration(Plugin plugin, CommandsManager<?> commands) {
|
||||
@ -60,7 +58,7 @@ public class CommandsManagerRegistration extends CommandRegistration {
|
||||
|
||||
if (cmdMethod != null && cmdMethod.isAnnotationPresent(CommandPermissions.class)) {
|
||||
permissions = Arrays.asList(cmdMethod.getAnnotation(CommandPermissions.class).value());
|
||||
} else if (cmdMethod != null && childMethods != null && childMethods.size() > 0) {
|
||||
} else if (cmdMethod != null && childMethods != null && !childMethods.isEmpty()) {
|
||||
permissions = new ArrayList<String>();
|
||||
for (Method m : childMethods.values()) {
|
||||
if (m.isAnnotationPresent(CommandPermissions.class)) {
|
||||
@ -74,4 +72,5 @@ public class CommandsManagerRegistration extends CommandRegistration {
|
||||
|
||||
return register(toRegister);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,10 +30,8 @@ import org.bukkit.help.HelpTopicFactory;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class DynamicPluginCommandHelpTopic extends HelpTopic {
|
||||
|
||||
private final DynamicPluginCommand cmd;
|
||||
|
||||
public DynamicPluginCommandHelpTopic(DynamicPluginCommand cmd) {
|
||||
@ -140,10 +138,10 @@ public class DynamicPluginCommandHelpTopic extends HelpTopic {
|
||||
}
|
||||
|
||||
public static class Factory implements HelpTopicFactory<DynamicPluginCommand> {
|
||||
|
||||
@Override
|
||||
public HelpTopic createTopic(DynamicPluginCommand command) {
|
||||
return new DynamicPluginCommandHelpTopic(command);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,9 +24,6 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class FallbackRegistrationListener implements Listener {
|
||||
|
||||
private final CommandMap commandRegistration;
|
||||
@ -41,4 +38,5 @@ public class FallbackRegistrationListener implements Listener {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
return section;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
userGroups = new HashMap<String, Set<String>>();
|
||||
userPermissionsCache = new HashMap<String, Set<String>>();
|
||||
@ -64,7 +65,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
List<String> permissions =
|
||||
config.getStringList("permissions.groups." + key + ".permissions", null);
|
||||
|
||||
if (permissions.size() > 0) {
|
||||
if (!permissions.isEmpty()) {
|
||||
Set<String> groupPerms = new HashSet<String>(permissions);
|
||||
userGroupPermissions.put(key, groupPerms);
|
||||
|
||||
@ -84,7 +85,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
List<String> permissions =
|
||||
config.getStringList("permissions.users." + key + ".permissions", null);
|
||||
|
||||
if (permissions.size() > 0) {
|
||||
if (!permissions.isEmpty()) {
|
||||
permsCache.addAll(permissions);
|
||||
}
|
||||
|
||||
@ -92,7 +93,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
config.getStringList("permissions.users." + key + ".groups", null);
|
||||
groups.add("default");
|
||||
|
||||
if (groups.size() > 0) {
|
||||
if (!groups.isEmpty()) {
|
||||
for (String group : groups) {
|
||||
Set<String> groupPerms = userGroupPermissions.get(group);
|
||||
if (groupPerms != null) {
|
||||
@ -107,6 +108,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String player, String permission) {
|
||||
int dotPos = permission.lastIndexOf(".");
|
||||
if (dotPos > -1) {
|
||||
@ -124,11 +126,13 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
return perms.contains("*") || perms.contains(permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String player, String permission) {
|
||||
return hasPermission(player, "worlds." + worldName + "." + permission)
|
||||
|| hasPermission(player, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String player, String group) {
|
||||
Set<String> groups = userGroups.get(player.toLowerCase());
|
||||
if (groups == null) {
|
||||
@ -138,6 +142,7 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
return groups.contains(group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String player) {
|
||||
Set<String> groups = userGroups.get(player.toLowerCase());
|
||||
if (groups == null) {
|
||||
@ -147,22 +152,27 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver {
|
||||
return groups.toArray(new String[groups.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
return hasPermission(player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(worldName, player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return inGroup(player.getName(), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
return getGroups(player.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "No known permissions plugin detected. Using configuration file for permissions.";
|
||||
}
|
||||
|
@ -43,25 +43,31 @@ public class DinnerPermsResolver implements PermissionsResolver {
|
||||
return new DinnerPermsResolver(server);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, String permission) {
|
||||
return hasPermission(server.getOfflinePlayer(name), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
return hasPermission(worldName, server.getOfflinePlayer(name), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String name, String group) {
|
||||
return inGroup(server.getOfflinePlayer(name), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String name) {
|
||||
return getGroups(server.getOfflinePlayer(name));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
Permissible perms = getPermissible(player);
|
||||
if (perms == null) {
|
||||
@ -86,10 +92,12 @@ public class DinnerPermsResolver implements PermissionsResolver {
|
||||
return internalHasPermission(perms, "*") == 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(player, permission); // no per-world ability to check permissions in dinnerperms
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
final Permissible perms = getPermissible(player);
|
||||
if (perms == null) {
|
||||
@ -100,6 +108,7 @@ public class DinnerPermsResolver implements PermissionsResolver {
|
||||
return perms.isPermissionSet(perm) && perms.hasPermission(perm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
Permissible perms = getPermissible(player);
|
||||
if (perms == null) {
|
||||
@ -149,6 +158,7 @@ public class DinnerPermsResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "Using the Bukkit Permissions API.";
|
||||
}
|
||||
|
@ -19,27 +19,32 @@
|
||||
|
||||
package com.sk89q.wepif;
|
||||
|
||||
import com.sk89q.util.yaml.YAMLProcessor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Server;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.sk89q.util.yaml.YAMLProcessor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Server;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
|
||||
private static final Logger log = Logger.getLogger(FlatFilePermissionsResolver.class.getCanonicalName());
|
||||
|
||||
private Map<String, Set<String>> userPermissionsCache;
|
||||
private Set<String> defaultPermissionsCache;
|
||||
private Map<String, Set<String>> userGroups;
|
||||
|
||||
protected File groupFile;
|
||||
protected File userFile;
|
||||
private final File groupFile;
|
||||
private final File userFile;
|
||||
|
||||
public static PermissionsResolver factory(Server server, YAMLProcessor config) {
|
||||
File groups = new File("perms_groups.txt");
|
||||
@ -80,7 +85,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
line = line.trim();
|
||||
|
||||
// Blank line
|
||||
if (line.length() == 0) {
|
||||
if (line.isEmpty()) {
|
||||
continue;
|
||||
} else if (line.charAt(0) == ';' || line.charAt(0) == '#') {
|
||||
continue;
|
||||
@ -98,19 +103,20 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to load permissions", e);
|
||||
} finally {
|
||||
try {
|
||||
if (buff != null) {
|
||||
buff.close();
|
||||
}
|
||||
} catch (IOException e2) {
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
return userGroupPermissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
userGroups = new HashMap<String, Set<String>>();
|
||||
userPermissionsCache = new HashMap<String, Set<String>>();
|
||||
@ -135,7 +141,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
line = line.trim();
|
||||
|
||||
// Blank line
|
||||
if (line.length() == 0) {
|
||||
if (line.isEmpty()) {
|
||||
continue;
|
||||
} else if (line.charAt(0) == ';' || line.charAt(0) == '#') {
|
||||
continue;
|
||||
@ -163,17 +169,18 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to load permissions", e);
|
||||
} finally {
|
||||
try {
|
||||
if (buff != null) {
|
||||
buff.close();
|
||||
}
|
||||
} catch (IOException e2) {
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String player, String permission) {
|
||||
int dotPos = permission.lastIndexOf(".");
|
||||
if (dotPos > -1) {
|
||||
@ -191,20 +198,19 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
return perms.contains("*") || perms.contains(permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String player, String permission) {
|
||||
return hasPermission(player, "worlds." + worldName + "." + permission)
|
||||
|| hasPermission(player, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String player, String group) {
|
||||
Set<String> groups = userGroups.get(player.toLowerCase());
|
||||
if (groups == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return groups.contains(group);
|
||||
return groups != null && groups.contains(group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String player) {
|
||||
Set<String> groups = userGroups.get(player.toLowerCase());
|
||||
if (groups == null) {
|
||||
@ -214,22 +220,27 @@ public class FlatFilePermissionsResolver implements PermissionsResolver {
|
||||
return groups.toArray(new String[groups.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
return hasPermission(player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(worldName, player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return inGroup(player.getName(), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
return getGroups(player.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "perms_groups.txt and perms_users.txt detected! Using flat file permissions.";
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ public class GroupManagerResolver implements PermissionsResolver {
|
||||
this.worldsHolder = worldsHolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
|
||||
}
|
||||
@ -73,10 +74,12 @@ public class GroupManagerResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, String permission) {
|
||||
return hasPermission(null, name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
if (permission == null || permission.isEmpty()) {
|
||||
return false;
|
||||
@ -88,6 +91,7 @@ public class GroupManagerResolver implements PermissionsResolver {
|
||||
return permissionHandler.permission(name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String name, String group) {
|
||||
if (group == null || group.isEmpty()) {
|
||||
return false;
|
||||
@ -99,6 +103,7 @@ public class GroupManagerResolver implements PermissionsResolver {
|
||||
return permissionHandler.inGroup(name, group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String name) {
|
||||
AnjoPermissionsHandler permissionHandler = getPermissionHandler(name, null);
|
||||
if (permissionHandler == null) {
|
||||
@ -107,22 +112,27 @@ public class GroupManagerResolver implements PermissionsResolver {
|
||||
return permissionHandler.getGroups(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
return hasPermission(player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(worldName, player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return inGroup(player.getName(), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
return getGroups(player.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "GroupManager detected! Using GroupManager for permissions.";
|
||||
}
|
||||
|
@ -29,7 +29,13 @@ import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import com.nijikokun.bukkit.Permissions.Permissions;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
|
||||
private static final Logger log = Logger.getLogger(NijiPermissionsResolver.class.getCanonicalName());
|
||||
|
||||
private Server server;
|
||||
private Permissions api;
|
||||
|
||||
@ -56,6 +62,7 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
return new NijiPermissionsResolver(server, (Permissions) plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
|
||||
}
|
||||
@ -65,6 +72,7 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
this.api = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("static-access")
|
||||
public boolean hasPermission(String name, String permission) {
|
||||
try {
|
||||
@ -76,11 +84,12 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
return api.Security.permission(player, permission);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to check permissions", t);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
try {
|
||||
try {
|
||||
@ -89,11 +98,12 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
return api.getHandler().has(server.getPlayerExact(name), permission);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to check permissions", t);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("static-access")
|
||||
public boolean inGroup(String name, String group) {
|
||||
try {
|
||||
@ -105,11 +115,12 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
return api.Security.inGroup(name, group);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to check groups", t);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("static-access")
|
||||
public String[] getGroups(String name) {
|
||||
try {
|
||||
@ -128,23 +139,27 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
return groups;
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to get groups", t);
|
||||
return new String[0];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
return hasPermission(player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(worldName, player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return inGroup(player.getName(), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
return getGroups(player.getName());
|
||||
}
|
||||
@ -155,7 +170,9 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
||||
return permsCommand == null || !(permsCommand.getPlugin().equals(plugin));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "Permissions plugin detected! Using Permissions plugin for permissions.";
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -48,10 +48,12 @@ public class PermissionsExResolver extends DinnerPermsResolver {
|
||||
this.manager = manager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
return manager.has(name, permission, worldName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
Permissible permissible = getPermissible(player);
|
||||
if (permissible == null) {
|
||||
@ -61,14 +63,17 @@ public class PermissionsExResolver extends DinnerPermsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(worldName, player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return super.inGroup(player, group) || manager.getUser(player.getName()).inGroup(group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
if (getPermissible(player) == null) {
|
||||
PermissionUser user = manager.getUser(player.getName());
|
||||
@ -81,6 +86,7 @@ public class PermissionsExResolver extends DinnerPermsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "PermissionsEx detected! Using PermissionsEx for permissions.";
|
||||
}
|
||||
|
@ -35,9 +35,11 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class PermissionsResolverManager implements PermissionsResolver {
|
||||
|
||||
private static final String CONFIG_HEADER = "#\r\n" +
|
||||
"# WEPIF Configuration File\r\n" +
|
||||
"#\r\n" +
|
||||
@ -116,8 +118,7 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
||||
break;
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
logger.warning("Error in factory method for " + resolverClass.getSimpleName() + ": " + e);
|
||||
e.printStackTrace();
|
||||
logger.log(Level.WARNING, "Error in factory method for " + resolverClass.getSimpleName(), e);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -137,42 +138,52 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
||||
logger.info("WEPIF: " + permissionResolver.getDetectionMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
findResolver();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, String permission) {
|
||||
return permissionResolver.hasPermission(name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
return permissionResolver.hasPermission(worldName, name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String player, String group) {
|
||||
return permissionResolver.inGroup(player, group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String player) {
|
||||
return permissionResolver.getGroups(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
return permissionResolver.hasPermission(player, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return permissionResolver.hasPermission(worldName, player, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return permissionResolver.inGroup(player, group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
return permissionResolver.getGroups(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "Using WEPIF for permissions";
|
||||
}
|
||||
@ -183,15 +194,14 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
||||
try {
|
||||
file.createNewFile();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
logger.log(Level.WARNING, "Failed to create new configuration file", e);
|
||||
}
|
||||
}
|
||||
config = new YAMLProcessor(file, false, YAMLFormat.EXTENDED);
|
||||
try {
|
||||
config.load();
|
||||
} catch (IOException e) {
|
||||
logger.severe("Error loading WEPIF Config: " + e);
|
||||
e.printStackTrace();
|
||||
logger.log(Level.WARNING, "Error loading WEPIF configuration", e);
|
||||
}
|
||||
List<String> keys = config.getKeys(null);
|
||||
config.setHeader(CONFIG_HEADER);
|
||||
@ -263,7 +273,6 @@ public class PermissionsResolverManager implements PermissionsResolver {
|
||||
}
|
||||
|
||||
public static class MissingPluginException extends Exception {
|
||||
private static final long serialVersionUID = 7044832912491608706L;
|
||||
}
|
||||
|
||||
class ServerListener implements org.bukkit.event.Listener {
|
||||
|
@ -53,41 +53,51 @@ public class PluginPermissionsResolver implements PermissionsResolver {
|
||||
this.plugin = permissionsPlugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, String permission) {
|
||||
return resolver.hasPermission(name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
return resolver.hasPermission(worldName, name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String player, String group) {
|
||||
return resolver.inGroup(player, group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String player) {
|
||||
return resolver.getGroups(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
return resolver.hasPermission(player, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return resolver.hasPermission(worldName, player, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
return resolver.inGroup(player, group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
return resolver.getGroups(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "Using plugin '" + this.plugin.getDescription().getName() + "' for permissions.";
|
||||
}
|
||||
|
@ -19,13 +19,10 @@
|
||||
|
||||
package com.sk89q.wepif;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class WEPIFRuntimeException extends RuntimeException {
|
||||
private static final long serialVersionUID = 5092745960439109699L;
|
||||
|
||||
public WEPIFRuntimeException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,9 +26,6 @@ import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class bPermissionsResolver implements PermissionsResolver {
|
||||
|
||||
public static PermissionsResolver factory(Server server, YAMLProcessor config) {
|
||||
@ -47,29 +44,36 @@ public class bPermissionsResolver implements PermissionsResolver {
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetectionMessage() {
|
||||
return "bPermissions detected! Using bPermissions for permissions";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, String permission) {
|
||||
return hasPermission(server.getOfflinePlayer(name), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, String name, String permission) {
|
||||
return ApiLayer.hasPermission(worldName, CalculableType.USER, name, permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(String player, String group) {
|
||||
return inGroup(server.getOfflinePlayer(player), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(String player) {
|
||||
return getGroups(server.getOfflinePlayer(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(OfflinePlayer player, String permission) {
|
||||
Player onlinePlayer = player.getPlayer();
|
||||
if (onlinePlayer == null) {
|
||||
@ -79,10 +83,12 @@ public class bPermissionsResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String worldName, OfflinePlayer player, String permission) {
|
||||
return hasPermission(worldName, player.getName(), permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(OfflinePlayer player, String group) {
|
||||
Player onlinePlayer = player.getPlayer();
|
||||
if (onlinePlayer == null) {
|
||||
@ -92,6 +98,7 @@ public class bPermissionsResolver implements PermissionsResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroups(OfflinePlayer player) {
|
||||
Player onlinePlayer = player.getPlayer();
|
||||
if (onlinePlayer == null) {
|
||||
@ -100,4 +107,5 @@ public class bPermissionsResolver implements PermissionsResolver {
|
||||
return ApiLayer.getGroups(onlinePlayer.getWorld().getName(), CalculableType.USER, player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -29,19 +29,14 @@ import com.sk89q.worldedit.blocks.BlockID;
|
||||
import com.sk89q.worldedit.blocks.ItemType;
|
||||
|
||||
public class BukkitPlayerBlockBag extends BlockBag {
|
||||
/**
|
||||
* Player instance.
|
||||
*/
|
||||
|
||||
private Player player;
|
||||
/**
|
||||
* The player's inventory;
|
||||
*/
|
||||
private ItemStack[] items;
|
||||
|
||||
/**
|
||||
* Construct the object.
|
||||
*
|
||||
* @param player
|
||||
* @param player the player
|
||||
*/
|
||||
public BukkitPlayerBlockBag(Player player) {
|
||||
this.player = player;
|
||||
@ -59,17 +54,12 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
||||
/**
|
||||
* Get the player.
|
||||
*
|
||||
* @return
|
||||
* @return the player
|
||||
*/
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a block.
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
@Override
|
||||
public void fetchItem(BaseItem item) throws BlockBagException {
|
||||
final int id = item.getType();
|
||||
@ -125,11 +115,6 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a block.
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
@Override
|
||||
public void storeItem(BaseItem item) throws BlockBagException {
|
||||
final int id = item.getType();
|
||||
@ -197,9 +182,6 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
||||
throw new OutOfSpaceException(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Flush any changes. This is called at the end.
|
||||
*/
|
||||
@Override
|
||||
public void flushChanges() {
|
||||
if (items != null) {
|
||||
@ -208,21 +190,12 @@ public class BukkitPlayerBlockBag extends BlockBag {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a position to be used a source.
|
||||
*
|
||||
* @param pos
|
||||
*/
|
||||
@Override
|
||||
public void addSourcePosition(WorldVector pos) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a position to be used a source.
|
||||
*
|
||||
* @param pos
|
||||
*/
|
||||
@Override
|
||||
public void addSingleSourcePosition(WorldVector pos) {
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,10 +26,10 @@ import org.bukkit.plugin.messaging.PluginMessageListener;
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
/**
|
||||
* Handles incoming WorldEditCui init message
|
||||
* @author zml2008
|
||||
* Handles incoming WorldEditCui init message.
|
||||
*/
|
||||
public class CUIChannelListener implements PluginMessageListener {
|
||||
|
||||
public static final Charset UTF_8_CHARSET = Charset.forName("UTF-8");
|
||||
private final WorldEditPlugin plugin;
|
||||
|
||||
@ -44,4 +44,5 @@ public class CUIChannelListener implements PluginMessageListener {
|
||||
session.handleCUIInitializationMessage(text);
|
||||
session.describeCUI(plugin.wrapPlayer(player));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,16 +28,16 @@ import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
|
||||
/**
|
||||
* Proxy class to catch calls to set blocks.
|
||||
*
|
||||
* @author sk89q
|
||||
*/
|
||||
public class EditSessionBlockChangeDelegate implements BlockChangeDelegate {
|
||||
|
||||
private EditSession editSession;
|
||||
|
||||
public EditSessionBlockChangeDelegate(EditSession editSession) {
|
||||
this.editSession = editSession;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setRawTypeId(int x, int y, int z, int typeId) {
|
||||
try {
|
||||
return editSession.setBlock(new Vector(x, y, z), new BaseBlock(typeId));
|
||||
@ -46,6 +46,7 @@ public class EditSessionBlockChangeDelegate implements BlockChangeDelegate {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setRawTypeIdAndData(int x, int y, int z, int typeId, int data) {
|
||||
try {
|
||||
return editSession.setBlock(new Vector(x, y, z), new BaseBlock(typeId, data));
|
||||
@ -54,23 +55,29 @@ public class EditSessionBlockChangeDelegate implements BlockChangeDelegate {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setTypeId(int x, int y, int z, int typeId) {
|
||||
return setRawTypeId(x, y, z, typeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setTypeIdAndData(int x, int y, int z, int typeId, int data) {
|
||||
return setRawTypeIdAndData(x, y, z, typeId, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTypeId(int x, int y, int z) {
|
||||
return editSession.getBlockType(new Vector(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHeight() {
|
||||
return editSession.getWorld().getMaxY() + 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty(int x, int y, int z) {
|
||||
return editSession.getBlockType(new Vector(x, y, z)) == BlockID.AIR;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,7 +22,12 @@ package com.sk89q.worldedit.bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import com.sk89q.worldedit.LocalSession;
|
||||
|
||||
/**
|
||||
* @deprecated use the regular API
|
||||
*/
|
||||
@Deprecated
|
||||
public class WorldEditAPI {
|
||||
|
||||
private WorldEditPlugin plugin;
|
||||
|
||||
public WorldEditAPI(WorldEditPlugin plugin) {
|
||||
@ -32,11 +37,12 @@ public class WorldEditAPI {
|
||||
/**
|
||||
* Get the session for a player.
|
||||
*
|
||||
* @param player
|
||||
* @return
|
||||
* @param player the player
|
||||
* @return a session
|
||||
*/
|
||||
public LocalSession getSession(Player player) {
|
||||
return plugin.getWorldEdit().getSession(
|
||||
new BukkitPlayer(plugin, plugin.getServerInterface(), player));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ public class WorldEditListener implements Listener {
|
||||
/**
|
||||
* Construct the object;
|
||||
*
|
||||
* @param plugin
|
||||
* @param plugin the plugin
|
||||
*/
|
||||
public WorldEditListener(WorldEditPlugin plugin) {
|
||||
this.plugin = plugin;
|
||||
@ -67,7 +67,7 @@ public class WorldEditListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
// this will automatically refresh their sesssion, we don't have to do anything
|
||||
// this will automatically refresh their session, we don't have to do anything
|
||||
WorldEdit.getInstance().getSession(plugin.wrapPlayer(event.getPlayer()));
|
||||
}
|
||||
|
||||
|
@ -71,9 +71,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
/**
|
||||
* Plugin for Bukkit.
|
||||
*
|
||||
* @author sk89q
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
|
||||
private static final Logger log = Logger.getLogger(WorldEditPlugin.class.getCanonicalName());
|
||||
@ -88,10 +87,12 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Called on plugin enable.
|
||||
*/
|
||||
@SuppressWarnings("AccessStaticViaInstance")
|
||||
@Override
|
||||
public void onEnable() {
|
||||
this.INSTANCE = this;
|
||||
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
getDataFolder().mkdirs();
|
||||
|
||||
WorldEdit worldEdit = WorldEdit.getInstance();
|
||||
@ -191,8 +192,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
protected void createDefaultConfiguration(String name) {
|
||||
File actual = new File(getDataFolder(), name);
|
||||
if (!actual.exists()) {
|
||||
InputStream input =
|
||||
null;
|
||||
InputStream input = null;
|
||||
try {
|
||||
JarFile file = new JarFile(getFile());
|
||||
ZipEntry copy = file.getEntry("defaults/" + name);
|
||||
@ -207,26 +207,24 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
try {
|
||||
output = new FileOutputStream(actual);
|
||||
byte[] buf = new byte[8192];
|
||||
int length = 0;
|
||||
int length;
|
||||
while ((length = input.read(buf)) > 0) {
|
||||
output.write(buf, 0, length);
|
||||
}
|
||||
|
||||
getLogger().info("Default configuration file written: " + name);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
getLogger().log(Level.WARNING, "Failed to write default config file", e);
|
||||
} finally {
|
||||
try {
|
||||
if (input != null) {
|
||||
input.close();
|
||||
}
|
||||
} catch (IOException e) {}
|
||||
input.close();
|
||||
} catch (IOException ignored) {}
|
||||
|
||||
try {
|
||||
if (output != null) {
|
||||
output.close();
|
||||
}
|
||||
} catch (IOException e) {}
|
||||
} catch (IOException ignored) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -262,8 +260,8 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Gets the session for the player.
|
||||
*
|
||||
* @param player
|
||||
* @return
|
||||
* @param player a player
|
||||
* @return a session
|
||||
*/
|
||||
public LocalSession getSession(Player player) {
|
||||
return WorldEdit.getInstance().getSession(wrapPlayer(player));
|
||||
@ -272,8 +270,8 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Gets the session for the player.
|
||||
*
|
||||
* @param player
|
||||
* @return
|
||||
* @param player a player
|
||||
* @return a session
|
||||
*/
|
||||
public EditSession createEditSession(Player player) {
|
||||
LocalPlayer wePlayer = wrapPlayer(player);
|
||||
@ -290,8 +288,8 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Remember an edit session.
|
||||
*
|
||||
* @param player
|
||||
* @param editSession
|
||||
* @param player a player
|
||||
* @param editSession an edit session
|
||||
*/
|
||||
public void remember(Player player, EditSession editSession) {
|
||||
LocalPlayer wePlayer = wrapPlayer(player);
|
||||
@ -306,10 +304,12 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Wrap an operation into an EditSession.
|
||||
*
|
||||
* @param player
|
||||
* @param op
|
||||
* @throws Throwable
|
||||
* @param player a player
|
||||
* @param op the operation
|
||||
* @throws Throwable on any error
|
||||
* @deprecated use the regular API
|
||||
*/
|
||||
@Deprecated
|
||||
public void perform(Player player, WorldEditOperation op) throws Throwable {
|
||||
LocalPlayer wePlayer = wrapPlayer(player);
|
||||
LocalSession session = WorldEdit.getInstance().getSession(wePlayer);
|
||||
@ -325,7 +325,8 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Get the API.
|
||||
*
|
||||
* @return
|
||||
* @return the API
|
||||
* @deprecated use the regular API
|
||||
*/
|
||||
@Deprecated
|
||||
public WorldEditAPI getAPI() {
|
||||
@ -335,7 +336,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Returns the configuration used by WorldEdit.
|
||||
*
|
||||
* @return
|
||||
* @return the configuration
|
||||
*/
|
||||
public BukkitConfiguration getLocalConfiguration() {
|
||||
return config;
|
||||
@ -344,7 +345,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Get the permissions resolver in use.
|
||||
*
|
||||
* @return
|
||||
* @return the permissions resolver
|
||||
*/
|
||||
public PermissionsResolverManager getPermissionsResolver() {
|
||||
return PermissionsResolverManager.getInstance();
|
||||
@ -353,8 +354,8 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Used to wrap a Bukkit Player as a LocalPlayer.
|
||||
*
|
||||
* @param player
|
||||
* @return
|
||||
* @param player a player
|
||||
* @return a wrapped player
|
||||
*/
|
||||
public BukkitPlayer wrapPlayer(Player player) {
|
||||
return new BukkitPlayer(this, this.server, player);
|
||||
@ -371,7 +372,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Get the server interface.
|
||||
*
|
||||
* @return
|
||||
* @return the server interface
|
||||
*/
|
||||
public ServerInterface getServerInterface() {
|
||||
return server;
|
||||
@ -384,7 +385,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Get WorldEdit.
|
||||
*
|
||||
* @return
|
||||
* @return an instance
|
||||
*/
|
||||
public WorldEdit getWorldEdit() {
|
||||
return WorldEdit.getInstance();
|
||||
@ -393,7 +394,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Gets the region selection for the player.
|
||||
*
|
||||
* @param player
|
||||
* @param player aplayer
|
||||
* @return the selection or null if there was none
|
||||
*/
|
||||
public Selection getSelection(Player player) {
|
||||
@ -428,8 +429,8 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter {
|
||||
/**
|
||||
* Sets the region selection for a player.
|
||||
*
|
||||
* @param player
|
||||
* @param selection
|
||||
* @param player the player
|
||||
* @param selection a selection
|
||||
*/
|
||||
public void setSelection(Player player, Selection selection) {
|
||||
if (player == null) {
|
||||
|
@ -26,10 +26,8 @@ import org.bukkit.entity.EntityType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class BukkitEntity extends LocalEntity {
|
||||
|
||||
private final EntityType type;
|
||||
private final UUID entityId;
|
||||
|
||||
@ -48,4 +46,5 @@ public class BukkitEntity extends LocalEntity {
|
||||
org.bukkit.Location loc = BukkitUtil.toLocation(weLoc);
|
||||
return loc.getWorld().spawn(loc, type.getEntityClass()) != null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,10 +26,8 @@ import org.bukkit.entity.ExperienceOrb;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class BukkitExpOrb extends BukkitEntity {
|
||||
|
||||
private final int amount;
|
||||
|
||||
public BukkitExpOrb(Location loc, UUID entityId, int amount) {
|
||||
@ -47,4 +45,5 @@ public class BukkitExpOrb extends BukkitEntity {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,10 +26,8 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class BukkitItem extends BukkitEntity {
|
||||
|
||||
private final ItemStack stack;
|
||||
public BukkitItem(Location loc, ItemStack stack, UUID entityId) {
|
||||
super(loc, EntityType.DROPPED_ITEM, entityId);
|
||||
@ -41,4 +39,5 @@ public class BukkitItem extends BukkitEntity {
|
||||
org.bukkit.Location loc = BukkitUtil.toLocation(weLoc);
|
||||
return loc.getWorld().dropItem(loc, stack) != null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,18 +30,20 @@ import org.bukkit.entity.Painting;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.Deque;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* @author zml2008
|
||||
*/
|
||||
public class BukkitPainting extends BukkitEntity {
|
||||
|
||||
private static final Logger log = Logger.getLogger(BukkitPainting.class.getCanonicalName());
|
||||
|
||||
private static int spawnTask = -1;
|
||||
private static final Deque<QueuedPaintingSpawn> spawnQueue = new ArrayDeque<QueuedPaintingSpawn>();
|
||||
|
||||
private class QueuedPaintingSpawn {
|
||||
private final Location weLoc;
|
||||
|
||||
public QueuedPaintingSpawn(Location weLoc) {
|
||||
private QueuedPaintingSpawn(Location weLoc) {
|
||||
this.weLoc = weLoc;
|
||||
}
|
||||
|
||||
@ -49,6 +51,7 @@ public class BukkitPainting extends BukkitEntity {
|
||||
spawnRaw(weLoc);
|
||||
}
|
||||
}
|
||||
|
||||
private static class PaintingSpawnRunnable implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
@ -58,7 +61,7 @@ public class BukkitPainting extends BukkitEntity {
|
||||
try {
|
||||
spawn.spawn();
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
log.log(Level.WARNING, "Failed to spawn painting", t);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -82,6 +85,7 @@ public class BukkitPainting extends BukkitEntity {
|
||||
* @param weLoc The WorldEdit location
|
||||
* @return Whether the spawn as successful
|
||||
*/
|
||||
@Override
|
||||
public boolean spawn(Location weLoc) {
|
||||
synchronized (spawnQueue) {
|
||||
spawnQueue.add(new QueuedPaintingSpawn(weLoc));
|
||||
@ -102,4 +106,5 @@ public class BukkitPainting extends BukkitEntity {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,7 +24,6 @@ import java.util.List;
|
||||
|
||||
import com.sk89q.worldedit.LocalWorld;
|
||||
import com.sk89q.worldedit.regions.selector.Polygonal2DRegionSelector;
|
||||
import com.sk89q.worldedit.regions.RegionSelector;
|
||||
import org.bukkit.World;
|
||||
import com.sk89q.worldedit.BlockVector2D;
|
||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
||||
|
@ -52,6 +52,7 @@ public abstract class RegionSelection implements Selection {
|
||||
this.region = region;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegionSelector getRegionSelector() {
|
||||
return selector;
|
||||
}
|
||||
@ -60,48 +61,58 @@ public abstract class RegionSelection implements Selection {
|
||||
this.selector = selector;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getMinimumPoint() {
|
||||
return toLocation(world, region.getMinimumPoint());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector getNativeMinimumPoint() {
|
||||
return region.getMinimumPoint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getMaximumPoint() {
|
||||
return toLocation(world, region.getMaximumPoint());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector getNativeMaximumPoint() {
|
||||
return region.getMaximumPoint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return world;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getArea() {
|
||||
return region.getArea();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWidth() {
|
||||
return region.getWidth();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHeight() {
|
||||
return region.getHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLength() {
|
||||
return region.getLength();
|
||||
}
|
||||
|
||||
public boolean contains(Location pt) {
|
||||
if (!pt.getWorld().equals(world)) {
|
||||
@Override
|
||||
public boolean contains(Location position) {
|
||||
if (!position.getWorld().equals(world)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return region.contains(toVector(pt));
|
||||
return region.contains(toVector(position));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,7 +24,13 @@ import org.bukkit.World;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.regions.RegionSelector;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* An abstraction of WorldEdit regions, which do not use Bukkit objects.
|
||||
*/
|
||||
public interface Selection {
|
||||
|
||||
/**
|
||||
* Get the lower point of a region.
|
||||
*
|
||||
@ -56,15 +62,16 @@ public interface Selection {
|
||||
/**
|
||||
* Get the region selector. This is for internal use.
|
||||
*
|
||||
* @return
|
||||
* @return the region selector
|
||||
*/
|
||||
public RegionSelector getRegionSelector();
|
||||
|
||||
/**
|
||||
* Get the world.
|
||||
*
|
||||
* @return
|
||||
* @return the world, which may be null
|
||||
*/
|
||||
@Nullable
|
||||
public World getWorld();
|
||||
|
||||
/**
|
||||
@ -98,8 +105,9 @@ public interface Selection {
|
||||
/**
|
||||
* Returns true based on whether the region contains the point,
|
||||
*
|
||||
* @param pt
|
||||
* @return
|
||||
* @param position a vector
|
||||
* @return true if it is contained
|
||||
*/
|
||||
public boolean contains(Location pt);
|
||||
public boolean contains(Location position);
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user