晋级系统🔗
晋级系统允许玩家根据服务器设定的条件晋升到更高的等级组。要使用统计相关功能,请检查主服务器文件夹中的 spigot.yml,确保统计保存预防已设置为 false(stats->disable-saving: false)。
玩家会根据设定的权限节点 cmi.rank.[rankName] 获得对应的默认等级组。
未启用的晋级等级将被忽略。
此处可查看与晋级相关的可用命令。
基础选项 (Base options)🔗
- DisplayName 部分是可选的,它将用于在游戏中表示该等级。这并不定义所需的权限节点,你仍然需要使用节点名来晋级到该等级。
- DefaultRank 部分定义了如果玩家没有任何等级,是否可以将其分配到此等级。可以有多个默认等级,根据权限节点,必要时会将第一个等级分配给该玩家。
- AutoRankup 部分定义了如果可能,玩家是否会自动晋级到此等级。请注意,如果存在多个合法的晋级选项,玩家将必须确认他想要晋级到哪个等级。
- RankupConfirmation 部分定义了你是否想为此晋级添加额外的确认。这对于避免无意的晋级很有用。请注意,即使只有一个合法的晋级选项,autorankup 也会要求确认晋级到此等级。
- NextRanks 是从该等级可以晋升到的下一个等级的列表。可以是一个,也可以是几十个。请注意,每个等级的要求都会在聊天中显示,如果同时显示太多,可能会使聊天变得杂乱。
- MoneyCost 定义玩家晋级到此等级需要支付多少金币。
- ExpCost 定义玩家晋级到此等级需要支付多少经验。
- Votes 定义玩家需要拥有的投票数。这将根据 Votifier 插件的 CMI 投票记录来获取。
- Commands 是在晋级时执行的命令列表。可以是额外的操作,如消息广播或其他任何东西。
- CommandsOnRankDown 是在降级操作时执行的命令列表。当你从该等级降级时会执行这些命令。
统计要求 (StatsRequirements)🔗
主要部分是 StatsRequirements,它可以在其中包含很多不同的值:
一般来说,格式如下:主统计:数量 例如,MonsterKills:100 将要求玩家有 100 次怪物击杀,而 MonsterKills:Zombie:100 将要求有 100 次僵尸击杀。如果需要,两者都可以使用。
可能的统计要求列表及基本说明:
按方块距离: - Travel – 总旅行距离 - Walk – 必须行走 - Sneak – 必须潜行 - Sprint – 必须疾跑 - Swim – 必须游泳 - Fall – 必须坠落 - Climb – 必须攀爬 - Fly – 必须飞行 - WalkUnderWater – 必须在水下行走 - WalkOnWater – 必须在水上行走 - MinecartTravel – 必须乘坐矿车旅行 - BoatTravel – 必须乘船旅行 - PigTravel – 必须骑猪 - HorseTravel – 必须骑马 - ElytraTravel – 必须使用鞘翅飞行 - GhastTravel – 必须骑恶魂 - NautilusTravel – 必须骑鹦鹉螺 - Strider travel – 必须骑炽足兽
按秒计的时间: - PlayTime – 总游戏时间 - AccountAge – 从玩家第一次登录服务器算起的时间 - FromLastDeath – 距上次死亡的时间 - SneakTime – 潜行时间 - TotalWorldTime
数量类: - GameQuit – 玩家离开游戏的次数 - Jump – 跳跃次数 - DamageDealt – 造成的总伤害 - DamageTaken – 承受的总伤害 - Deaths – 死亡次数 - MobKills – 玩家击杀的怪物总数 - PlayerKills – 击杀玩家的总数。间接击杀不计入 - ItemEnchanted – 附魔物品的数量 - AnimalsBred – 繁殖的动物数量 - FishCaught – 钓到的鱼数量 - TalkedToVillager – 与村民交谈的次数 - TradedWithVillager – 与村民交易的次数 - CakeSlicesEaten – 吃掉的蛋糕片数量 - CauldronFilled – 装满的炼药锅数量 - CouldronUsed – 使用炼药锅的次数 - ArmorCleaned – 清洁盔甲的次数(皮革盔甲) - BannerCleaned – 清洁旗帜的次数 - BrewingstandInteractions – 酿造台交互次数 - BeaconInteractions – 信标交互次数 - CraftingTableInteractions – 工作台交互次数 - FurnaceInteractions – 熔炉交互次数 - DispenserInspected – 检查发射器的次数 - DropperInspected – 检查投掷器的次数 - HopperInspected – 检查漏斗的次数 - ChestOpen – 打开箱子次数 - TrappedChestTriggered – 触发陷阱箱次数 - EnderchestOpened – 打开末影箱次数 - NoteblockPlayed – 播放音符盒次数 - NoteblockTuned – 调谐音符盒次数 - FlowerPotted – 盆栽次数 - RecordPlayed – 播放唱片次数 - SleeptInBed – 床上睡觉次数 - ShulkerBoxOpened – 打开潜影盒次数 - ShulkerBoxCleaned – 清洁潜影盒次数 - ItemDropped – 定义丢弃物品的数量。如果未定义特定物品,则使用总量 - ItemPickups – 定义拾取物品的数量。如果未定义特定物品,则使用总量 - BlocksMined – 定义挖掘方块的数量。如果未定义特定方块,则使用总量 - ItemBreaks – 定义损坏物品的数量。如果未定义特定物品,则使用总量 - ItemCrafts – 定义制作物品的数量。如果未定义特定物品,则使用总量 - ItemsUsed – 定义物品使用量,例如用镐挖矿。如果未定义特定物品,则使用总量 - MonsterKills – 定义怪物击杀数量。如果未定义特定怪物,则使用总量 - KilledBy – 定义被怪物杀死的次数。如果未定义特定怪物,则使用总量 - InteractionWithBlastFurnace – 高炉交互次数 - InteractionWithSmoker – 烟熏炉交互次数 - InteractionWithLectern – 讲台交互次数 - InteractionWithCampfire – 营火交互次数 - InteractionWithCartographyTable – 制图台交互次数 - InteractionWithLoom – 织布机交互次数 - InteractionWithStonecutter – 切石机交互次数 - InteractionWithAnvil – 铁砧交互次数 - InteractionWithGrindstone – 砂轮交互次数 - InteractionWithSmithingTable – 锻造台交互次数 - BellRing – 敲钟次数 - RaidTrigger – 触发袭击次数 - RaidWin – 赢得袭击次数 - TargetHit – 击中靶子次数 - OpenBarrel – 打开木桶次数 - DropCount – 掉落次数
StatsRequirements:
- "PlayTime:3600"
- "travel:1000"
- "MonsterKills:zombie:10"
- "MonsterKills:slime:5"
- "MonsterKills:wolf:5"
- "AccountAge:1209600"
物品要求 (ItemRequirement)🔗
玩家背包中需要拥有的物品列表。定义为材质后跟数量。
职业要求 (JobsRequirement)🔗
玩家需要加入的职业及其最低等级列表。此外,你还可以使用 totallevel 来要求所有已启用职业的总等级数量。
McMMO 要求 (McMMORequirement)🔗
mcmmo 技能及其最低等级列表。此外,你还可以使用 power 来要求特定的总技能等级。
权限要求 (PermissionRequirement)🔗
权限要求列表。它需要有实际的权限节点,并附上其简短显示名称,用于在游戏中显示晋级信息时使用。
占位符要求 (PlaceholderRequirements)🔗
占位符要求列表。这可以通过数字占位符或文本进行检查。对于数字占位符,使用 >= 或 == 来检查大于等于或精确值。对于基于文本的占位符,始终使用 == 来检查精确匹配,不过我们会忽略大小写。这需要包含一个简短描述,用作游戏中晋级信息的显示名称。
PlaceholderRequirements:
- '%cmi_user_level%>=10;Get to level 10'
- '%cmi_user_homeamount%>=3;Get 3 homes'
- '%cmi_user_weather%==rainy;We like rain'
默认配置文件示例 (Default file example)🔗
Newbie:
Enabled: true
DisplayName: "&2Newbie"
DefaultRank: true
AutoRankup: true
NextRanks:
- Branch1
- Branch2
Branch1:
Enabled: true
DisplayName: "&2Branch1"
AutoRankup: true
RankupConfirmation: true
Votes: 5
PermissionRequirement:
- "cmi.command.fly:Fly"
McMMORequirement:
- "woodcutting:10"
- "power:20"
JobsRequirement:
- "miner:10"
- "totallevel:20"
ItemRequirement:
- "stone:10"
- "stone:1:20"
- "book:20"
NextRanks:
- Branch1Rank1
MoneyCost: 100
Commands:
- "broadcast! &6[playerDisplayName] &eleveled up to Branch1 rank!"
StatsRequirements:
- "PlayTime:3600"
- "travel:1000"
- "MonsterKills:zombie:10"
- "MonsterKills:slime:5"
- "MonsterKills:wolf:5"
- "AccountAge:1209600"
PlaceholderRequirements:
- '%cmi_user_level%>=10;Get to level 10'
- '%cmi_user_homeamount%>=3;Get 3 homes'
- '%cmi_user_weather%==rainy;We like rain'
Branch1Rank1:
Enabled: true
DisplayName: "&2Branch1Rank1"
DefaultRank: false
AutoRankup: true
RankupConfirmation: false
PermissionRequirement:
- "cmi.command.heal:Heal"
NextRanks:
- Last
MoneyCost: 300
ExpCost: 350
Commands:
- "broadcast! &6[playerDisplayName] &eleveled up to Branch1Rank1 rank!"
StatsRequirements:
- "travel:10000"
- "blocksmined:3000"
- "blocksmined:diamond_ore:30"
- "MonsterKills:1000"
- "AccountAge:1209600"
McMMORequirement:
- "taming:10"
- "unarmed:30"
Branch2:
Enabled: true
DisplayName: "&2Branch2"
AutoRankup: true
RankupConfirmation: true
MoneyCost: 150
NextRanks:
- Branch2Rank1
Commands:
- "broadcast! &6[playerDisplayName] &eleveled up to Branch2 rank!"
PermissionRequirement:
- "cmi.command.tp:Teleport"
StatsRequirements:
- "PlayTime:3600"
- "travel:2000"
- "MonsterKills:zombie:15"
- "MonsterKills:slime:10"
Branch2Rank1:
Enabled: true
DisplayName: "&2Branch2Rank1"
AutoRankup: true
RankupConfirmation: false
MoneyCost: 100
ExpCost: 150
NextRanks:
- Branch2Rank2
Commands:
- "broadcast! &6[playerDisplayName] &eleveled up to Branch1Rank1 rank!"
StatsRequirements:
- "PlayTime:4600"
- "Swim:1000"
- "SneakTime:180"
- "MonsterKills:100"
Branch2Rank2:
Enabled: true
DisplayName: "&2Branch2Rank2"
AutoRankup: true
RankupConfirmation: false
MoneyCost: 100
ExpCost: 150
NextRanks:
- Last
Commands:
- "broadcast! &6[playerDisplayName] &eleveled up to Branch2Rank2 rank!"
StatsRequirements:
- "walk:15000"
- "HorseTravel:1000"
- "ItemsUsed:10000"
- "PlayerKills:10"
Last:
Enabled: true
DisplayName: "&2Last"
AutoRankup: true
StatsRequirements:
- "PlayTime:21600"
- "walk:30000"
- "MonsterKills:1000"
- "blocksmined:30000"
Commands:
- "broadcast! &6[playerDisplayName] &eleveled up to Last rank!"
- "cmi heal [playerName]"
- "money give [playerName] 100"