mirror of
https://e.coding.net/circlecloud/ProtectItem.git
synced 2024-12-27 20:48:51 +00:00
complete command ban and unban...
Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
parent
a33344dab2
commit
8546583b9e
@ -8,6 +8,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import cn.citycraft.PluginHelper.commands.BaseCommand;
|
||||
import cn.citycraft.ProtectItem.ProtectItem;
|
||||
import cn.citycraft.ProtectItem.utils.ActionType;
|
||||
|
||||
public class CommandBan extends BaseCommand {
|
||||
ProtectItem plugin;
|
||||
@ -16,6 +17,7 @@ public class CommandBan extends BaseCommand {
|
||||
super("ban");
|
||||
this.plugin = main;
|
||||
setOnlyPlayerExecutable();
|
||||
setPermission("pi.ban");
|
||||
setDescription("§c封禁手持物品");
|
||||
setPossibleArguments("<封禁类型>");
|
||||
}
|
||||
@ -24,7 +26,22 @@ public class CommandBan extends BaseCommand {
|
||||
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
|
||||
final Player p = (Player) sender;
|
||||
final ItemStack item = p.getItemInHand();
|
||||
plugin.getItemManager().addbanItem(item);
|
||||
final String itemname = plugin.getItemManager().getItemName(item);
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
plugin.getItemManager().banItem(item);
|
||||
p.sendMessage("当前物品 " + itemname + " 已被禁封!");
|
||||
return;
|
||||
case 1:
|
||||
|
||||
try {
|
||||
final ActionType action = Enum.valueOf(ActionType.class, args[0]);
|
||||
plugin.getItemManager().banItem(item, action);
|
||||
p.sendMessage("当前物品 " + itemname + " 已被禁封 操作" + action.toString() + "!");
|
||||
} catch (final Exception e) {
|
||||
p.sendMessage("未知的操作类型" + args[0] + "!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,9 +3,12 @@ package cn.citycraft.ProtectItem.commands;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandException;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import cn.citycraft.PluginHelper.commands.BaseCommand;
|
||||
import cn.citycraft.ProtectItem.ProtectItem;
|
||||
import cn.citycraft.ProtectItem.utils.ActionType;
|
||||
|
||||
public class CommandUnban extends BaseCommand {
|
||||
ProtectItem plugin;
|
||||
@ -14,13 +17,31 @@ public class CommandUnban extends BaseCommand {
|
||||
super("unban");
|
||||
this.plugin = main;
|
||||
setOnlyPlayerExecutable();
|
||||
setPermission("pi.unban");
|
||||
setDescription("§a解禁手持物品");
|
||||
setPossibleArguments("<解禁类型>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
|
||||
final Player p = (Player) sender;
|
||||
final ItemStack item = p.getItemInHand();
|
||||
final String itemname = plugin.getItemManager().getItemName(item);
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
plugin.getItemManager().unBanItem(item);
|
||||
p.sendMessage("当前物品 " + itemname + " 已被解禁!");
|
||||
return;
|
||||
case 1:
|
||||
|
||||
try {
|
||||
final ActionType action = Enum.valueOf(ActionType.class, args[0]);
|
||||
plugin.getItemManager().unBanItem(item, action);
|
||||
p.sendMessage("当前物品 " + itemname + " 已被解禁 操作" + action.toString() + "!");
|
||||
} catch (final Exception e) {
|
||||
p.sendMessage("未知的操作类型" + args[0] + "!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,11 +22,11 @@ public class ItemManager {
|
||||
itemlist = (HashMap<String, List<ActionType>>) itemconfig.get("banitems");
|
||||
}
|
||||
|
||||
public void addbanItem(final ItemStack item) {
|
||||
addbanItem(item, null);
|
||||
public void banItem(final ItemStack item) {
|
||||
banItem(item, new ActionType[] {});
|
||||
}
|
||||
|
||||
public void addbanItem(final ItemStack item, final ActionType[] action) {
|
||||
public void banItem(final ItemStack item, final ActionType... action) {
|
||||
final String itemname = getItemName(item);
|
||||
if (itemlist.containsKey(itemname)) {
|
||||
final List<ActionType> actlist = itemlist.get(itemname);
|
||||
@ -35,15 +35,20 @@ public class ItemManager {
|
||||
actlist.add(actionType);
|
||||
}
|
||||
}
|
||||
itemlist.put(itemname, actlist);
|
||||
} else {
|
||||
itemlist.put(itemname, Arrays.asList(action));
|
||||
}
|
||||
itemconfig.set("banitems", itemlist);
|
||||
itemconfig.save();
|
||||
}
|
||||
|
||||
public boolean canAction(final ItemStack i, final ActionType action) {
|
||||
final String itemname = getItemName(i);
|
||||
final List<ActionType> actlist = itemlist.get(itemname);
|
||||
if (actlist == null) {
|
||||
return true;
|
||||
}
|
||||
final Boolean result = actlist.contains(action);
|
||||
return result;
|
||||
}
|
||||
@ -56,7 +61,22 @@ public class ItemManager {
|
||||
|
||||
public boolean hasActionPerm(final Player p, final ItemStack i, final ActionType action) {
|
||||
final String itemname = getItemName(i);
|
||||
final String perm = String.format("%s.%s", itemname, action.toString().toLowerCase());
|
||||
return p.hasPermission(itemname + ".*") ? true : p.hasPermission(perm);
|
||||
final String perm = String.format("pi.%s.%s", itemname, action.toString().toLowerCase());
|
||||
return p.hasPermission("pi" + itemname + ".*") ? true : p.hasPermission(perm);
|
||||
}
|
||||
|
||||
public void unBanItem(final ItemStack item) {
|
||||
final String itemname = getItemName(item);
|
||||
itemlist.remove(itemname);
|
||||
}
|
||||
|
||||
public void unBanItem(final ItemStack item, final ActionType... action) {
|
||||
final String itemname = getItemName(item);
|
||||
if (itemlist.containsKey(itemname)) {
|
||||
final List<ActionType> actlist = itemlist.get(itemname);
|
||||
actlist.removeAll(Arrays.asList(action));
|
||||
itemlist.put(itemname, actlist);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,13 @@ website: http://ci.citycraft.cn:8800/jenkins/job/${project.artifactId}/
|
||||
commands:
|
||||
pishow:
|
||||
description: 物品保护插件
|
||||
usage: 使用/pishow 查看物品名称!
|
||||
usage: 使用/pi 查看物品名称!
|
||||
permissions:
|
||||
pi.bypass:
|
||||
default: op
|
||||
pi.reload:
|
||||
default: op
|
||||
pi.ban:
|
||||
default: op
|
||||
pi.unban:
|
||||
default: op
|
Loading…
Reference in New Issue
Block a user