本帖最后由 _ExtraAir_ 于 2022-9-4 21:40 编辑
如果只是想要破坏方块掉落的话,一般都是战利品表实现的(吧)
但如果想要破坏的时候实现点别的,我第一个想法就是事件event(插件写多了)
forge有自己整出来的事件系统,不会用的话可以看一下官方文档
没错的话应该是net.minecraftforge.event.world下面的BlockEvent.BreakEvent
但如果想要破坏的时候实现点别的,我第一个想法就是事件event(插件写多了)
forge有自己整出来的事件系统,不会用的话可以看一下官方文档
没错的话应该是net.minecraftforge.event.world下面的BlockEvent.BreakEvent
本帖最后由 _ExtraAir_ 于 2022-9-5 15:17 编辑
我是想写客户端MOD的,就是玩家半径15格内检测方块挖掘并标记的
不知道如何获取挖矿被破坏的坐标
@SubscribeEvent
public void BreakedBlock(BlockEvent.BreakEvent event) {
sendMessage("test");
}
这样写不会触发啊..
为什么我的不会触发
雪律之主 发表于 2022-9-5 00:29
如果只是想要破坏方块掉落的话,一般都是战利品表实现的(吧)
但如果想要破坏的时候实现点别的,我第一个 ...
我是想写客户端MOD的,就是玩家半径15格内检测方块挖掘并标记的
不知道如何获取挖矿被破坏的坐标
@SubscribeEvent
public void BreakedBlock(BlockEvent.BreakEvent event) {
sendMessage("test");
}
这样写不会触发啊..
为什么我的不会触发
警棍插件好像有个就是可以查询这个方块是谁挖的你可以试试这个
1836717859 发表于 2022-9-5 18:25
警棍插件好像有个就是可以查询这个方块是谁挖的你可以试试这个
审题再回答
_ExtraAir_ 发表于 2022-9-5 13:35
我是想写客户端MOD的,就是玩家半径15格内检测方块挖掘并标记的
不知道如何获取挖矿被破坏的坐标
@Subscri ...
检测方块被自己挖掘还是被别人挖掘?
_ExtraAir_ 发表于 2022-9-5 13:35
我是想写客户端MOD的,就是玩家半径15格内检测方块挖掘并标记的
不知道如何获取挖矿被破坏的坐标
@Subscri ...
居然是客户端么,那你应该监听客户端的事件
从你上一个帖子来看,你问的应该是1.12的mod吧?
可以监听net.minecraftforge.client.event.sound.PlaySoundEvent,用event.getName().endsWith("break")来判断是不是播放的方块破坏的声音,如果是,再判断获取到的ISound是不是PositionedSound,是的话就用getXPosF之类的获取坐标
当然这样监听比较间接,想直接一点的话可以用mixin把你要写的代码插入到net.minecraft.client.renderer.RenderGlobal.playEvent里,case 2001的位置,不过mixin比较麻烦,尤其forge用起mixin来还远比fabric麻烦
本帖最后由 _ExtraAir_ 于 2022-9-6 20:16 编辑
emmm 突然发现这个只在单人游戏起作用?
雪律之主 发表于 2022-9-4 21:33
如果只是想要破坏方块掉落的话,一般都是战利品表实现的(吧)
但如果想要破坏的时候实现点别的,我第一个 ...
emmm 突然发现这个只在单人游戏起作用?
