秦千久
本帖最后由 秦千久 于 2022-9-4 12:57 编辑
Wizy 发表于 2022-9-4 12:18
不行,获取不了的,而且这两个继承的不是一个父类

你这是 1.12 对吧?有个比较黑的办法:
CommandBase 里有个 commandListener,用来监听指令执行的。你可以替换掉原本的 commandListener,如果是 kill 指令就能获取 sender,使用 CommandBase 里的 getCommandSenderAsPlayer 就可以获取到玩家了。然后再调用原本的 commandListener 的 notifyListener 就可以了。


Wizy
秦千久 发表于 2022-9-4 12:47
你这是 1.12 对吧?有个比较黑的办法:
CommandBase 里有个 commandListener,用来监听指令执行的。你可以 ...

get获取玩家没问题,问题在于在继承entity类的onkill方法里面这个办法就行不通了,我现在是用获取附近玩家来代替的

秦千久
Wizy 发表于 2022-9-5 10:40
get获取玩家没问题,问题在于在继承entity类的onkill方法里面这个办法就行不通了,我现在是用获取附近玩家 ...

当然,onKill 没有 ICommandSender,在这个地方尝试获取指令执行者肯定不行,要不你就 mixin / asm 插到 kill 指令执行的地方新增一个带 sender 的 onKill 方法

Wizy
秦千久 发表于 2022-9-5 17:31
当然,onKill 没有 ICommandSender,在这个地方尝试获取指令执行者肯定不行,要不你就 mixin / asm 插到  ...

草, mixin就算了,那个方法太麻烦了, 只是实现一个简单功能完全没必要(

秦千久
Wizy 发表于 2022-9-6 14:12
草, mixin就算了,那个方法太麻烦了, 只是实现一个简单功能完全没必要(

你想要实现什么功能呢?最终目的

Wizy
秦千久 发表于 2022-9-6 16:25
你想要实现什么功能呢?最终目的

刚开始是实体被kill指令,然后触发对玩家的某种效果,现在直接重写了setdead来实现了对附近玩家的效果. 这样比kill指令更全面, 也就是说其实大体上已经没问题了(

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