= 创作分享 =
编程开发
怎么用mixin直接修改一个包含运算符的表达式的值? ...
仙勾子

怎么用mixin直接修改一个包含运算符的表达式的值?

仙勾子 于 2023-12-30 18:12 ( 5月前 ) [复制链接] [只看楼主] [打印]
246 2
本帖最后由 xm94732568960 于 2023-12-30 18:17 编辑

比如说有一行代码
  1. if (this.missTime > 0)
复制代码
我想让(this.missTime > 0)始终返回false,只知道可以@Redirect其中的字段missTime让它始终返回0从而使得这个表达式为false,实际上是通过间接的方式,所以要怎样直接修改整个表达式的值,让这个表达式始终为false?
版本为neoforge1.20.4(也就是说有@ModifyExpressionValue,但是没法解决这个问题)

未死之前,终有希望
发表于 2023-12-30 18:12:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 2 条回复!
ユキ
试着在这个If前Inject然后代替掉他?
发表于 2023-12-31 20:28:25 | 只看该作者

回复 | 举报

仙勾子
本帖最后由 xm94732568960 于 2023-12-31 21:51 编辑
QQ酱119280 发表于 2023-12-31 20:28
试着在这个If前Inject然后代替掉他?

不对,它其实是
  1. if (this.missTime > 0){
  2.     // do any stuff
  3. } else if (//* other condition *//){
  4.     // do other stuff
  5. } else {
  6.     // ...
  7. }
复制代码

如果在if (this.missTime > 0)的前头加的话,会把后面的else if和else短路掉...
需要“干掉”开头的if条件,只执行后面的else if和else

未死之前,终有希望
发表于 2023-12-31 21:49:17 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表