跳转到内容

TrMenu

Release Downloads Code Size License

一个功能强大的菜单插件,国人插件。目前由社区维护。
  • 支持 1.8.9 ~ 最新版本
  • 修复头颅显示问题
  • 国际化语言
  • 更多功能…

Notice:维护这个分支完全是个人兴趣。

  • 极佳的速度和性能:不仅针对条件判断进行了优化,而且重构了虚拟背包的 API
  • 大量的模块已经确认拥有更好的性能,同时提供了一个特别的方式来检测 TrMenu 的性能表现
  • 一如既往的强大功能:几乎所有功能都经过优化和保留,并添加了新功能。
  • 功能与脚本:统一并标准化了内联函数的使用,重构了 TrMenu 动作,并全面支持新的 kether 脚本语言。
  • 更多信息:请看 Wiki

早已停更,不推荐使用

交流群:325014486

如何支持 1.8

旧文档,不推荐阅读

8aka 文档镜像,推荐阅读

新文档,推荐阅读,不挂梯也可访问

阔大帅的文档,拥有上方新文档的全部内容且访问速度快

社区文档,或许比上方的文档更容易理解

TrMenu 入门学习文档

与 TrMenu 或 Kether 有关的 VS Code 插件

TrMenu 语法提示

Kether 语法提示

condition 最后的结果为 true 就会显示这个子图标

"A":
display:
material: stone
icons:
- condition: "true"
display:
name: "我有没有条件啊!我到底有没有条件啊!"

所以你可以直接写 true 让他显示这个子图标

因为 condition 会执行里面的 Kether 语句

所以你可以这样子在菜单打开或重新计算子图标的时候跑一遍这些语句

"A":
display:
material: stone
icons:
- condition: "tell 想不到骚话"
- condition: "tell 想不到骚话"
- condition: "tell 想不到骚话"
- condition: "tell 想不到骚话"
- condition: "tell 想不到骚话"

特别的,写在此处的语句要比 name,lore 等位置先执行,下方是一个使用此特性的案例

"A":
display:
material: stone
icons:
- condition: "meta set mat to stone"
- condition: "tell meta get mat"
- condition: "meta set amt to 10"
actions:
all: tell meta get mat
papi join [ '%checkitem_remove_mat:' meta get mat ',amt:' meta get amt '%' ]

这是 TrMenu 的一个默认案例

https://hhhhhy.gitbook.io/trmenu-v3/usage/shortcuts

此处为右键玩家打开名为 Profile 的菜单

找到

Right-Click-Player: "open: Profile"

https://github.com/Dreeam-qwq/TrMenu/blob/stable/v3/plugin/src/main/resources/menus/Profile.yml

或者说 shift+F 打开菜单?

https://hhhhhy.gitbook.io/trmenu-v3/usage/shortcuts

Sneaking-Offhand:
- condition: "perm *trmenu.shortcut"
execute: "open: Example"
deny: "return"

知识点:

"写法1":
display:
name: "两个钻石换三个绿宝石"
material: stone
actions:
- condition: "papi %checkitem_mat:diamond,amt:2%"
actions:
- "papi %checkitem_remove_mat:diamond,amt:2%"
- "papi %checkitem_give_mat:emerald,amt:3%"
deny:
- 'tell inline "物品不够,你有{{papi %checkitem_amount_mat:diamond,amt:2%}}个,还差{{math 2 - papi %checkitem_amount_mat:diamond,amt:2%}}个"'
"写法2":
display:
name: "两个钻石换三个绿宝石"
material: stone
actions:
- if papi %checkitem_mat:diamond, amt:2% then {
papi %checkitem_remove_mat:diamond, amt:2%
papi %checkitem_give_mat:emerald, amt:3%
} else tell inline "物品不够,你有{{papi %checkitem_amount_mat:diamond,amt:2%}}个,还差{{math 2 - papi %checkitem_amount_mat:diamond,amt:2%}}个"
"写法1":
display:
name: "10 块钱买 2 个钻石"
material: stone
actions:
- condition: "money 10"
actions:
- "take-money: 10"
- "papi %checkitem_give_mat:emerald,amt:3%"
deny:
- tell inline "钱不够,你有{{papi %vault_eco_balance%}}块,还差{{math 10 - papi %vault_eco_balance%}}块"
"写法2":
display:
name: "10 块钱买 2 个钻石"
material: stone
actions:
- if money 10 then {
command inline"money take {{player name}} 10"
papi %checkitem_give_mat:emerald,amt:3%
} else tell inline "钱不够,你有{{papi %vault_eco_balance%}}块,还差{{math 10 - papi %vault_eco_balance%}}块"

知识点:

"C":
display:
name: "10 块钱买 2 个钻石 (限购 20 个)"
material: stone
icons:
- condition: meta set KEY to 限购数据 1
- condition: data set papi %trmenu_meta_KEY% to 20
actions:
- condition: meta set 单价 to 10
- condition: all [ money papi %trmenu_meta_单价% check data get meta get KEY > 0 ]
actions:
# 扣钱
- "take-money: %trmenu_meta_单价%"
# 扣一次限购
- data set papi %trmenu_meta_KEY% to join [ math data get meta get KEY - 1 ]
- tell join [ "剩余限购次数:" data get meta get KEY " 剩的钱:" papi %vault_eco_balance% ]
# 给货
- papi %checkitem_give_mat:emerald,amt:3%
deny:
- tell inline 钱不够,你有{{papi %vault_eco_balance%}}块,还差{{math papi %trmenu_meta_单价% - papi %vault_eco_balance%}}块 {condition=not money meta get 单价}
- tell inline 限购次数用完了 {condition=check data get meta get KEY == 0}

上面个人限购的 data 改成 globaldata

自己看文档:https://hhhhhy.gitbook.io/trmenu-v3/menu/action/types#shu-ju-cao-zuo

和上面的购买几乎一样的逻辑,自己去学 CheckItem 然后把 give 改成 remove

和上面的个人限售几乎一样的逻辑,自己去学

上面的会了这个你就会写了