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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user