cmi 插件指令
INFO
这是一个功能多合一的插件,可代替一些功能分散的老旧插件并用于服务器管理,它完全可以替代
Essentials/EssentialsX 并且可以通过简单的指令操作把旧玩家数据从 ess 导入进本插件
它提供了很多超乎你想象的全新特性和实用的功能来让你创建拥有全新游戏风格的服务器
完全涵盖老插件的基础功能,比如/heal 治疗,同时给老功能添加了一些新的拓展。
比如游戏内编辑 kit 礼包,在所有容器中查找指定物品,传送门系统,动态牌
等等!为什么这插件要卖 15 欧?说实话我觉得它值 150 欧,只是对你们来说太贵了=_=
转载自(https://www.17wmc.cn/937.html)
TRANSLATOR
嘤鹉 @z1224748848 字数: 20029 字 [贼长的感言]
@longlongz 字数: 7461 字
特别鸣谢: @秋风残叶 #CMI 插件搬运者
Wiki
权限 | Permission
在大多数情况下把鼠标放在错误提示信息上会显示缺失的权限节点. 如果想要这样的效果, 你需要拥有 cmi.permisiononerror权限.
所有命令都拥有对应的权限节点, 如果下方的列表没有你想要的权限,
你可以根据 cmi.command.<命令> 这个格式来匹配 /cmi <命令>.
使用特定指令的权限节点基本规律是 cmi.command.[命令名字](例子: cmi.command.heal) 并且有一些指令如果作用对象不是你自己的话, 需要额外的权限节点来使用: cmi.command.[命令名字].others(例子:\cmi.command.heal.others)
可以通过 /cmi checkperm (关键词) 命令来在游戏内查看权限节点, 并且永远都是最新的插件权限列表.
C– 命令
- cmi.command – 允许使用基础命令
A
- cmi.command.afk.auto – 自动使玩家进入 AFK 模式
- cmi.command.afk.kickbypass – 当 AFK 模式触发事件时阻止玩家被踢出服务器
- cmi.command.afk.staffinform – 使用不同的 AFK 模式自动回复消息
- cmi.command.alert.inform – 玩家将会在某玩家伴随警告加入服务器的时候收到通知
- cmi.command.armorstand.[updateitems plate size visible arms gravity glow invulnerable name interactable head body leftarm rightarm leftleg rightleg pos] – 允许使用特定盔甲架编辑器的功能
- cmi.command.armorstand.movebypass – 允许在不可以建造的地方移动盔甲架. 有时候有助于绕过反
作弊插件的限制 - cmi.command.attachcommand.cc – 允许将控制台命令绑定到物品上
- cmi.command.attachcommand.silent – 允许在绑定命令的时候使用 !silent! 变量
B
- cmi.command.back.ondeath – 允许在死亡后使用 Back 命令返回死亡地点
- cmi.command.ban.bypass – 阻止玩家被 Ban
- cmi.command.bossbarmsg.admin – 允许在 BossBar 自动消息中使用命令
- cmi.command.broadcast.colors – 允许在公告信息中使用颜色代码
C
- cmi.command.charges.edit – 允许编辑玩家的重生能量(! 不确定翻译)
- cmi.command.checkaccount.showip – 允许在检查账户时查看对应的 IP 地址
- cmi.command.clearchat.bypass – 绕过聊天清屏(拥有权限的玩家的消息将不会被清空)
- cmi.command.commandspy.bypass – 允许绕过命令间谍的命令黑名单
- cmi.command.commandspy.hide – 隐藏来自命令间谍的已执行命令
- cmi.command.[命令名字].cooldownbypass – 允许绕过命令冷却时间
- cmi.command.[命令名字].others – 允许对其他玩家执行命令
- cmi.command.[命令名字].others.[extra] – 允许对其他玩家执行命令
- cmi.command.[命令名字].warmupbypass – 允许绕过特定的 CMI 命令预热
- cmi.command.counter.autojoin – 玩家将在进入服务器后自动加入计数器
- cmi.command.counter.center – 允许设置计数器的中心
- cmi.command.counter.force – 允许强制范围内所有玩家显示计数消息
- cmi.command.counter.time – 允许设置计数器的时间范围
- cmi.command.counter.range – 允许设置计数器的半径
- cmi.command.counter.msg – 允许设置计数器的提示信息
- cmi.command.ctext.[自定义消息名字] – 允许看见 Custom Text 文件夹内的自定义提示消息
- cmi.command.cuff.bypass – 允许受限制时使用命令
E
- cmi.command.enchant.bypasslimit – 允许绕过附魔限制
- cmi.command.enchant.bypassinvalid – 允许给物品附魔上默认不适用于此物品的附魔
- cmi.command.ender.preventmodify – 阻止其他人修改末影箱
- cmi.command.ender.preventmodify.bypass – 绕过上一个权限节点
- cmi.command.editwarnings – 允许管理玩家的警告记录
F
- cmi.command.fixchunk.speed – 允许调整损坏区块修复速度
- cmi.command.flightcharge.admin – 允许编辑玩家的飞行能量
- cmi.command.fly.safelogin – 登录时若玩家在空中, 让玩家安全着陆
- cmi.command.flyspeed.[1~10] – 决定玩家可以设置的最大飞行速度
G
- cmi.command.give.max.[数值] – 限制玩家可以使用 Give 命令生成物品的数量
- cmi.command.glow.color.[颜色代码] – 允许改变发光效果的颜色
- cmi.command.gm.[游戏模式] – 允许改变游戏模式为特定模式
H
- cmi.command.head.othersource – 允许获取其他玩家的头颅
- cmi.command.home.bypassprivate – 允许传送到其他玩家的私人 Home 位置
I
- cmi.command.ignore.bypass – 允许对屏蔽你的人使用命令
- cmi.command.info.deathlocation – 允许在信息页面中查看死亡位置
- cmi.command.info.ip – 允许在信息页面中查看玩家 IP 地址
- cmi.command.invcheck.edit – 允许编辑已保存的背包
- cmi.command.inv.preventmodify – 阻止其他人修改背包
- cmi.command.inv.preventmodify.bypass – 绕过上一个权限节点
J
- cmi.command.jail.bypass – 阻止玩家被关进监狱
- cmi.command.jail.bypasscmd – 允许在被监禁时使用命令
- cmi.command.jail.maxtime.[秒数] – 决定玩家可以监禁其他人的最大时长
- cmi.command.jump.[距离] – 决定最大跳跃距离
K
- cmi.command.kick.bypass – 阻止玩家被踢出服务器
L
- cmi.command.lfix.admin – 允许修复视野外区域的光照
- cmi.command.list.admin – 将玩家放入列表中的管理员组
- cmi.command.list.group.[组序号] – 将玩家分配到指定的组
- cmi.command.list.hidden – 允许在玩家列表中查看隐藏的玩家
- cmi.command.list.staff – 将玩家放入列表中的 Staff 组
M
- cmi.command.maintenance.bypass – 允许绕过”正在制作”模式
- cmi.command.money.admin – 允许修改玩家的资金
- cmi.command.money.betweenworldgroups – 允许跨世界资金转账
- cmi.command.more.oversize – 允许物品堆叠超过默认最大数
- cmi.command.msg.clean – 允许通过在消息前带上 ! 来发送不带名字的消息(公告?)
- cmi.command.msg.noreply – 允许使用 /cmi msg [玩家名字] !-内容!
- cmi.command.msg.vanish – 允许向隐身玩家发送私人消息
- cmi.command.msg.togglebypass – 允许向关闭私人消息接收的玩家发送私人消息
- cmi.command.mute.bypass – 绕过个人禁言
- cmi.command.mutechat.bypass – 绕过拒收公共聊天消息
N
- cmi.command.near.max.[方块数]- 决定 Near 命令的最大距离
- cmi.command.nick.bypassblacklist – 允许绕过昵称黑名单
- cmi.command.nick.bypass.length – 允许绕过昵称长度限制
- cmi.command.nick.bypassinuse – 允许使用已被使用的昵称
- cmi.command.nick.different – 允许将昵称设置为与原始名称不同的昵称
- cmi.command.note.remove – 允许清除或删除便签
- cmi.command.note.add – 允许添加便签
P
- cmi.command.patrol.bypass – 拥有权限节点的玩家不会被列入巡逻名单
- cmi.command.point.[特定种类] – 允许修改特定种类
R
- cmi.command.repair.[hand/armor/all] – 允许修复特定区域的装备
- cmi.command.repair.repairshare.bypass – 允许在共享修复应用到物品前绕过它
- cmi.command.replaceblock.speed – 允许调整方块替换速度
- cmi.command.ride.[实体种类] – 允许骑乘特定实体
- cmi.command.removewarp.bypass – 允许删除属于其他玩家的地标
S
- cmi.command.scan.speed – 允许修改物品扫描速度
- cmi.command.sell.[blocks/all/gui] – 允许通过其他方式来出售物品
- cmi.command.sendall.bypass – 阻止玩家被传送到指定服务器
- cmi.command.sethome.bypass – 允许玩家在没有建造权限的地方设置 Home 位置
- cmi.command.sethome.unlimited – 允许设置无限个 Home
- cmi.command.sethome.[任意正数] – 允许设置指定数量个 Home
- cmi.command.sethome.[组名] – 允许根据组配置设置指定数量个 Home
- cmi.command.sethome.overwrite – 允许覆写已有 Home
- cmi.command.signspy.hide – 将不会被牌子间谍记录
- cmi.command.silent – 允许在命令里面使用 -s 变量以避免向目标玩家发送反馈消息
- cmi.command.sit.stairs – 允许自动坐在椅子上
- cmi.command.silence.bypass – 绕过消息屏蔽
- cmi.command.spawner.[实体种类] – 允许通过命令来更改刷怪笼为指定类型
- cmi.command.spawner.shiftclick – 允许潜行点击刷怪笼来打开设置界面
- cmi.command.sudo.bypass – 阻止其他玩家对拥有此权限的玩家使用 Sudo
- cmi.command.setwarp.unlimited – 允许设置无限个地标
- cmi.command.setwarp.[数量] – 允许设置指定数量个地标
T
- cmi.command.tempban.bypass – 阻止玩家被临时封禁
- cmi.command.tempban.max.unlimited – 允许临时封禁超过配置的数量
- cmi.command.tempban.max.[任意正数] – 允许临时封禁的最大时长
- cmi.command.tfly.give – 允许给其它玩家临时飞行
- cmi.command.tfly.maxtime.[数量] – 设置玩家可以给其他玩家临时飞行的最大时长. 如果玩家超过了这个限制, tfly 将不会被改动.
- cmi.command.tgod.give – 允许给其它玩家临时上帝模式
- cmi.command.time.edit – 允许设置时间
- cmi.command.toggleshiftedit – 允许使用 /cmi toggleshiftedit
- cmi.command.tpa.warmupbypass – 允许绕过 Tpa 命令预热
- cmi.command.tpahere.warmupbypass – 允许绕过 Tpahere 命令预热
- cmi.command.tptoggle.bypass – 允许传送到禁用远程传送的玩家身边
W
- cmi.command.walkspeed.[0-10] – 决定玩家可以设置的最大移动速度
- cmi.command.warn.bypass – 允许绕过警告
- cmi.command.warnings – 列出玩家收到的警告列表及其过期时间
- cmi.command.warp.[地标名字] – 当一个地标需要权限节点的时候, 添加此权限允许使用指定的地标
- cmi.command.warp.redefine – 要求覆写现有的地标点. 如果你想让普通玩家创建地标点, 则此权限节点非常有用
- cmi.command.world.[世界名字] – 通过当前的位置传送到指定的世界
A
- cmi.actionbar.colors – 允许在 actionbarmsg 命令中使用颜色代码
- cmi.anvil.colors – 允许在重命名物品的时候使用颜色代码
- cmi.anvil.itemrename.bypass – 允许绕过重命名黑名单
- cmi.anvil.nolimits – 允许无等级限制修复物品
- cmi.armorstand.arms – 允许生成带手臂的盔甲架
- cmi.armorstand.offhand – 允许完全操 作盔甲架的副手物品
- cmi.autorespawn – 允许自动重生
B
- cmi.bedhome – 允许点击床来设置 Home 位置
- cmi.book.colors – 允许在编辑书时使用颜色代码
- cmi.bossbar.colors – 允许在 bossbarmsg 命令中使用颜色代码
- cmi.bossbar.hpbar – 允许显示生命值 Boss Bar, 默认自动启用. 如果你想隐藏的话就给予负权限
- cmi.bungee.publicmessages.[服务器名字] – 允许跨服发送大喇叭消息
- cmi.buttonteleport – 允许在点击背包编辑界面的位置按钮的时候传送到目标位置
C
- cmi.chat.bypassrange – 允许无视常规聊天范围
- cmi.chatfilter.bypass.[组名] – 允许绕过特定的聊天过滤器配置组
- cmi.chatfilter.inform – 当玩家违反聊天过滤规则时通知玩家
- cmi.chatfilter.spambypass – 允许绕过聊天刷屏过滤器
- cmi.chatgroup.[组名] – 由自定义聊天组决定玩家的公共消息格式
- cmi.chorusteleport – 允许使用 chorus 来传送到周围(随机传送?)
- cmi.colors.[种类].* – 允许在特定消息范围内使用所有颜色代码
- cmi.colors.[种类].[颜色] – 允许在特定消息范围内使用指定颜色代码. 消息范围种类: publicmessage,privatemessage, nickname, signs, me
- cmi.commandfilter.bypass – 允许绕过刷命令过滤器
- cmi.customalias.[指令简写] – 限定自定义指令简写的使用(拥有权限才可使用)
D
- cmi.damagecontrol.[组名] – 按组配置来决定伤害倍数
- cmi.deathlocation – 允许在死后看见死亡位置
- cmi.dropspawner – 允许在挖掉刷怪笼后掉落它
- cmi.dropspawner.[实体种类] – 允许在挖掉特定种类的刷怪笼后掉落它
- cmi.dropspawner.nosilk – 不需要精准采集就可以掉落刷怪笼
- cmi.dynmap.hidden – 在网页地图中隐藏玩家
E
- cmi.egginteract.[实体种类] – 允许通过手持刷怪蛋点击刷怪笼来改变刷怪种类
- cmi.elevator.use – 允许使用基于牌子的电梯
- cmi.elevator.create – 允许创建电梯
- cmi.elytra – 允许装备鞘翅
- cmi.elytra.boost – 允许使用基础鞘翅加速器. (右键)
- cmi.elytralaunch – 允许使用鞘翅的发射功能
- cmi.elytra.freeflight – 允许免费使用鞘翅加速器
- cmi.elytra.speedometer – 允许在鞘翅飞行时看到速度仪表盘
- cmi.elytra.superboost – 允许使用超级鞘翅加速器. (潜行点击)
- cmi.enderedit – 允许编辑他人的末影箱
F
- cmi.fullserver.bypass – 允许加入一个满人的服务器
I
- cmi.informDurability – 当耐久度接近 0 时通知玩家
- cmi.interactivesign.[交互指令名称] – 允许当使用 [ic:[交互指令名称]] 为牌子的第一行时创建可交互的牌子
- cmi.invedit – 允许编辑玩家的背包
- cmi.inventoryhat – 允许将背包中的方块戴在头上
K
- cmi.keepinventory – 允许死亡后保留背包
- cmi.keepexp – 允许死亡后保留经验值
- cmi.kit.[礼包名] – 允许使用礼包
- cmi.kit.[礼包名].preview – 允许预览礼包
- cmi.kit.bypass.money – 无视礼包的金钱购买价格
- cmi.kit.bypass.exp – 无视礼包的经验值购买价格
- cmi.kit.bypass.time – 无视礼包的使用次数限制
- cmi.kit.bypass.onetimeuse – 无视礼包的一次性限制
M
- cmi.messages.disablelogin – 禁用登录信息
- cmi.messages.disablequit – 禁用退出登录信息
- cmi.minecart.change.[矿车类型] – 允许在使用有效物品交互矿车时更改为其不同类型.
N
- cmi.namehistory – 允许查看玩家的曾用名
- cmi.netherportalbypass – 当配置文件禁用时也可创建地狱传送门
O
- cmi.openshulker – 允许将潜影盒作为背包使用
- cmi.openshulker.shift – 允许潜行右击潜影盒时将其作为背包使用
P
- cmi.permisiononerror – 允许在错误信息中查看缺失的权限节点. 注意拼写.
- cmi.placespawner – 允许放置刷怪笼并且保持正确的刷怪类型
- cmi.placespawner.[实体种类] – 允许放置特定种类的刷怪笼并且保持正确的刷怪类型
- cmi.prewards.notification – 为没获取到的奖励显示游戏时间奖励提醒
R
- cmi.rank.[Rank 级别] – 决定玩家的默认 Rank
- cmi.respawngroup.[重生组配置] – 决定玩家的个人重生点
S
- cmi.safeteleport – 阻止传送至不安全的位置
- cmi.safeteleport.bypass.[lava/void/suffocation/unknown/plugin] – 允许不二次确认来传送到不安全的位置
- cmi.scheduler.exclude – 不把玩家列入定时任务的随机玩家列表
- cmi.saveinv – 在玩家死亡时保存背包以备日后需要回档
- cmi.seevanished – 允许看到隐身的人
- cmi.select – 允许使用圈地工具来选定范围
- cmi.scrollpainting – 允许修改画
- cmi.signs.shiftedit – 允许潜行右击牌子来编辑它
- cmi.signs.shifteditbypass – 允许编辑受保护区域内的牌子
- cmi.silentchest.editing – 允许在静默开箱模式下编辑箱子
- cmi.spawners.charge.bypass – 允许无视能量限制
- cmi.spawners.charge.[组名] – 决定所使用的能量组配置
- cmi.spawners.proximity.bypass – 无视刷怪笼的放置范围限制
- cmi.spawngroup.[出生组配置] – 决定玩家的个 人出生点
T
- cmi.tablist.[组序号] – 决定玩家的自定义 Tab 列表组
- cmi.tag.color – 艾特的人的名字会变成彩色
- cmi.teleport.bypassblacklist – 允许无视黑名单物品传送保护
- cmi.teleport.currentlocation – 允许传送到最新位置而不是 Tpa 被接受的位置.
- cmi.teleport.with.[实体种类] – 允许与特定的坐骑一起传送
- cmi.title.colors – 允许在 titlemsg 命令中使用颜色代码
V
- cmi.versioncheck – 允许在登录时看到新版本信息
- cmi.viewrange – 允许自定义视距范围
- cmi.viewrange.[1-15] – 决定视距范围
W
- cmi.worldlimit.fly.aboveroof – 防止飞过世界建造高度. 这个特性应该在配置文件内启用
- cmi.worldlimit.fly.bypass – 允许无视世界的飞行模式限制
- cmi.worldlimit.gamemode.bypass – 允许无视世界的游戏模式限制
- cmi.worldlimit.god.bypass – 允许无视世界的上帝模式限制
特殊命令格式 | Specialized Commands
与这些功能共同使用: Ranks, 计划任务, 传送门, EventCommands, 可交互命令 和 礼包.
- 仅使用一个动作变量, 否则, 只会使用最后一个动作变量.
- 如果命令包含 [playerName],如果可行的话将会作为目标玩家的名字. 这对定时任务不起作用, 因为不知道在这种情况下应该指向哪个玩家.
- 如果命令以 **msg!**开头并且指定了玩家名字, 如果玩家在线 将会发送一条信息. 例子: msg! Zrips 你**好啊!**
- 如果命令以 **broadcast!**开头, 信息将以简单的格式被发送至服务器的所有在线玩家, 没有任何前缀. 如果命令以 actionbar! 开头, 所有玩家将收到一条 ActionBar 消息
- 如果命令以 **title!**开头, 所有玩家将收到一条 Title 消息
- 如果命令以 **subtitle!**开头, 所有玩家将收到一条 SubTitle 消息
- 如果命令以 **kickall!**开头, 所有玩家将被以指定消息踢出服务器. 在服务器关闭时特别好用.
- 如果命令以 **asPlayer!**开头, 命令将以发送初始化命令玩家的身份执行.
- 如果命令以 asConsole!开头, 命令将以控制台的身份执行. 这个可以在类似自定义命令简写这种如果不特殊指定, 默认以玩家身份执行的地方用.
- 如果命令以 **cooldown:[秒数]!**开头, 那一行(如果指定)或下方的所有行将在重复使用之前有冷却时间. 例子: **cooldown:5! cmi heal [playerName]**将会治疗玩家, 但是不会在 5 秒之内再治疗玩家.
- 如果命令以 **perm:[权限节点]!**开头, 如果玩家有权限节点, 才会执行命令. 当未指定目标玩家时, 这将不起作用. 例子: perm:cmi.announce.vip! broadcast! 你好鸭, VIP 们
- 如果命令以 **moneycost:[数值]!**开头, 当玩家有足够的钱时, 才会执行命令.
- 如果命令以 **hasmoney:[数值]!**开头, 如果玩家有足够的钱, 则会继续执行下方代码, 若没有则在这停止.
- 如果命令以 **expcost:[数值]!**开头, 当玩家有足够的经验值时, 才会执行命令.
- 如果命令以 **hasexp:[数值]!**开头, 如果玩家有足够的经验值, 则会继续执行下方代码, 若没有则在这停止.
- 如果命令以**item:[(物品:附加值)(-数量)]!**开头, 当玩家有指定的物品时, 才会执行命 令. 例子: **item:stone:1-12!**将需要 12 个花岗岩来执行命令.
- 如果命令以 **hasitem:[(物品:附加值)(-数量)]!**开头, 当玩家有指定的物品时, 才会执行命令. 这不会在执行命令的时候消耗物品.
- 如果命令以 ifonline:[玩家名]!开头, 当指定玩家在线时才会执行命令. 固定名称或者变量名称([玩家名])都可以用, 取决于你想要什么样的效果.
- 如果命令以ifoffline:[玩家名]!开头, 当指定玩家离线时才会执行命令. 固定名称或者变量名称([玩家**名]**)都可以用, 取决于你想要什么样的效果.
- 如果命令以 **votes:[数量]!**开头, 命令将在有足够的票数时执行.(Votifier)
- 在命令中间插入 delay! 5在触发 5 秒后执行命令. 这可以让你在服务器关闭前创建一个示例计数器.
- cmi launch [playerName]
- delay! 2
- cmi launch [playerName] - **[randomPlayer]**占位符可以用来随机获取一个没有 cmi.scheduler.exclude权限的在线玩家. 这可以用来在特定时间随机抽一个玩家送奖励. 举个例子: cmi give [randomPlayer] diamond **%rand/1-5%** 将会随机给在线玩家送 1~5 个钻石
- 如果命令以 **allPlayers!**开头, 将对所有在线玩家执行命令. 在需要填入玩家名的地方写 [allPlayers]. 举个例子: **allPlayers! cmi heal [allPlayers]**治疗所有在线的玩家.
- 支持 PlaceHolderAPI 变量.
附加内容 | EXTRA
-
**perm:[权限节点]!, moneycost:[数值]!, hasmoney:[数值]!, hasexp:[数值]! 和 expcost:[数值]!**都是条件判断. 这代表如果玩家没有权限节点或者足够的钱/经验值, 下方的代码将不会执行. 举个例子:perm:cmi.testperm! cmi heal [playerName]
-
如果你想通知玩家他没有该命令所需的权限节点或足够的钱/经验值, 那么在条件判断变量上加 ?. 例子: **perm:cmi.testperm?! cmi heal [playerName]**这样的话如果玩家没有 cmi.testperm权限, 他们会得到关于此权限的通知消息, 并且不会执行该命令.
-
如果玩家不符合要求的话你想要取消所有命令, 那么在条件判断变量上加 **#.**例子:
- moneycost:150#! cmi heal [playerName]
- cmi feed [playerName]这样写的话, 如果玩家的账户里面没有 150 元, 他既不会被 Heal 也不会被 Feed.
-
同时写上两个额外条件可用于通知玩家并在需要时取消执行其他命令.
BossBar 命令用法 | BossBar Usage
CMI 提供了一个为一个或所有在线玩家发送完全可自定义 BossBar 信息, 颜色, 以及其他内容的方法. 命令可以通过指定名字来发送给一个特定玩家, 或者将 all作为名字来发送给所有玩家.
用法和变量示例:
cmi bossbarmsg Zrips &2嘿!
cmi bossbarmsg all &2嘿!
向 Zrips 发送内容为”嘿”的 BossBar 消息, 并在 3 秒后消失.
cmi bossbarmsg Zrips &2嘿! -t:5
向 Zrips 发送内容为”嘿”的 BossBar 消息, 并在 5 秒后消失
cmi bossbarmsg Zrips &2嘿! -c:red
向 Zrips 发送内容为红色(默认为绿色)的”嘿”的 BossBar 消息, 并在 5 秒后消失.
cmi bossbarmsg Zrips &2嘿! -s:1
设置 BossBar 样式. 可用选项有: 1, 6, 10, 12, 20. 这会将 BossBar 分成特定数量的多个部分. 所以如果填 1 你将会看到一条连续的 Boss 血条, 如果填 20 你将会看到被分成 20 个部分的 Boss 血条.
cmi bossbarmsg Zrips &2嘿! -n:bossBarName
决定 BossBar 的名字, 它可以被设置为你想要的任何内容并且将用于识别相同的老 BossBar. 如果需要将会更新其为最新内容. 所以先运行 cmi bossbarmsg Zrips &2 嘿! -n:myBar然后再运行 cmi bossbarmsg Zrips &2 怎么了? -n:myBar, 名字相同的 BossBar 将会直接更新为新内容, 而不是重新创建一个新的. 如果不设定名字, 那么每次执行命令的时 候都会创建一个新的 BossBar.
cmi bossbarmsg Zrips &2嘿! -p:100/23
决定 BossBar 显示的进度条. 这个示例 BossBar 将会被填充 23%. 可以用一些 PlaceHolderAPI 变量, 比如 -p:%server_max_players%/%server_online%
可以像这样来设置成进度条自增自减的间隔: cmi bossbarmsg Zrips &2 嘿! -p:+1, 这表示进度条将逐渐提高百分比. 如果未设置初始值, 它将会以 0 开始. 如果写成这样: cmi bossbarmsg Zrips &2 嘿! -p:-1, 然后 BossBar 将会以 100 开始并且会逐渐减少百分比.
如果进度条自减/自增到了百分之 0 或 100(取决于进度条的类型), 那么 BossBar 将会在-t 计时器结束后消失. 这功能可以用于任何类型的计数器.
cmi bossbarmsg Zrips &2嘿! -cmd:"msg [playerName] hey;;cmi heal [playerName]"
决定进度条自增/自减到 0 或 100 后执行的命令. 可以通过 ;; 来分隔多个命令并且它允许使用特殊命令格式. 你可以在这里(英文版)查阅更多信息. 玩家需要拥有 cmi.command.bossbarmsg.admin权限节点来在 BossBar 信息中附带命令
cmi bossbarmsg Zrips &2嘿! -a:20
设置 BossBar 的自动更新间隔. 可用于每隔 x 游戏刻自动更新 BossBar 信息. 要记得 20 游戏刻才是 1 秒.
cmi bossbarmsg Zrips -cancel:testbar
所有变量都是可选选项, 除了消息文本本身. 可以组合使用任何变量来获得最佳的期望效果.
cmi bossbarmsg all -a:1 医疗援助将在[autoTimeLeft]后到达! -t:2 -p:1 -cmd:"msg [playerName] &2医生治疗了你!;;cmi heal [playerName] -s" -n:test -c:red
上面所示代码将会使 BossBar 每 Tick 自动+1(每秒 20 次), 从 0 到 100. 并且同时显示内容为:”医疗援助将在 5sec 后到达!“(计时器将自动更新)的 Title 信息. 在其达到 100 后所有在线玩家将会收到消息:”医生治疗了你!“并且被治疗, 而 BossBar 将在两秒后消失.
飞行能量 | Flight Charge
这个功能其实是另一种可选的限制飞行模式.是的, 我们已经有了 tfly(临时飞行)模式, 但是那个功能只是简单的基于时间计算.
这个功能(指飞行能量)使用起来更强大, 也更有趣
-
这个功能 默认禁用因为我们必须额外检查玩家的移动方式, 所以如果你对这个功能并不感兴趣, 最好还是避免做那些对你来说没用的检查.
-
玩家可以使用钱或者经验值来 购买飞行能量(未来更新中可能可以用物品购买).
-
默认情况下玩家可以购买 1000 点能量. 可以使玩家飞行 1000 个方块.
-
如果玩家一直悬浮在一个地方, 那么也会每秒扣 1 点能量来防止这种行为的出现.
-
为了防止从很高的地方摔下来却无伤害, 就像原版飞行模式会防止你受到任何摔落伤害, 玩家可能遭受两个或两个处理方式中的一个:
- 玩家将会损失摔落高度 x2的飞行能量. 例如, 如果从 7 格高的地方跌落, 那么将会扣除**(7-3)*2=8**点飞行能量, 因为你只有在从高于 3 格的地方摔落时才会受到摔落伤害. 可以自行配置.
- 第二种处理方式是玩家将受到他实际应该受到的伤害. 模拟相同数值的伤害, 就好像你没有飞行模式一样. 默认情况下, 这仅在从悬崖信仰之跃时生效, 并不会在飞行中突然关掉飞行模式而生效. 可以自行配置.
- 默认情况下, 即使你从 200 高度跳下来, 你也不会死, 但是你会只剩下 1 颗心. 这个也可以自行配置.
-
有一个内置的 GUI 来重充能飞行能量, 所以输入 /recharge然后你就准备好出发啦
-
默认情况下, 通过花费 1 点经验值/金钱, 你就能获得 1 点飞行能量. 这可以在配置文件中调整.
-
因为我们有 Bossbar 引擎, 所以玩家会看到非常漂亮的 BossBar 信息来显示他们已经使用了多少飞行能量. 这包括显示你当前的剩余能量, 和上次检查相比你损失/获得了多少飞行能量和你的最大飞行能量点数.
-
BossBar 血条栏将自动更新数值并根据你剩余的飞行能量来改变颜色. 》50% 绿色, 》30% 黄色, 《30%红色
-
**/cmi flightcharge (add/take/set/show/expcharge/moneycharge/recharge) (玩家名字)(数量)**可以在需要的时候使用, 但是简单的重新充能只需要输入 /recharge命令.
-
目前, 如果玩家在空中用光了他的所有飞行能量, 那么他会被传送到地面, 为了防止”事故”.
交互式命令 | Interactive Command
交互式命令功能允许你创建一些在交互后可以执行命令的方块或者实体.
那么如何创建一个交互式命令呢:
1 | 运行命令 /cmi ic new [名字], 比如 /cmi ic new healer你会在聊天栏中得到这样的窗口.
2 | 点击一个 **+**号来添加你指针指向一个方块(第一个+号)或者一个实体(第二个)给这个特定的交互式命令.
3 | 这将向你发送确认消息, 之后你可以给此交互式命令添加更多方块或实体, 或添加需要执行的命令.
4 | 只需要点击**!**号来查看这个交互式命令的命令执行列表.
5 | 点击**+**号来添加新命令, 插件将等待你在聊天窗口中输入新命令. 不要像常规命令一样以/开始, 只需书写命令内容. **[playerName]**变量可用于指向交互它的玩家.
6 | 在聊天中输入新命令,然后按 Enter 键.
7 | 在此之后, 你可以右键单击方块或实体, 并看看交互的结果.
你可以根据需求添加任意数量的方块/实体.
你可以根据需求添加任意数量的命令, 并可以使用特殊命令格式. 看看关于它(指特殊命令格式)的 Wiki 吧.
交互式命令可以设置为公共模式. 这代表着只要玩家拥有 cmi.interactivesign权限节点, 就可以通过在牌 子的第一行写[ic:[交互式指令名称]]来自动将牌子添加到指定交互式命令的方块列表中. 牌子内容将被自动替换为特定交互式指令配置的内容. 可以使用游戏内编辑器来管理它们.
为了”本地化”运行 !asconsole命令, 比如 PvP 倒计时, 必须定义世界范围, 以便让服务器”知道”命令的运行位置. 下面是一个示例, 在玩家单击交互式指令的方块/牌子后运行这个交互式方块的 Commands 部分启动了一个计数器.
c:world是世界的名字, 并且坐标是该方块/牌子的世界坐标.
pvp:
Location:
- ==: org.bukkit.Location
world: world
x: -1204.0
y: 90.0
z: 1120.0
pitch: 0.0
yaw: 0.0
Commands:
- asConsole! cmi counter start c:world:-1204:90:1120 t:5 -f r:100 msg:PvP_Start!
SignLines:
- pvp
- ' '
- ' '
- ' '
Public: false
自定义命令简写 | Custom Alias
CMI 提供了一个为任何命令创建输入一条命令就可以运行一个或者多个命令的方法(简写命令).
自定义命令简写支持特殊命令格式.
创建简单的单一命令简写只需要使用 /cmi aliaseditor new [简写]-[原始命令]. 举个例子, 我想把 /h设置为**/cmi heal**的命令简写, 需要输入 /cmi aliaseditor new h-cmi heal **[playerName] $1.**
- **[playerName]**将会被替换为执行简写命令的人.
- $1– 代表添加到简写命令后的任何额外变量将写在这里. 举个例子:/h zrips 10实际上将会执行
你可以使用内置编辑器添加多个命令.
只需要执行**/cmi aliaseditor**并向下滚动找到你想要修改的命令简写, 点击它然后你就能获取它的命令列表. 你可以编辑, 删除, 改变顺序, 或者新加一个命令.
这里有一个运行 2 个命令的命令简写:
– fromConsole! moneycost:20#?! cmi heal [playerName] -s
– fromConsole! msg [playerName] !&2You just been healed by God’s of minecraft!
- 运行它将会从玩家的账户中扣除 20 元. 如果他没有足够的钱, 那他会收到有关此消息的提示信息.
- 这是(指没钱收到提示信息)使用 **?**符号达到的效果. 你可以去特殊命令格式章节来阅读更多关于这个符号的信息.
- 并且如果他没有足够的钱, 第二个命令也不会运行, 这是因为使用了 **#**这个条件判断变量结尾符号. 条件判断变量总是以 **!**结尾, 而 **?**和 **#**是可选的符号.
- 如果玩家有足够的钱, 那么将会以控制台身份静默行**/cmi heal Zrips -s**这个命令, 然后将会执行第二个命令, 发送一条指定消息给玩家.
这里有一个带有延迟执行的命令简写:
– fromConsole! cmi launch [playerName]
– delay! 3
– fromConsole! cmi launch [playerName]
- 玩家将会朝在他正在看的方向被发射出去, 然后 3 秒后会被再发射一次.
应该在命令简写中尽量使用 ?(可能)变量, 主要用于在玩家输入错误的子命令时显示出帮助页面. 举个例子:
– /cmi aliaseditot new tipi sub-asConsole! cmi msg [playerName] apple
– /cmi aliaseditot new tipi ?-asConsole! cmi msg [playerName] carrot
- 当玩家执行**/tipi时他收到的结果是 carrot, /tipi bla的结果也是 carrot, 但是 /tipi sub 的结果是apple.**
自定义文本 | Custom Text
自定义文本功能允许你创建要为玩家显示的任何文本.
它可以是简单的纯色文本, 亦或是复杂的悬停显示更多信息和可点击的高级文本.
- PlaceHolderAPI 支持自动替换占位符. 并且允许为每个玩家自定义文本.
- 如果你用过 Essentials 的自定义文本功能, 就是你可以设置一些执行特定命令就显示的文本的功能, 那么 CMI 的这个功能和它很像, 就像 10 倍可自定义化版本, 并且更强大.
- 首先. 每个命令都被分成单独的文件, 以便更简单地控制你要使用或拥有的自定义文本.
- 然后. 你可以通过简单地点击聊天窗口里的 **<newPage>**决定哪里是新一页的开始, 而不是数 7 行… 所以你可以创建一个有 100 行的页面, 或者 1 行, 这是你的决定.
- 第三. 它拥有自动分页功能, 所以如果你有多页自定义文本, 你将自动看到下一页按钮来查看下一页. 如果你出于一些原因并不想看到它这样, 那么这个功能可以为单独的自定义文本手动禁用.
- 第四. 它会自动将新的自定义文本收录为具有相同名称的 新命令. 举个例子, 默认情况下 rules 文件将会拥有一个**/rules命令来在被执行时显示规则列表. 正式命令为/cmi ctext [自定义文本名字] (页)**
- 第五. 你可以创建 Raw 消息. 什么是 Raw 消息? 你把鼠标放在上面, 可以显示更多信息; 你点击一下, 就可以执行一个命令; 你点击一下, 就可以在聊天中粘贴一些文本, 这就是 Raw 消息. 创建方法很简单:
<T>Text</T> <H>Hover text</H> <C>cmi heal</C> <SC>Suggested text</SC>
-
- <T>Text</T>– 代表要显示的文字
- <H>Hover text</H>– 代表将鼠标悬停在文本上时显示的文本
- <C>cmi heal</C>– 代表单击文本时要执行的命令
- <SC>Suggested text</SC>– 是为命令准备的替换功能, 它会在单击时将文本粘贴到聊天框中
- 要在一行中包含多条 Raw 信息, 使用 **<Next>**将他们分开
- Raw 消息应该永远以 **<T>**开头
-
第六. 所有这些都可以在 游戏内编辑. 指令是 /cmi editctext, 你可以创建新的自定义文本, 编辑它的任意一行, 添加新的一页, 删除旧的, 启用/禁用简写名或者自动分页. 只需单击特殊的箭头即可更改行顺序. 也就是说, 完全支持游戏中创建和编辑自定义文本, 而无需编辑它们的文件. 因此, 任何管理员/Staff 无需直接访问您的服务器文件就可以轻松编辑或创建外观非常漂亮的帮助页面.
-
此功能将帮助你使用一些特殊的可点击文本, 或悬停在它们上面以显示额外信息来为自己的服务器创建充满特色的帮助页面, 并且可以通过一个简单的简写系统来方便的读取.
-
并且这个功能支持将自定义文本转化为成书, 只需要 **/cmi getbook [自定义文本名字] (玩家名)**并且内容还包括所有悬停和可点击的消息.
命令绑定 | Attached Commands
任何物品都可以被绑定一个及其以上的命令, 并且当交互物品的时候执行它.
- 选项: 物品使用次数, 决定可以使用该物品的次数, 达到次数之后物品将消失. 目前, 它只是计算使用**/cmi attachcommand**绑定上去的命令的次数. 举个例子: **/cmi attachcommand !limiteduse:5!**将会设置物品有 5 个使用次数. 使用物品时将会在 Lore 和 ActionBar 显示剩余次数.
- 选项: 从 控制台执行命令举个例子. **/cmi attachcommand !cc!cmi fly [playerName].**是的, 你可以通过变量来插入玩家名字.
这里有一些例子:
- /cmi attachcommand !limiteduse:3!;;!cc!cmi fly [playerName] true将会启用玩家的飞行模式.
- /cmi attachcommand !limiteduse:3!;;!cc!cmi tfly [playerName] 60将会给玩家提供一个 60 秒的临时飞行模式, 并且只能使用三次.
- **/cmi attachcommand !limiteduse:3!;;!cc!cmi heal [playerName]**可以治疗玩家 3 次, 然后物品就会消失. 如果物品堆叠在一起, 那么在堆叠内的物品将会一个一个被消耗使用次数, 当前一个使用次数没了再计算下一个巫婆的. 所以如果有 5 个可以使用 3 次的物品堆叠在一起, 一共可以使用 15 次.
- /cmi attachcommand !left!cmi heal;;!right!cmi feed将会在左键时治疗玩家, 右键时回复玩家的饱食度.
- /cmi attachcommand cmi launch [interactedPlayer] a:45将会在持有此物品且尝试交互时将玩家发射出去.
- 如果你不想点击物品的同时在后台刷屏, 使用**!silent!变量, 比如/cmi attachcommand!left!!silent!cmi heal;;!right!!silent!cmi feed.**
KillAll 用法 | Killall
/cmi kill all命令给你提供了一个按照可自定义的筛选规则来清除当前加载的实体的方法.
- 默认情况下拥有自定义名字的实体不会被清除.
- 矿车或者船里面的实体会被忽略.
- 可以设定一个范围以做到只在近距离范围内清除实体.
可用的筛选规则:
- -monsters清除所有怪物实体. 一般包括僵尸, 骷髅, 凋零以及其他怪物.
- -pets清除所有可以被驯服的实体, 比如马或者狼.
- -npc清除所有包含元数据(MetaData)的 NPC 实体, 比如 Citizen 插件创造的实体.
- -animals清除所有动物实体, 比如猪或者牛.
- -ambient像蝙蝠这样的实体.
- -named任何拥有自定义名字的实体.
- **[mobType]**清除特定种类的实体.
- -f把怪物, 可驯服生物, NPC, 傀儡生物, 动物, 环境生物, 载具整合成了一个筛选符.
- -lightning在实体被移除的地方召唤天雷.
- -list列出符合筛选条件的实体.
这里有一些例子:
- /cmi killall– 将会清除所有怪物.
- /cmi killall 60– 将会清除 60 格内的怪物.
- /cmi killall zombie– 将会清除所有僵尸.
- /cmi killall zombie skeleton– 将会清除所有僵尸和骷髅.
- /cmi killall -list– 将会列出所有实体.
- /cmi killall -monsters -lightning– 将会清除所有怪物并且在移除它们的地方劈一道闪电.
扫描 | Scan
扫描功能允许你在整个地图上查找包含某物品的任意种类的容器. 如果你正在寻找丢失的 OP 之剑或被偷走的东西, 你就可以用这个功能来找了.
-
插件将会扫描以下容器:
- 箱子
- 陷阱箱
- 潜影盒
- 漏斗
- 盔甲架
- 物品展示框
- 熔炉
- 投掷器
- 酿造台
- 马箱(驴/骡身上的箱子, 应该还有 羊驼)
- 箱子矿车
- 漏斗矿车
-
可以选择扫描到物品后马上删除该物品. 扫描完成后, 你将获得容器的位置列表, 你可以点击相应的坐标来传送到那个地方或者通过点击 **编辑 **按钮编辑该容器的内容(如果可用, 比如你要怎么”打开”一个物品展示框?).
-
可以随时暂停扫描并稍后继续./scan pause(暂停) 和**/scan continue**(继续扫描)输入**/scan stop**来停止扫描
-
插件会自动优化该功能的工作方式来避免卡服. 因此扫描速度将自动适配当前服务器的状态, 以使 TPS 保持在阈值以上.
-
扫描 15000×15000 格的范围大约需要 45min, 这有大约 6GB 去扫描. 全地图扫描只适用于**情况, 比如你不想给熊孩子任何藏匿的机会
扫描指令可用变量:
- id [ID:附加值]– 通过 ID 或数据值来识别物品.
- q [最低数量]– 扫描到物品的容器, 物品高于此最低数量才会呈递结果.
- r [半径(单位区块)]– 可选项目:范围扫描, 填入 g 代表扫描整张地图.
- n [物品名字]– 可选项目: 查找显示名, 忽略颜色符号. 使用下划线表示空格, 比如 中间_空格_的名字
- l [物品 Lore]– 可选项目: 查找 Lore. 使用下划线表示空格, 比如 中间_空格_的 Lore
- h– 将手持的物品作为扫描目标.
- e [附魔名字]– 查找拥有指定附魔的物品.
- elvl [附魔最低等级]– 查找具有等于或大于指定附魔等级的物品.
- oversize– 查找过量堆叠的物品.
- purge– 删除找到的物品, 这个功能应该先在配置文件中启动并且出于安全性原因默认禁用.
命令示例:
- /scan id 52 r 30– 寻找以你为中心 30 区块范围内的所有刷怪笼(物品).
- /scan id diamond_block r g q 32– 全地图查找堆叠数量超过 32 的钻石块.
- /scan id 276 r 30 n power_sword e sharpness elvl 10– 在 30 区块范围内查找名字为”powersword”并且锋利附魔等级大于等于 10 的钻石剑.
Tab 列表 | Tab List
- 支持多行显示
- 以 异步模式运行, 以避免在主线程上操作导致过载.
- 完全支持PlaceHolderAPI的任何变量.
- 还支持 CMI 自己的变量.
- 可自定义的页眉和页脚(就是 Tab 列表中玩家列表上方/下方显示的内容).
- 支持以特定间隔自动刷新内容(举个简单例子使用时钟变量的时候, 可以每分钟更新一次), 或者在特定事件触发时刷新内容, 比如在玩家登录时刷新在线玩家数之类的.
- 可自定义列表中玩家名称的显示格式.
- 将不会把隐身玩家计入在线玩家数内. 下方的图片示例就是一个例子.
- 支持为不同玩家设定不同的显示格式. 在下方的图片示例中, 管理员看到的内容与常规格式不同, 并且管理员的名称显示格式也不一样.
- 你可以创建的格式配置组的数量没有限制(默认有 2 个配置组).
- 如果需要, 可以禁用权限节点检查来获得更好的运行性能.
- 通过**cmi.tablist.[组序号]**权限节点来使玩家看到不同的 Tab 列表格式, 比如 cmi.tablist.1或者其他数字, 数字越大, 显示优先级越高.
- 设置 Tab 列表的自动刷新间隔时, 请把它尽量设置为最高值, 你使用的占位符变量也是. 请避免低于 5 秒的刷新间隔甚至设置为-1 和仅在事件更新时刷新.
想要创建一个有动画的 Tab 列表, 你需要一帧一帧地写内容. 举个例子:
Header:
'1':
- '&f------------------------------------'
- '&7在线人数 &f%server_online%&7/&f%server_max_players%'
- '&f------------------------------------'
'2':
- '&7------------------------------------'
- '&7在线人数 &f%server_online%&7/&f%server_max_players%'
- '&7------------------------------------'
'3':
- '&8------------------------------------'
- '&7在线人数 &f%server_online%&7/&f%server_max_players%'
- '&8------------------------------------'
这将在每个 Tab 列表刷新时不停变换颜色.
同一个 Tab 列表可以有不同数量的页眉/页脚动画帧
游戏时间奖励 | PlayTime Rewards
游戏时间奖励系统可以在玩家积累到了一定时长的游戏时间后执行一段命令.
你可以设置每过 X 秒或游戏时长共 X 秒后执行命令.
所以你可以设置每小时给予一次常规奖励, 然后游戏时长达 6 小时甚至 24 小时后, 发一个大一点的奖励.默认命令 /cmi prewards的命令简写默认启用, 并且它的其中一个命令简写**/prewards**将会显示游戏时间奖励列表, 你看到下一个奖励并领取一些奖励.
hourly1:
DisplayName: "&7Hourly reward"
AutoClaim: true
Description:
- "&2Get reward for every hour you are online"
- "&2Free heal and 20 bucks into your pocket"
PayEvery: 3600
Commands:
- asConsole! cmi heal [playerName] -s
- asConsole! cmi money give [playerName] 20
daily1:
DisplayName: "&7Daily reward"
AutoClaim: true
Description:
- "&2Get reward for every 24 hours of playtime"
- "&22000 bucks into your pocket!"
PayEvery: 86400
Commands:
- asConsole! cmi money give [playerName] 2000
1hour:
DisplayName: "&fOne hour reward"
AutoClaim: false
Description:
- "&2Get reward for 1 hour you have been online"
- "&2500 bucks into your pocket!"
PayFor: 3600
Commands:
- asConsole! cmi money give [playerName] 500
6hour:
DisplayName: "&f6 hour reward"
AutoClaim: false
Description:
- "&2Get reward for 6 hour's you have been online"
- "&22 000 bucks into your pocket!"
PayFor: 21600
Commands:
- asConsole! cmi money give [playerName] 2000
12hour:
DisplayName: "&f12 hour reward"
AutoClaim: false
Description
- "&2Get reward for 12 hour's you have been online"
- "&25 000 bucks into your pocket!"
PayFor: 43200
Commands:
- asConsole! cmi money give [playerName] 5000
24hour:
DisplayName: "&f24 hour reward"
AutoClaim: false
Description:
- "&2Get reward for 24 hour's you have been online"
- "&215 000 bucks into your pocket!"
PayFor: 86400
Commands:
- asConsole! cmi money give [playerName] 15000
7days:
DisplayName: "&f7 day reward"
AutoClaim: false
Description:
- "&2Get reward for 7 days you have been online"
- "&250 000 bucks into your pocket!"
PayFor: 604800
Commands:
- asConsole! cmi money give [playerName] 50000
30days:
DisplayName: "&f30 day reward"
AutoClaim: false
Description:
- "&2Get reward for 30 days you have been online"
- "&2500 000 bucks into your pocket!"
PayFor: 2592000
Commands:
- asConsole! cmi money give [playerName] 500000
在这个例子中,**“hourly1”**是该游戏时间奖励配置组的唯一标识 (下面被称为 PTR). 你可以随心所欲写任何内容, 但是每个 PTR 之间不能重复.
- DisplayName– 决定显示在列表中的奖励名字. 你可以使 用颜色代码来把它们区分开. 可以写你想写的任何东西.
- AutoClaim– 决定当玩家达到目标时是否自动发放奖励, 否则他就得手动领取奖励.
如果选择奖励需要手动领取, 那么玩家每 X 分钟都会收到一次提醒(可在配置文件中自定义): 他有未领取的奖励.只有拥有 cmi.prewards.notification权限节点才可以收到提示信息. - Description– 决定当鼠标悬浮在奖励名字上面时显示的详细信息. 你可以根据需要添加任意行文本, 并根据需要使用颜色代码.
- PayFor– 决定游戏时长达到多少秒后发放奖励. 当玩家的游戏总时长达到指定数值时发放并且只会发放一次奖励.
- PayEvery– 是会重复发放的奖励, 玩家每在服务器在线一定时长发放一次奖励.
- StackRewards– 填 True 或 False. 如果不写默认为 True. 决定是否可以积累奖励, 然后玩家在领取奖励时可以一次性领到很多奖励.
- Commands– 当领取奖励时执行的命令. 支持特殊命令格式.
不死图腾 | Totem
原版 Minecraft 1.11+后允许你死亡时手持不死图腾来避免死亡.然而你并不知道你到底什么时候会死亡, 所以这个功能并不是很好用.
这个功能将使不死图腾成为你服务器上最有用的东西之一, 而不会显得太无敌或成为无用的新噱头.
现在不死图腾有了三个新功能:
- 功能 1: 不死图腾不需要持有在手上, 只需要放入背包, 便会在受到致命伤害时自动生效
- 功能 2: 为了避免 功能 1 使得不死图腾过于无敌, 比如玩家带了一背包的不死图腾出去玩. 新添加了冷却系统, 你可以决定玩家每隔多久才能再使用一次不死图腾. 默认情况下是 10 分钟.BossBar 将显示冷却剩余时间, 直到你可以再次使用不死图腾. 你可以使用和**/cmi totemtoggle**命令来开关 BossBar 信息提醒
- 功能 3: 如果你想通过这种方式来使用不死图腾, 你需要把它拿出来然后消耗掉它. 使用不死图腾后, 你将有 10 秒钟(默认值)的无敌时间, 在此期间如果你死亡了, 然后你就会原地复活. 不死图腾在进入无敌时间后就马上被消耗掉, 就算玩家并没有在无敌时间内死亡也不会返还. 这个功能比单纯把不死图腾塞背包里更加需要战略.
全息字 | Holograms
CMI 全息字功能提供了以全息方式显示任何自定义文本的方法.
- 它的数据包和悬浮物品仅存在于客户端会话上, 以防止被第三方清理插件清掉.
- 你可以用游戏内编辑器来添加新的一行文本, 删除旧的一行, 把全息字移到你所在位置或者精确调整到你想展示的地方, 改变全息字的激活范围甚至行间距.
- 它支持 PlaceholderAPI 插件的变量来根据不同玩家显示不同的信息.
- 它支持按指定时间间隔自动刷新文本.
- 如果你离它太远, 为了最小化客户端的负载, 它会自动隐藏, 直到你靠近它来使它刷新一次.
- 具有显示悬浮物品或静态图标的功能, 适用于大多数自定义需求.
- 使用**/cmi hologram new [名字]**来创建一个新的全息字.
- 只需要输入 /cmi hologram就可以根据全息字和你的距 离列出一个列表, 离你最近的全息字永远在列表第一个, 点击要修改的全息字来编辑它.
- 可以在某一行写上ICON:[物品名字/ID]:[附加值]来创建一个图标, 举个例子: ICON:Stone将会创建一个石头的悬浮物, 而ICON:Stone:3将会创建闪长岩的悬浮物.
- 如果要像示例中的那用将当前手持的物品作为为图标, 像这样写:ICON:%iteminhand%. 此功能仅适用于 7.6.0.1+ 以上的版本.
- 同样的, 你也可以用这个方法来设置静态图标, 唯一的不同之处是变量要写成 SICON.
- 你可以使用 CMI 或 PlaceHolderAPI 提供的任何变量来显示玩家的当前信息. 每个玩家都能根据变量看到不同的, 他们自己的信息.
- Update range决定由玩家靠近导致开始自动更新所需要的距离.
- Show range决定玩家靠近显示或隐藏全息字所需要的距离. 这不会触发全息字自我更新.
- 如果你想要它静态显示(不更新内容), 设置 update interval为-1.
- Line spacing可以在你需要把行与行压缩在一起或者分开时起作用(行间距). 默认情况下, 它们(指各行之间)将尽可能接近而不重叠
- Icon spacing将决定为图标所留下的空行, 因为显示图标需要大约 2 行文字
- 使用**&u**颜色代码来在每次更新内容时随机一个颜色.
传送门 | Portals
此 CMI 功能使你可以创建当玩家穿越它们时执行命令的传送门. 并且支持特殊命令格式.
要创建一个传送门, 你需要一把木锄(默认选区工具), 还需要拥有 cmi.command.portals和 cmi.select权限节点.
- 现在你选择了一片你想创建传送门的区域(就像 worldedit 一样). 选区会通过粒子效果来高亮显示.
- 选完了? 你需要运行这个命令: /cmi portals new [名字]. 举个例子: /cmi portals new Test1
- 到这一步你需要设置目的地了, 就是玩家会被传送到的地方.
- 当上一步完成后, 我们就可以自定义我们的传送门了. 只需要在聊天栏输入 /cmi portals edit Test1 然后就会打开编辑 GUI, 可以操作以下内容:
- 启用/禁用传送门
- 从当前选区中重新启动传送门
- 启用/禁用粒子特效
- 粒子特效种类(又 36 种不同种类)
- 粒子特效数量
- Percentage of sides shrieked particles
- 粒子特效的有效范围
- 传送到传送门位置
- 传送到传送门的目的地
- 决定是否在没有有效传送目的地位置时执行命令
- 编辑传送门要执行的命令
- 设置传送目的地
- 保存更改到文件
- 删除传送门
以下是传送门保存到 Portals.yml文件的格式. 我更喜欢通过文件管理传送门命令.
Test1:
Loc: 358.0:64.0:77.0:358.0:67.0:81.0
enabled: true
effect: reddust
showParticles: true
Tp:
==: org.bukkit.Location
world: world
x: 370.6645173225757
y: 64.0
z: 79.38387030052189
pitch: 2.5499883
yaw: -268.79987
particleAmount: 20
particleHide: 0
activationRange: 16
commandsWithoutTp: false
commands:
- cmi effect [playerName] blindness 2 1 -s
- cmi fly [playerName] false
请注意 | ATTENTION
根据配置文件, 创建传送门时会自动填入cmi effect [playerName] blindness 2 1 -s这条命令, 如果你想删掉它, 就把这一项设置为空.
Portals:
# Defines in milliseconds how often to check if player entered portal or not
# Bigger numbers can help slightly lower server load but small portals, 1 block depth without backwall can be passed throw without teleportations if player moves fast enought
CheckInterval: 300
# Defines in milliseconds how often to check if player entered portal range for particles to apear
CheckParticleInterval: 500
# Perform commands on teleport or not
PerformCommands: true
# Commands to be performed on teleport event
Commands:
- cmi effect [playerName] blindness 2 1 -s
附加内容 | EXTRA
- 传送门可以跨 Bungeecord 网络工作, 也就是你可以跨服传送你的玩家. 如果设置这样的传送门? 有了 CMI 它不能再更简单了. 创建一个传送门, 打开编辑器 UI, 点击设置传送目的地按钮, 你将会在聊天栏收到一条信息. 前往你想要传送到的位置, 同一子服内或者蹦极跨服(两个子服都应安装 CMI)然后点击一下刚刚发的提示信息. 你就完成了. 就这样而已… 前往你所想的目的地, 然后点击一下聊天消息. 不需要命令, 啥都不需要. 就是这么简单.
- 传送门命令也可以跨 Bungeecord 网络运行,并将在玩家被传送后执行
- 想要在当玩家进入传送门时播放自定义声音, 在portal.yml的 command 节添加如下内容即可.
commands:
- cmi effect [playerName] blindness 2 1 -s
- execute [playerName] ~ ~ ~ /playsound ENTITY.ENDERMEN.TELEPORT player [playerName]
请注意: 声音名称可能因 Minecraft 版本而异.
- 你可以通过**/cmi portals**命令按照离你远近的顺序列出所有传送门.
- 你可以根据需要添加任意数量的命令,并可以使用特殊命令格式.