出于某种原因,我的一段代码仅适用于OP。这段代码可能是唯一不适用于OP的代码之一。
我的代码是: http://pastebin.com/sQeeXRNN
现在,不起作用的是
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
if(!event.getWhoClicked().isOp()) {
//rest of it
if(!event.getWhoClicked().isOp()) {
明确表示只为那些不是Op的人工作。我试过没有if
语句,它仍然只适用于OP。有什么想法吗?
谢谢, 杰
答案 0 :(得分:0)
if(!e.getWhoClicked().isOp())
{
// code
}
将无效,因为InventoryClickEvent#getWhoClicked()
会返回HumanEntity。这不是一个玩家。
要解决此问题,您首先会将getWhoClicked()
投射到类似的播放器:
Player player = (Player) e.getWhoClicked();
if(!player.isOp())
{
// continue code
}
在检查是否有操作之前,您必须始终确保某些内容正在返回播放器。
答案 1 :(得分:-1)
我上次检查时,不推荐使用这些检查,请改为使用权限系统:
if (!event.getWhoClicked().hasPermission("yourplugin.bypassclick"))
并将此权限授予plugin.yml
permissions:
yourplugin.*:
description: Gives all permission
children:
yourplugin.bypassclick: true
yourplugin.bypassclick:
description: Gives the permission to <do something>
default: op
答案 2 :(得分:-2)
奇怪的是,简单地重启服务器就解决了这个问题。