1
0
mirror of https://e.coding.net/circlecloud/Residence.git synced 2025-11-25 21:56:06 +00:00

fix: 修复一个可能被熊孩子利用导致插件奔溃的BUG

This commit is contained in:
502647092
2016-04-20 12:45:49 +08:00
parent feea6e8801
commit b64d05abb5
16 changed files with 43 additions and 37 deletions

View File

@@ -19,13 +19,12 @@ import org.bukkit.plugin.PluginManager;
import com.bekvon.bukkit.residence.event.ResidenceFlagChangeEvent;
import com.bekvon.bukkit.residence.event.ResidenceFlagCheckEvent;
import com.bekvon.bukkit.residence.event.ResidenceFlagEvent.FlagType;
import com.bekvon.bukkit.residence.event.ResidenceOwnerChangeEvent;
import pw.yumc.Residence.ResidenceMain;
import pw.yumc.Residence.permissions.PermissionGroup;
import pw.yumc.Residence.permissions.PermissionManager;
import com.bekvon.bukkit.residence.event.ResidenceOwnerChangeEvent;
/**
*
* @author Administrator
@@ -38,18 +37,6 @@ public class ResidencePermissions extends FlagPermissions {
protected String world;
ResidenceMain plugin;
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res) {
this.plugin = plugin;
this.pm = plugin.getServer().getPluginManager();
residence = res;
}
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res, final String creator, final String inworld) {
this(plugin, res);
owner = creator;
world = inworld;
}
public static ResidencePermissions load(final ResidenceMain plugin, final ClaimedResidence res, final Map<String, Object> root) throws Exception {
final ResidencePermissions newperms = new ResidencePermissions(plugin, res);
newperms.owner = (String) root.get("Owner");
@@ -81,6 +68,18 @@ public class ResidencePermissions extends FlagPermissions {
return newperms;
}
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res) {
this.plugin = plugin;
this.pm = plugin.getServer().getPluginManager();
residence = res;
}
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res, final String creator, final String inworld) {
this(plugin, res);
owner = creator;
world = inworld;
}
public void applyDefaultFlags() {
final PermissionManager gm = plugin.getPermissionManager();
final PermissionGroup group = gm.getGroup(owner, world);
@@ -437,6 +436,10 @@ public class ResidencePermissions extends FlagPermissions {
}
public boolean setPlayerFlag(final Player player, final String targetPlayer, final String flag, final String flagstate, final boolean resadmin) {
if (!plugin.validName(targetPlayer)) {
player.sendMessage(ChatColor.DARK_RED + "非法操作!");
return false;
}
if (validFlagGroups.containsKey(flag)) {
return this.setFlagGroupOnPlayer(player, targetPlayer, flag, flagstate, resadmin);
}