首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java插件ProtocolLib Mute活塞的声音

Java插件ProtocolLib Mute活塞的声音
EN

Stack Overflow用户
提问于 2021-02-06 00:24:23
回答 1查看 78关注 0票数 0

所以目前我有这样的代码:

代码语言:javascript
复制
@Override

public void onEnable(){

    ProtocolManager manager = ProtocolLibrary.getProtocolManager();
    manager.addPacketListener(
            new PacketAdapter(this, ListenerPriority.HIGHEST,
                    PacketType.Play.Server.NAMED_SOUND_EFFECT) {
                @Override
                public void onPacketSending(PacketEvent event) {
                    // Item packets (id: 0x29)
                    if (event.getPacketType() ==
                            PacketType.Play.Server.NAMED_SOUND_EFFECT) {
                        if (packet.getSoundEffetcs().getValues().contains(Sound.BLOCK_PISTON_CONTRACT || packet.getSoundEffetcs().getValues().contains(Sound.BLOCK_PISTON_EXTEND))){

                        }

                        event.setCancelled(true);
                    }
                }
            });
}

@Override
public void onDisable() {
    // Plugin shutdown logic
}

}

这是不完整的,一旦它完成,它应该取消所有的数据包,得到发送到服务器/客户端,活塞声音参与其中。代码if (packet.getSoundEffetcs().getValues().contains(Sound.BLOCK_PISTON_CONTRACT || packet.getSoundEffetcs().getValues().contains(Sound.BLOCK_PISTON_EXTEND)))给我带来了麻烦,因为if (packet.getSoundEffetcs().getValues().contains(Sound.BLOCK_PISTON_CONTRACT || packet.getSoundEffetcs().getValues().contains(Sound.BLOCK_PISTON_EXTEND)))告诉我,它“不能将符号”“数据包”解析为错误。哪些导入必须添加到我的插件中,以便正确识别“数据包”?

EN

回答 1

Stack Overflow用户

发布于 2021-10-18 13:06:33

您从未定义过packet变量。

你必须这样做:

代码语言:javascript
复制
@Override
public void onPacketSending(PacketEvent event) {
    // Item packets (id: 0x29)
    if (event.getPacketType() == PacketType.Play.Server.NAMED_SOUND_EFFECT) {
        PacketContainer packet = event.getPacket(); // get ProtocolLib packet
        List<Sound> sounds = packet.getSoundEffetcs().getValues(); // get values from it
        if (sounds.contains(Sound.BLOCK_PISTON_CONTRACT || sounds.contains(Sound.BLOCK_PISTON_EXTEND))){
             // here what you want
        }
        event.setCancelled(true);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66072372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档