反清复明
如何禁用原版指令 或者其他插件的指令,我现在写的插件和其他插件有冲突

BobPlayer
本帖最后由 浅念哥 于 2019-9-24 13:12 编辑

一般开发插件时尽量避免这样的冲突。

用户也可以通过以下方式解决指令冲突:
使用/bukkit:xxx执行原版的xxx指令
使用/插件名:xxx执行这个插件的xxx指令

如果一定要用这个指令可以使用指令预处理事件并修改优先级:
PlayerCommandPreprocessEvent:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/player/PlayerCommandPreprocessEvent.html
@EventHandler(priority = EventPriority.HIGHEST)
调用event.setCancelled(true);中断指令

frea
楼上说的很好了 如果真要“禁用”的原版命令话 应该做不到 但是你可以禁用的权限 如果需要禁用特定插件的特定命令 也可以在plugin.yml中将该命令注释掉(前提是插件使用此方法注册命令) 或者在执行时指定执行是哪个插件提供的命令 方法为 /插件名:命令名

anan876
666666666666666666666666

Himmelt
你可以选择修改你插件的命令,或者添加命令别名,毕竟是你和别人冲突,不可能让别人改,那就自己改好了,

另外,如果非要移除某个命令,好像也不是不可能的。Bukkit 有一个 commandMap ,具体哪个类里忘了,用反射获取它,然后删掉你想删掉的命令的名字,大概就可以了,我没测试过,你可以尝试一下。

anan876
我有个问题,怎么禁用me这个指令?

陈宇鹏
可以移除对应权限
具体:org/bukkit/command/default

第一页 上一页 下一页 最后一页