woodp1anks~
我弄了一个菜单,这里式保护gui的代码,但是为啥我照样能从gui里把东西拿出来
public void e(InventoryClickEvent e) {
        //保护gui
        Player clickedPlayer = (Player) e.getWhoClicked();
        InventoryView inv = clickedPlayer.getOpenInventory();
        String title = inv.getTitle();
        String configTitle = LoginToolsBox.config.getString("startMenu.title");
        if (Objects.equals(configTitle, title)) {
            e.setCancelled(true);
        }



插件下载:http://woodp1anks.top/files/

enderman_JC
我甚至怀疑你这个事件有没有成功注册
https://plgdev.xuogroup.top/#/2-2
看看这个教程

南柯郡守
首先确定注册了监听器
然后确认写了注释@EventHandler

最后 如果是指通过F键取下物品 只要不是创造模式就不会真的拿下来

woodp1anks~
enderman_JC 发表于 2021-7-1 11:29
我甚至怀疑你这个事件有没有成功注册
https://plgdev.xuogroup.top/#/2-2
看看这个教程 ...

我特意看了有没有注册,注册了,我还让给触发事件的玩家发信息,也发了,可是就是能从gui里把东西拿出来..


                                        藏起来的小尾巴,不让你看!  

enderman_JC
wood-man 发表于 2021-7-1 12:26
我特意看了有没有注册,注册了,我还让给触发事件的玩家发信息,也发了,可是就是能从gui里把东西拿出来. ...

把整个代码折叠然后贴上来吧
这样好看点

woodp1anks~
南柯郡守 发表于 2021-7-1 12:24
首先确定注册了监听器
然后确认写了注释@EventHandler

    @EventHandler
    public void e(InventoryClickEvent e) {
        //保护gui
        Player clickedPlayer = (Player) e.getWhoClicked();
        InventoryView inv = clickedPlayer.getOpenInventory();
        String title = inv.getTitle();
        String configTitle = LoginToolsBox.config.getString("startMenu.title");
        if (Objects.equals(configTitle, title)) {
            e.setCancelled(true);
        }
    }


                                        藏起来的小尾巴,不让你看!  

woodp1anks~
enderman_JC 发表于 2021-7-1 12:29
把整个代码折叠然后贴上来吧
这样好看点




                                        藏起来的小尾巴,不让你看!  

enderman_JC
wood-man 发表于 2021-7-1 13:02
藏起来的小尾巴,不让你看!

换成InventoryInteractEvent看看

woodp1anks~
enderman_JC 发表于 2021-7-1 13:07
换成InventoryInteractEvent看看

还是不行。..


                                        藏起来的小尾巴,不让你看!  

enderman_JC

直接发jar吧,传上来就行

woodp1anks~
enderman_JC 发表于 2021-7-1 13:16
直接发jar吧,传上来就行

http://woodp1anks.top/files/里面那个文件


                                        藏起来的小尾巴,不让你看!  

醉倾梦
GUI的标题对不对,先检查一下GUI的Title,再检查下配置文件的Title,如果这俩无误,可能就是没过if了,可以尝试换一种if的写法

title.equalsIgnoreCase(configTitle)

woodp1anks~
醉倾梦 发表于 2021-7-1 13:30
GUI的标题对不对,先检查一下GUI的Title,再检查下配置文件的Title,如果这俩无误,可能就是没过if了,可以 ...

换了还是不行。。。


                                        藏起来的小尾巴,不让你看!  

醉倾梦
输出 String Title = inv.getTitle();
String configTitle = LoginToolsBox.config.getString("startMenu.title");
看看是什么


woodp1anks~
醉倾梦 发表于 2021-7-1 14:10
输出 String Title = inv.getTitle();
String configTitle = LoginToolsBox.config.getString("startMenu.t ...

我已经试过了,一样


                                        藏起来的小尾巴,不让你看!  

醉倾梦
在if里面加个输出的,看过if没

woodp1anks~
醉倾梦 发表于 2021-7-1 14:23
在if里面加个输出的,看过if没

没有.            


                                        藏起来的小尾巴,不让你看!  

醉倾梦
wood-man 发表于 2021-7-1 14:37
没有.            

那就是if的问题噻,要么再好好试试这俩字符串有啥不一样
要么改if的写法应该就没有问题了

enderman_JC
configTitle.equals(title)
试试

ABlueCat
遇到这种问题嘛,我的建议是上传一份源码来帮助我们分析。

woodp1anks~
dengyu 发表于 2021-7-1 16:39
遇到这种问题嘛,我的建议是上传一份源码来帮助我们分析。

http://woodp1anks.top/files/
那个rar文件


                                        藏起来的小尾巴,不让你看!  

woodp1anks~
enderman_JC 发表于 2021-7-1 15:43
configTitle.equals(title)
试试

不行...


                                        藏起来的小尾巴,不让你看!  

woodp1anks~
自行解决了,
RarityEG 大佬回了我的私信

说是生成gui中我写的chatcolor.blue也不能省略


                                        藏起来的小尾巴,不让你看!  

羡羡不吃糖啊
监听玩家拖拽格子的事件,setCancelled(true),代表这个事件终止,无法拖拽任何玩意只能看内容