小天吖~ 发表于 2022-2-22 17:08:36

[2022.2.24][CPS]BedWars1058 —— 实用流行的起床战争插件 维基帮助

本帖最后由 小天吖~ 于 2022-2-24 21:06 编辑


BedWars1058 维基翻译




    介绍
欢迎来到 BedWars1058 中文维基该维基主要由本人翻译完成,在此期间感谢@三九刀 @fantuan_233 的协助你将在本维基中学会如何下载安装、配置使用 BedWars1058 插件BedWars1058 是一款较完善的起床战争插件其基本玩法为 保护我方床,破坏敌方床并将其全部击杀,取得获胜BedWars1058 插件原本是付费插件,但作者在2021年开源并提供免费下载这是众多小游戏爱好者的福音
由于本人水平有限,可能会有部分地方存在谬误若您发现有哪翻译错误/不到位,欢迎回复本人第一次翻译大工程WIKI,若有不足还请见谅

码字进1.5W,每个部分均标注字数统计,并无虚假报数

插件原帖

维基英文地址





    目录

介绍
功能介绍
常见问题

服务条款

兼容相关


安装&设置
下载安装

设置地图

加入地图

设置地图组



配置
指令与权限

主配置文件

地图配置

资源配置

商店配置

等级配置

音效配置

团队增益配置
语言配置



挂钩插件
SlimeWorldManager

PlaceholderAPI

Vault

Citizens

AlessioDP



开发者相关
入门

maven

Events

JavaDocs

注册指令

自定义等级

创建新资源/资源点





小天吖~ 发表于 2022-2-22 17:08:46


插件功能介绍





[*]为每位玩家提供私人语言,玩家选择语言后悔收到他选择语言的信息(消息、全息、GUI)
[*]你可以自由的为每个地图设置自定义名称,自定义资源点,自定义计分板,自定义商店及团队升级
[*]使用支持的语言和颜色来设置地图中团队的自定义名称,你可以创建多个团队
[*]计分板完全支持自定义配置,你最多可以配置16行,其中可以使用你想添加的变量
[*]清除等待大厅,游戏开始之后等待大厅将会被清除(bedwarsrel不会清除等待大厅,你在一些服务器会经常看到游戏开始后,地图上方会有个等待大厅)
[*]插件共支持三种运行模式:shared(一个spigot服务器具有很多游戏,比如一个服务器上既有起床战争也有其他小游戏)
[*]bungee(传统的一端一图模式,一个服务器运行一个地图),multiarena(传统的一端多图模式,一个服务器多个地图)
[*]游戏中的商店完全支持自定义配置,可以随意创建新商品组及添加新商品,支持vault经济
[*]具有多种特殊道具,Debug(蠹鱼),梦卫士(铁傀儡),蛋桥(鸡蛋)
[*]团队升级完全支持自定义配置,你可以为团队增益,团队附魔,陷阱添加等级,或者添加更多团队升级类型
[*]资源刷新点也可以修改,你可以为每个地图配置不同的资源刷新点
[*]多种加入方式,你可以通过指令,告示牌,地图GUI和NPC进入地图
[*]可以自行配置每张地图,例如是否允许旁观,每队最多玩家数量等
[*]支持Vault前缀及后缀,支持LeaderHeads统计,支持PlaceholderAPI,支持Citizens
[*]插件具有组队系统,你可以和你的朋友组队游戏(具体用法请看后面)
[*]简单且高效的地图重置功能,你要做的不是设法保存 起床地图 ,而是禁用其他插件的世界保存功能(否则会带来问题)
[*]插件为开发者提供了大量API,各位开发者可以自行编写插件
[*]离线系统,超过45秒没有活动的玩家,将无法拾起物品及资源
[*]你可以设置玩家在大厅/地图/旁观者模式下的背包物品,并为些物品绑定指令
[*]你可以在你的服务器中添加Parties插件(https://gitlab.com/andrei1058/BedWars1058/-/wikis/features)如果玩家在大厅中创建队伍,并邀请其他玩家进入地图,那队伍中的所有人都会被传送到同一地图





小天吖~ 发表于 2022-2-22 18:01:03


常见问题




Q:如何编辑已经创建好的地图
A:你只需要输入/bw setupArena <name>,你就可以修改现有地图(并且不会丢失原数据)
Q:为什么商店/团队升级 NPC没有生成
A:打开服务端根目录下的server.properties,将spawn-npcs设置为true,另外不建议安装WorldGuard插件,如果你安装了请不要在地图区域内设置任何区域保护!
Q:为什么我不能放置方块呢
A:请确保你在地图区域内放置方块,如果你在区域外放置方块,放置不上是正常的,同时你还会收到一条消息。
其他情况:你也许激活了spawn-protectio,它不会允许你在出生点处放置方块,你可以将server.properties中的spawn-protection设置为0.
如果还没有用的话,请检查你没有在地图区域内设置起床主大厅(因为起床主大厅区域内会禁止玩家PVP和放置/挖掘方块等行为)
Q:为什么我无法PVP
A:请检查你没有在地图区域内设置起床主大厅(因为起床主大厅区域内会禁止玩家PVP和放置/挖掘方块等行为)
如果你使用MultiVerse插件的话,请确保地图世界中的pvp为允许状态
如果你使用WorldGuard插件的话,建议你删除地图区域内的所有区域
如果你没有使用上述插件,请将服务端根目录下的server.properties中difficulty的值设置为>0
Q:为什么我的地图无法重置
A:请看创建地图条目的相关内容
Q:为什么我的全息图不能正常显示https://user-content.gitlab-static.net/243dea44531eda2b2201732045f491ec7fa0e2ea/68747470733a2f2f692e696d6775722e636f6d2f49597a48644b362e6a70673f31
A:这是客户端问题,一般1.8会出现此类问题
Q:我还有想问的问题怎么办?
A:去Discord找作者https://discord.gg/XdJfN2X





小天吖~ 发表于 2022-2-22 18:11:39


服务条款




现在该插件以已开源免费,以下为翻译原wiki的内容
1.不退款,在购买前你可以测试插件/阅读维基,“插件不好用”或其他任何借口都是不会被支持的,退款用户将会被永久禁止访问spigotmc
2.不得二次分发,你不可以以任何形式分发该插件,侵权是违 法 犯 罪行为
3.一次购买仅一个服务器可用,购买一次只能供Bungee下的一台或多台服务器使用
4.永久提供支持,购买者可以在原作者discord获得帮助(仅适用于态度良好且文明的使用英语,罗马日亚语,意大利语提问的人)


小天吖~ 发表于 2022-2-22 18:18:50


兼容





BedWars1058是在spigot基础上开发的,它理论上兼容其他以spigot基础开发的核心,例如Paper
支持版本:

[*]1.8.8 (v1_8_R3)
[*]1.9.4 (v1_9_R2)
[*]1.10 - 1.10.2 (v1_10_R1)
[*]1.11 (v1_11_R1)
[*]1.12 - 1.12.1 - 1.12.2 (v1_12_R1)
[*]1.13.1 - 1.13.2 (v1_13_R2)
[*]1.14 - 1.14.2 (v1_14_R1)
[*]1.15 - 1.15.2 (v1_15_R1)
[*]1.16.1 - 1.16.2 (v1_16_R1)
[*]1.16.3 (v1_16_R2)

已知问题

[*]如果你在FoxSpigot上运行该插件,你无法在generators.yml中设置stack-items:true
[*]ViaRewind和ViaBackwards在游戏中可能会引发一些问题
[*]重要:请不要进行任何热加载行为,包括/reload及yum/plugman等插件,会导致插件出现重大错误
[*]请不要使用PerWorldPlugins ,否则你不会获得任何帮助
[*]如果你使用Multiverse或任何世界管理插件,你必须禁用地图世界的世界管理,否则会引发一系列问题




小天吖~ 发表于 2022-2-22 18:22:40


下载安装





下载BedWars1058.jar,并将该文件放至服务端\plugins内,重启服务器。如果你还要继续配置的话,请继续阅读本维基注:请不要使用热加载!(包括/reload及yum、plugman等插件管理插件)下载地址:https://www.spigotmc.org/resourc ... ource.97320/history


小天吖~ 发表于 2022-2-22 19:37:08




设置地图





分步教程
1.检查你是否拥有使用相关指令的权限,请在控制台输入op 你的id,给与你自己OP
2.输入/bw setlobby 设置起床主大厅。重启服务器(不要使用热加载),重启后重新进入服务器,继续阅读本维基
3.将一张地图上传至你的服务器,传送到该地图继续设置,创建地图:输入指令bw setupArena <世界名称>(世界名称为世界文件夹的名字)
此时你会发现你打开了一个GUI,选择接下来设置的方式:辅助模式/高级模式
辅助模式比较适合新人,配置比较容易和快速,而高级模式则需要输入更多指令设置更多的机制,当然这也需要更长的时间
因为本维基是面向新人的,所以我们选择辅助模式。注:Multiverse插件不一定非得安装
4.现在该设置等待大厅了,等待大厅顾名思义就是玩家进入地图后传送到等待游戏开始的地方。输入指令/bw setWaitingSpawn
现在系统将搜索地图内方块的颜色,并将给你发送一条信息,如果你对给你发送的团队信息满意的话,你只需要单击聊天记录就可以创建队伍
如果你不满意的话,请输入指令/bw createTeam <name> <color> 手动创建团队,例如/bw createTeam Tutorial Blue
在你输入创建队伍的指令时,你可以站在任何位置。如果你不知道团队颜色的话,你可以输入/bw createTeam 来查看当前可用的团队颜色。你可以创建很多团队
5.(可选)你可以设置等待大厅在游戏开始后自动清除,请在右上角输入指令/bw waitingPos 1,在左下角输入指令/bw waitingPos 2
并将等待大厅设置为 WorldGuard 区域(仅选择等待大厅区域,请不要选择游戏地图区域!!)
6.设置团队出生点:请进入每个岛屿,输入指令/bw setSpawn,你不需要输入团队名称,插件会自动检测
7.设置商店NPC:请你在想要设置的商店NPC处输入指令/bw setShop,你不需要输入团队名称,插件会自动检测
8.设置团队升级NPC:请你在想要设置的团队升级NPC处输入指令?帮我setUpgrade,你不需要输入团队名称,插件会自动检测
9.设置铁和金的资源刷新点:如果你想要铁和金资源的刷新点设置在同一位置,请在对应位置输入指令/bw addGenerator,不用添加其他任何参数
如果你想要将铁和金资源设置在不同的坐标,请根据资源名称输入对应指令,以插件本体附带的铁和金资源为例,输入指令/bw setGenerator iron/ gold即可
10.设置钻石和绿宝石的资源刷新点:输入指令/bw addGenerator diamond 将脚下位置设置为钻石资源刷新点,输入指令/bw addGenerator emerald 将脚下位置设置为绿宝石资源刷新点
11.输入指令/bw save保存地图,并退出编辑模式
12.恭喜你成功配置完一张地图,但还需要最后一条指令/bw enableArena <mapName>

既然你现在已经完成了设置,请你阅读主配置文件维基页面,为了可以理解在你的服务器上使用插件的方式


小天吖~ 发表于 2022-2-22 21:20:41




加入地图





共有四种进入地图的方式:

[*]通过指令
[*]通过GUI
[*]通过NPC
[*]通过告示牌


[*]通过指令加入地图:
/bw join <arenaName>无论地图处于等待状态还是开始状态,你都可以加入该地图。如果地图已经开始了,那你将会以旁观者身份加入该地图。
你还可以通过指令随机加入地图/bw join <groupName> 具体请查看地图组,示例:/bw join solo。
输入指令/bw join default可以随机加入一个没有被列入地图组的地图


[*]通过GUI界面加入地图:
在你加入服务器后,会自动收到一个物品,右键该物品,打开GUI界面,请确保server-type: MULTIARENA
你可以通过/bw gui或者/bw gui <groupName>打开对应的加入GUI界面。
如果server-type: BUNGEE,你将不能打开GUI,如果server-type: SHARED,那你将只能通过指令加入地图


[*]通过NPC加入地图
Bedwars1058支持 Citizens 插件。你可以通过点击一个NPC来加入地图
具体的配置教程请阅读Citizens支持页面


[*]通过告示牌加入地图
如果你想放置一个加入告示牌,首先你需要输入指令/bw Build 否则你将无法放置
输入指令后,第一行输入,第二行输入你想要进入的地图的名称
例如

Amazon



小天吖~ 发表于 2022-2-22 21:56:52




设置地图组




为什么要使用组呢?
你可以按照地图类型来给地图分类,例如单人/双人/4v4等。各个组可以有对应的自定义计分板,自定义团队升级,自定义资源刷新点。
例如你设置了该项max-in-team = 1,那该地图将会被归到Solo地图组。许多玩家想要组队和朋友一块玩,那他们只需要在GUI中找到一个带有solo的地图
或者点击一个叫SOLO的加入NPC,也可以通过指令加入/bw join Solo。
在加入GUI中,添加到SOLO组的地图将会有如下显示


[*]如何创建地图组
[*]输入指令/bw arenaGroup create <name> 其中name就是组名
[*]如何将地图添加至组
[*]输入/bw arenaGroup set <arenaName> <groupName>其中arenaName是地图名,groupName是组名
[*]如何删除地图组
[*]/bw arenaGroup remove <name> 其中name是组名




小天吖~ 发表于 2022-2-23 06:14:04

本帖最后由 小天吖~ 于 2022-2-23 07:56 编辑


指令与权限




基础指令权限



指令 描述 权限
所有的指令 允许使用所有指令的权限bw.*
/rejoin重新加入一个被踢出的地图bw.rejoin
/leave
离开该地图(一端多图)或该起床服务器(一端一图)-

/party所有与组队相关的指令-
/shout在单人/组队地图中发送一条全体消息bw.shout
!message与/shout 效果一样,在单人/组队地图中发送一条全体消息bw.shout
/bw查看bedwars1058的指令列表-
/bw gui打开地图选择GUI,在BUNGEE模式下不可用-
/bw gui 打开某地图组的选择GUI,在BUNGEE模式下不可用-
/bw join加入一张地图-
/bw random随机加入一张地图-
/bw join <groupName>随机加入一张处于该组名的地图-
/bw join 加入指定地图组的第一张可加入地图-
/bw join 加入指定的地图,这个地图名不是显示的名称,而是在你创建时输入的地图ID-
/bw lang修改你的起床战争语言(消息,计分板,GUI,全息图)-
/bw leave离开一张地图(一端多图)或起床服务器(一端一图)-
/bw cmds查看插件指令列表-
/bw start在一些情况下强制开启某地图(可以用来做VIP)bw.forcestart
/bw start debug强制开启一张地图(即使只有一名玩家也可以)需要OP
/bw stats查看起床战争统计数据-
/bw teleporter如果你是旁观者的话,打开旁观者菜单-
/bw tp 传送到某玩家的身边(即使在游戏中也可以)
服务器管理可以用该功能查看作弊者是否作弊bw.tp

/bw arenaGroup 管理地图组bw.groups
/bw arenaList查看地图列表-
/bw build允许在大厅中放置/破坏方块bw.build
/bw cloneArena克隆一张指定的地图bw clone
/bw delArena删除一张指定的地图bw.clone
/bw disableArena禁用一张指定的地图bw.disable
/bw npc管理加入NPC,这个功能需要Citizens插件前置bw.npc
/bw reload重载起床战争配置文件bw.reload
/bw setLobby设置起床主大厅。在BUNGEE模式下不需要该功能bw.setup
/bw setupArena创建或编辑一张起床战争地图bw.setup
/bw setWartingSpawn设置脚下为该地图的等待大厅bw.setup
/bw setSpectSpawn设置旁观者的出生地bw.setup
/bw setSpawn为一个团队设置出生点bw.setup
/bw addGenerator新增一个铁/金/钻石/绿宝石的资源刷新点bw.setup
/bw removeGenerator删除离你最近的一个资源刷新点bw.setup
/bw autoCreateTeams为该地图自动创建队伍bw.setup
/bw createTeam为一张地图手动创建团队bw.setup
/bw removeTeam删除该地图的某个团队bw.setup
/bw setBed为某个团队设置床bw.setup
/bw setMaxInTeam设置团队最大人数bw.setup
/bw setShop为某个团队将脚下设置为商店NPCbw.setup
/bw setType(可选)设置地图类型(仅在辅助模式下可用)bw.setup
/bw setUpgrade为某个团队设置团队升级NPCbw.setup
/bw waitingPos设置pos1/pos2,选择等待大厅区域(这样游戏开始后才可以清除等待大厅)bw.setup
/bw setKillDrops设置杀死敌人时掉落物掉落的位置bw.setup
/bw save保存编辑修改并传送到大厅bw.setup
/bw level修改一名玩家的等级,给XPbw.level
/bw upgradesmenu如果玩家在团队升级NPC周围,则可以输入指令打开团队升级GUI-

其他权限



功能 描述权限
VIP踢出拥有该权限的玩家进入某满人地图时
将会随机踢出一名玩家并让该玩家进入 bw.vip
聊天颜色拥有该权限的玩家可以在聊天时使用颜色代码 bw.chatcolor
“绕开”指令拥有该权限的玩就可以在游戏中使用非白名单的指令bw.cmd.bypass
喊话冷却拥有该权限的玩就可以跳过喊话冷却时间 bw.shout.bypass
随机加入直接加入处于BUNGEE模式下的一个起床地图(随机加入) bw.setup



小天吖~ 发表于 2022-2-23 19:45:50

本帖最后由 小天吖~ 于 2022-2-23 19:47 编辑




主配置文件



共计:2950个字数10581个字符
包含:2764个汉字175个标点(全角)   4517个字母186个数字
这个页面介绍的是plugins/BedWars1058下的config.yml
请确保在配置中使用的物品/方块ID正确
1.7~1.12.x 物品ID列表https://gitlab.com/andrei1058/BedWars1058/wikis/1.7-1.12-materials
1.13+ 物品ID列表https://gitlab.com/andrei1058/BedWars1058/wikis/1.13-newer-materials
#这项共有四种选择:
# 1. MULTIARENA : 意味着在一个paper/spigot服务器上可以同时运行多个地图
# 2. SHARED : 意味者你可以在一个运行着其他游戏的paper/spigot的服务器上运行起床地图
#            但主大厅世界将不会受该插件的保护
# 3. BUNGEE :允许你在一台服务器上运行多张游戏地图,并且与BUNGEE网络下的外部大厅保持连接,游戏开始之后
#             为了始终有空闲的地图房间,游戏中的地图将会被复制
# 4. BUNGEE_LEGACY :意味着在一台Paper/spigot服务器上只运行一张地图
#                  当你加入该服务器时,将自动进入游戏。服务器的motd会根据游戏状态自动修改
serverType: MULTIARENA

# 这是起床战争服务器默认语言
# 该项默认为"language: en" 意思是英文是该服务器默认的语言,具体的配置文件路径为“plugins/BedWars1058/Languages/messages_en.yml”
# 当然你可以自行创建一个以".yml"为后缀的文件,并设置自己的语言。
# 示例:如果你想添加罗马尼亚语,你可以创建一个“messages_ro.yml”的文件,从“messages_en.yml”中把所有信息复制过来
# 一条一条翻译,翻译完之后将罗马尼亚语设为服务器默认语言,将下方改为"language:ro"
# 玩家可以使用/bw lang en修改自己的语言(消息/GUI/全息图)为英文,但并不会影响其他玩家
# 当然上面的咱用不到,咱使用中文就可以了
language: en

# 这里可以放你的充值链接(下方示例是作者的捐赠链接)
# 当玩家加入一个已经满人的地图时,他们会收到下方这条链接,例如“充值后可以获得满人进入权限,充值链接为:”
# 玩家点击弹出来的信息后,将会进入浏览器,进行充值行为
storeLink: https://donation.link

# 设置你的大厅服务器,如果服务器类型为BUNGEE,玩家将在游戏接受后被传送到下方设置的大厅
# 如果你的服务器类型为MULTIARENA,也可以用于“返回大厅”
lobbyServer: hub

# 如果你想设置全部聊天均为全局的话,请将此项设置为true
# 在地图中游玩的玩家及在大厅中的玩家都会看到所有人发送的所有消息
# 当然这不包括旁观者发送的消息
globalChat: false

#如果你希望使用该插件管理你服务器的聊天格式,请设置此项为true
formatChat: true

# 如果你想在控制台中接受到相关调试信息(报错),请将此项设置为true
# 你可以通过该功能来发现插件的问题
debug: false

# 计分板配置
scoreboard-settings:
# 侧栏配置(右侧计分板)
sidebar:
    # 是否启用多地图模式(MULTIARENA)下的大厅计分板
    enable-lobby-sidebar: true
    # 是否启用游戏计分板(等待时/开始时/游玩时/重启时)
    enable-game-sidebar: true
    # 计分板的标题刷新间隔
    # 以ticks为单位,如果你想禁用的话请设置为0
    title-refresh-interval: 2
    # 计分板变量的刷新间隔
    # 以ticks为单位,如果你想禁用的话请设置为0
    # 当某个团队的床被挖,某个玩家/团队被淘汰时,无论禁用与否,计分板变量都会刷新
    placeholders-refresh-interval: 20

# Tab 列表配置
player-list:
    # Tab 列表禁用/启用
    format-lobby-list: true
    format-waiting-list: true
    format-starting-list: true
    format-playing-list: true
    format-restarting-list: true
    # Tab 列表刷新间隔
    # 以ticks为单位,如果你想禁用的话请设置为0
    names-refresh-interval: 100

# 游戏中生命值配置
health:
    # 是否在tab'列表中显示玩家的血量
    display-in-tab: true
    # Tab 列表刷新间隔
    # 以ticks为单位,如果你想禁用的话请设置为0
    animation-refresh-interval: 80


# 组队配置
party-settings:
# 如果你想要在同一队伍里面的朋友们,加入地图后可以进入同一团队,请将此项设置为true
allow-parties: true
# 默认组队命令是否启用
enable-party-cmd: true
# 如果使用 AlessioDP 组队的话,选择加入某地图时玩家需要至少达到多少级
alessioDP-choose-arena-rank: 10

# 该大项仅需选择BUNGEE模式的服务器配置
# 如果你服务器的模式不是BUNGEE,请忽略
bungee-settings:
# 为了放置服务器卡顿,你可以设置在进行多少场游戏后,服务器会自动重启。在下方设置值
# 如果设置为1,那么每场游戏结束后,服务器将都会重启
# 如果设置为-1或0,则代表禁用该功能
# 如果你下方设置的值 > 1,插件会自动创建一个空地图,并将其作为主世界
# 这是必须的,该世界也不能被卸载(恢复地图需要)
games-before-restart: 30

# 这句话比较绕
# 设置在游戏结束后,在服务器重启前执行的命令(好像也不绕)
restart-cmd: restart

# 如果你不知道这项是干嘛呢,请不要动这个!
# 这是在bc config.yml中的服务器名称
# 同时还需要允许玩家加入BUNGEE模式
server-id: bw1

# 如果你不知道这项是干嘛呢,请不要动这个!
# 如果你在大厅服务器中安装了BedWarsProxy 插件,请将该项设置为服务器IP+BedWarsProxy插件的端口
# 注意!这里的端口不是你服务器的端口,而是位于plugins/BedWarsProxy/config.yml下的端口
lobby-servers:
- 0.0.0.0:2019

# 玩家通过BedWarsProxy插件传送到处于同一BUNGEE网络下的地图所需的等待时间(单位为毫秒)
# 如果玩家等待的时间超过了下方设置的,玩家将不会传送到该地图中
bwp-time-out: 5000

# 配置游戏倒计时
countdowns:
# 当玩家人数到达设置的最小玩家数时,开始倒计时,请在下方设置倒计时的时间(单位为秒)
game-start-regular: 40

# 当玩家人数到达满人的一半时,倒计时缩短到下方设置的时间(单位为秒)
game-start-half-arena: 25

# 在重开一张地图前要等待的时间(单位为秒)
# 在找到获胜者之前,该配置将直接被使用
game-restart: 15

# 当地图满人时,倒计时缩短到下方设置的时间(单位为秒)
game-start-shortened: 10

# 当游戏开始后,游戏结束倒计时(单位为秒)达到下方设置的值时,所有团队的床将自动被破坏
# 同时所有的资源点将变为最高一级
next-event-beds-destroy: 360

# 当游戏开始后,游戏结束倒计时(单位为秒)达到下方设置的值时,游戏地图中会产生龙
next-event-dragon-spawn: 600

# 这个倒计时将在龙产生后开始
# 倒计时结束,游戏地图将强制结束,服务器强制重启
next-event-game-end: 120

# 玩家多久可以使用一次“!”或“/shout” 进行喊话呢?(单位为秒)
shout-cmd-cooldown: 30

# 在玩家离开某地图后,多长时间内可以重新进入该地图(单位为秒)
rejoin-time: 300

# 玩家重生后保护时间多长。
# 可以防止其他玩家在出生点刷人头,但如果玩家重生后打了其他玩家,那不会受该机制的保护
# 建议将该值至少设置为500,使玩家免受掉落伤害
# 因为一些服务器在重生时会有掉落伤害
re-spawn-invulnerability: 3000

# TNT Jump feature settings
tnt-jump-settings:
barycenter-alteration-in-y: 0.5
strength-reduction-constant: 3
y-axis-reduction-constant: 2
# 设置为-1,则表示禁用自定义伤害
damage-self: 1
damage-teammates: 5
damage-others: 10

# 数据库配置
database:
# 是否启用MYSQL数据库?
# 如果将该项设置为false则使用SQLite
enable: false

# 数据库的Ip/DNS
host: localhost

# 数据库的端口
port: 3306

# 数据库的名字
database: BedWars

# 数据库用户名
user: root

# 数据库密码
pass: bread

# 安全链接
ssl: false

# 你可以在这个列表中配置你不支持的语言
# 但请注意,并不会禁用 "language: x" 中配置的语言
# 想要禁用语言,请将其iso代码添至下方
# 啥?iso代码是啥?示例: messages_en.yml -> iso: en
disabled-languages:
- ru
- es

# 如果你想禁用一些功能性方块(例如工作台,熔炉等),请在下方对应的位置 将其设置为true
# 这里的配置会应用到大厅和地图中
inventories:
disable-crafting-table: true
disable-enchanting-table: true
disable-furnace: true
disable-brewing-stand: true
disable-disable-anvil: true

# 配置以获得更好的性能
performance-settings:
# 如果想禁用资源刷新点上方的旋转动画,请设置此项为false
# 可以减少一丢丢CPU使用率
rotate-generators: true

# 如果想禁用服务器重启时的加载的资源包,请将此项设置为true
# BedWars1058 使用这些资源包来修复一些细节问题,禁用也无伤大雅
disable-respawn-packets: false

# 如果想禁用玩家喝隐身药水时隐藏盔甲的资源包,请将此项设置为true
# the player armor when he drinks a invisibility potion.
# 如果 disable-spawn-packets 设置为false,则玩家在重生后仍使用盔甲资源包
disable-armor-packets: false

# 配置地图选择GUI
# 如果服务器为 BUNGEE 模式,请忽略此大项
arena-gui:
settings:
    # 地图选择GUI的格子数量
    inv-size: 27

    # 是否只展示处于可开始状态的地图呢?
    show-playing: true

    # 展示地图的格子
    use-slots: 10, 11, 12, 13, 14, 15, 16

# 显示等待状态下地图的物品格
waiting:
    material: LIME_CONCRETE
    data: 5
    enchanted: false

# 显示开始状态下地图的物品格
starting:
    material: YELLOW_CONCRETE
    # 在1.13+版本中已删除data
    data: 4
    enchanted: false

# 显示游玩状态下地图的物品格
playing:
    material: RED_CONCRETE
    # 在1.13+版本中已删除data
    data: 14
    enchanted: false

# 方块格中空地图展示的物品
skipped-slot:
    material: BLACK_STAINED_GLASS_PANE
    # 在1.13+版本中已删除data
    data: 15
    enchanted: false


# 配置玩家统计GUI
stats-gui:
#玩家统计GUI的格子数量
inv-size: 27

# 统计名称
# 你可以根据自己的需要自定义统计信息,可以添加/删除想要的内容
# 语言路径在 BedWars1058/Languages/messages_en.yml
# 重启你的服务器,生成路径 (这些生成的文件名为 "name not set" )
# 这些信息将被用于: stats-name-name, stats-name-lore
# 示例: 我们将使用 stats-wins-name
# 统计以下数据 {kills}, {deaths}, {losses}, {wins}, {finalKills}, {fKills}
# {finalDeaths}, {gamesPlayed}, {firstPlay}, {lastPlay}, {player}
# 当然还支持PlaceholderAPI变量
# 你可以随意根据自己的需要来修改这个GUI
wins:
    material: DIAMOND
    # 在1.13+版本中已删除data
    data: 0
    # 在 GUI 中,统计信息的物品格在全部格子中的位置
    slot: 10

# 想在游戏开始时或者玩家重生后给予指定的物品?可以通过以下配置实现
# 请注意!:
# - 如果你配置多把剑🗡的话,插件只会给玩家一把剑!
# - 如果玩家在死亡后背包内还有剑,那插件也不会再给他一把剑(在死亡不掉落模式中才会有该问题)
# 其他的物品没有限制条件,尽情的配置吧!
start-items-per-group:
# 这里填写的是“地图组名:-xxx”,如果你不知道这是啥,请查阅
# https://gitlab.com/andrei1058/BedWars1058/wikis/arena-groups.
# 没有在任何地图组的地图将会使用默认配置。所有的武器/装备/道具都是无法破坏的!
Default:
- WOODEN_SWORD

# 在下方配置在游戏中可使用的指令,直接添加即可
# 有个权限可以无视该配置,具体请看“权限”页面
allowed-commands:
- shout
- bw
- leave

# 配置在玩家加入服务器时自动收到的物品
# 如果你的服务器为 BUNGEE 模式,请忽略该大项
# 你可以根据自己的需要添加或删除新物品,它们都可以执行指令哦
lobby-items:
example-item:
    # 玩家右键该物品时执行的指令
    command: bw gui
    material: CHEST
    # 1.13+版本已无data
    data: 0
    # 放到玩家背包中哪个格子呢?
    slot: 4

# 配置玩家加入地图时自动收到的物品
# 你可以根据自己的需要添加或删除新物品,它们都可以执行指令哦
pre-game-items:
example-item:
    # 玩家右键该物品时执行的指令
    command: bw stats
    # 如果配置为这个,那会自动获取玩家的头皮肤
    material: PLAYER_HEAD
    data: 0
    # 放到玩家背包中哪个格子呢?
    slot: 0

# 配置加入旁观者模式自动收到的物品
# 你可以根据自己的需要添加或删除新物品,它们都可以执行指令哦
spectator-items:
example-item:
    # 玩家右键该物品时执行的指令
    command: bw leave
   
    material: RED_BED
    # 1.13+版本已无data
    data: 0
    # 放到玩家背包中哪个格子呢?
    slot: 0

# 是否允许队友之间generator splitting
enable-gen-split: true





小天吖~ 发表于 2022-2-24 06:35:03




地图配置




每个团队都可以在每种语言中显示自定义名称。通过该路径配置你想要的团队名称: Languages/messages_x.yml 中 team-name-<arenaName>-<teamName>

#该地图属于哪个地图组呢?
#通常情况下,默认为 "Default"
#阅读有关地图组配置的内容: https://gitlab.com/andrei1058/BedWars1058/wikis/arena-groups
group: Solo

#设置地图名称,显示在选择GUI/计分板等地方的名称
#留空的话则显该地图的文件夹名称作为地图名称
#/bw join <arena> 是不可以使用自定义名称的,该处的<arena>需要填写地图文件夹名
display-name: ""

#开始游戏最少需要多少名玩家
minPlayers: 2

#每个团队最多可以有多少名玩家
maxInTeam: 1

#是否允许玩家旁观该地图呢?false为不允许,true为允许
allowSpectate: true

#团队出生点的保护区域(半径)
#玩家将无法在此区域放置方块,保护刚重生的玩家不被刷人头
spawn-protection: 5

#NPC商店的保护区域(半径)
#玩家将无法在此区域放置方块
shop-protection: 1

#团队升级NPC的保护区域(半径)
#玩家将无法在此区域放置方块
upgrades-protection: 1

#设置岛的半径
#有些道具会用到,比如陷阱等
island-radius: 17

#设置世界边界大小,玩家无法在区域外的任何位置交互方块
worldBorder: 300

#玩家Y坐标若低于这个值,则直接将该玩家杀死(也就是掉虚空立即死亡)
#设置一个大的负数相当于禁用该项
y-kill-height: -1

#玩家无法在Y坐标超过该项设置的值上交互方块(最大建造高度)
max-build-y: 180

#是否允许已被淘汰的团队的资源点继续刷资源呢?禁用填true
disable-generator-for-empty-teams: false

#是否允许 已被淘汰的团队 中NPC商店继续存在呢?禁用填true
disable-npcs-for-empty-teams: true

#是否禁用 BedWars1058 的掉落物管理系统
#如果你设置为true,那游戏中的掉落物将会与MC原版机制相同
vanilla-death-drops: false

#是否禁用床上方的全息图,禁用填false
use-bed-hologram: true






小天吖~ 发表于 2022-2-24 08:45:55




资源配置




#如果你没有指定配置某个地图组,那在“default”组下的配置将会应用到所有的地图中
#如果你还不知道地图组是个什么,请查阅: https://gitlab.com/andrei1058/BedWars1058/wikis/arena-groups
Default:
#配置团队基地(其实也不知是在各个团队的岛屿中)中铁资源的相关项
#注意哦,玩家们可以通过团队升级NPC修改这些配置
iron:
    #铁资源的刷新时间(单位为秒)
    delay: 2
    #单次产生多少个铁?
    amount: 2
    #资源刷新点周围存在一定值的铁资源时,该资源点将不会继续刷出铁资源
    #直到有玩家捡起这些铁,该资源点才会继续刷铁资源
    #这个值就可以在这里配置
    spawn-limit: 32

#配置团队基地(其实也不知是在各个团队的岛屿中)中金资源的相关项
#注意哦,玩家们可以通过团队升级NPC修改这些配置
gold:
    #金资源的刷新时间(单位为秒)
    delay: 6
    #单次产生多少个金?
    amount: 2
    #资源刷新点周围存在一定值的金资源时,该资源点将不会继续刷出金资源
    #直到有玩家捡起这些金,该资源点才会继续刷金资源
    #这个值就可以在这里配置
    spawn-limit: 7

#地图中钻石资源的相关配置
diamond:
    #设置第I级
    tierI:
      #钻石资源的刷新时间(单位为秒)
      delay: 30
      #资源刷新点周围存在一定值的钻石时,该资源点将不会继续刷出钻石
      #直到有玩家捡起这些钻石,该资源点才会继续刷钻石
      #这个值就可以在这里配置
      spawn-limit: 4

    #设置第II级
    tierII:
      #钻石资源的刷新时间(单位为秒)
      delay: 20
      #资源刷新点周围存在一定值的钻石时,该资源点将不会继续刷出钻石
      #直到有玩家捡起这些钻石,该资源点才会继续刷钻石
      #这个值就可以在这里配置
      spawn-limit: 6
      #资源点什么时候升到下一级呢
      #单位为秒
      #游戏开始360秒后升级为为II级
      start: 360

    #设置第III级
    tierIII:
      #钻石资源的刷新时间(单位为秒)
      delay: 15
      #资源刷新点周围存在一定值的钻石时,该资源点将不会继续刷出钻石
      #直到有玩家捡起这些钻石,该资源点才会继续刷钻石
      #这个值就可以在这里配置
      spawn-limit: 8
      #资源点什么时候升到下一级呢
      #单位为秒
      #资源点升级到II级后,1080秒后升级为III级
      start: 1080
emerald:
    #设置第I级
    tierI:
      #绿宝石资源的刷新时间(单位为秒)
      delay: 70
      #资源刷新点周围存在一定值的绿宝石时,该资源点将不会继续刷出绿宝石
      #直到有玩家捡起这些绿宝石,该资源点才会继续刷绿宝石
      #这个值就可以在这里配置
      spawn-limit: 4

    #设置第II级
    tierII:
      #绿宝石资源的刷新时间(单位为秒)
      delay: 50
      #资源刷新点周围存在一定值的绿宝石时,该资源点将不会继续刷出绿宝石
      #直到有玩家捡起这些绿宝石,该资源点才会继续刷绿宝石
      #这个值就可以在这里配置
      spawn-limit: 6
      #资源点什么时候升到下一级呢
      #单位为秒
      #游戏开始720秒后升级为为II级
      start: 720

   #设置第III级
    tierIII:
      #绿宝石资源的刷新时间(单位为秒)
      delay: 30
      #资源刷新点周围存在一定值的绿宝石时,该资源点将不会继续刷出绿宝石
      #直到有玩家捡起这些绿宝石,该资源点才会继续刷绿宝石
      #这个值就可以在这里配置
      spawn-limit: 8
      #资源点什么时候升到下一级呢
      #单位为秒
      #资源点升级到II级后,1440秒后升级为III级
      start: 1440

#刷出的物品是否堆叠
#设置为堆叠请配置为true
stack-items: false





小天吖~ 发表于 2022-2-24 11:53:10




商店配置




如果你想要每张地图/地图组都有不同的商店,请使用BUNGEE模式
请在配置中使用正确的物品ID
1.7~1.12 物品ID:https://gitlab.com/andrei1058/BedWars1058/wikis/1.7-1.12-materials
1.13+ 物品ID:https://gitlab.com/andrei1058/BedWars1058/wikis/1.13-newer-materials

# 配置商店用的一些功能性按钮/装饰物品
shop-settings:
# 快速购买按钮
quick-buy-category:
    material: NETHER_STAR
    amount: 1
    data: 0
    enchanted: false

# 快速购买GUI中 如果物品格没有物品咋办?
# 那会填充下方的这个物品
quick-buy-empty-item:
    material: RED_STAINED_GLASS_PANE
    amount: 1
    data: 4
    enchanted: false

# 分类和物品之间的分隔板
regular-separator-item:
    material: GRAY_STAINED_GLASS_PANE
    amount: 1
    data: 7
    enchanted: false

# 选定分类与物品之间的分隔板
selected-separator-item:
    material: GREEN_STAINED_GLASS_PANE
    amount: 1
    data: 13
    enchanted: false

# 注意,这些并不是商店分类
# 在这里配置一些商店中的特殊功能性商品
shop-specials:
# 配置“蠹虫”
silverfish:
    enable: true
    material: SNOWBALL
    data: 0
    health: 8.0
    damage: 4.0
    speed: 0.25
    despawn: 15
# 配置“雪傀儡”
iron-golem:
    enable: true
    material: HORSE_SPAWN_EGG
    data: 0
    health: 100.0
    despawn: 240
    speed: 0.25

# 注意,这些并不是商店分类
# 配置快速购买GUI下的默认商品
quick-buy-defaults:
element1:
    # 默认商品的路径
    path: blocks-category.category-content.wool
    # 放在GUI中的哪个格子呢?
    #允许放的格子 [19; 26)U[28;35)U[37;44) (你需要有一定的“区间知识”,这里的意思是19~26(包括19,不包括26),28~35(包括28,不包括35),37~44(包括37,不包括44))
    slot: 19

# 这里就是商店分类啦
# 你可以根据自己的需要 添加/删除 分类/商品
# 如果你想创建一个新的商品分类,那你只用复制粘贴就可以了(记得改名哦)
blocks-category:
# 在商店分类的列表中放在哪呢?(也就是商店中最上方的8个格子)
# 允许填写(1~8,包括1和8)
category-slot: 1

# 该商品分类显示的物品
category-item:
    material: ORANGE_TERRACOTTA
    data: 1
    amount: 1
    enchanted: false

# 配置打开这个类别后展示给你的商品
category-content:
    # 第一个商品
    wool:
      #配置相关内容
      content-settings:
      # 这个商品放在GUI中的哪个格子呢?
      # 允许放的格子 [19; 26)U[28;35)U[37;44) (你需要有一定的“区间知识”,这里的意思是19~26(包括19,不包括26),28~35(包括28,不包括35),37~44(包括37,不包括44))
      content-slot: 19
      # 是否为永久性物品(即死亡后该物品是否会消失)
      is-permanent: true
      # 死亡后该物品是否会降级
      # 如果你配置为true,那你要保证“is-permanent: true”
      is-downgradable: false
      
      # 配置商品的等级内容
      # 如果该商品是无法升级的话,只需要配置一级就可以了
      # 你可以根据自己的需要添加多级商品
      content-tiers:
      # 第I级
      tier1:
          # 在商店GUI中显示的物品
          tier-item:
            material: WHITE_WOOL
            data: 0
            amount: 16
            enchanted: false
          # 该级的相关配置
          tier-settings:
            cost: 4
            # 允许使用的货币资源: 铁, 金, 绿宝石, 钻石 and vault (经济)
            currency: iron
          # 配置当你买该级商品时收到的物品
          buy-items:
            wool:
            material: WHITE_WOOL
            data: 0
            amount: 16
            # 可选
            # 附魔,你可以为物品添加很多附魔(英文模式下的逗号,隔开)
            enchants: DIG_SPEED 1,ARROW_DAMAGE 1
            # 可选
            # 药水,注意!该项只适用药水
            # 语法: 效果名称 秒数 等级-1
            potion: JUMP 45 5
            # 1.16+版本,你可以自定义药剂瓶颜色
            # 具体请查阅: https://minecraft.gamepedia.com/Potion#Item_data
            potion-color: ''
          # 你可以在下方配置玩家购买该级物品时,服务器/玩家执行的指令,下方是一些变量
          # {player}代表玩家的ID, {player_uuid} 代表玩家的uuid
          # {team} 代表玩家所在团队的ID(即团队文件夹的名称), {team_display} 代表玩家所在团队的外显名称
          # {team_color} 代表玩家所在团队的颜色, {arena} 代表地图ID(即地图文件夹的名称)
          # {arena_display} 代表地图的外显名称, {arena_world} 外表世界名称
          # {arena_group} 代表玩家 所在地图 所在的地图组 的名称
          buy-cmds:
            # 购买后玩家要执行什么指令
            as-player:
            - some command
            # 购买后控制台要执行什么指令
            as-console:
            - say hello {player}
            





小天吖~ 发表于 2022-2-24 13:05:13




等级配置




# 等级列表
# 原文中作者的话翻译成中文比较乱,我通俗点说吧
# 如果你想再自定义一个5级,你可以直接复制1~4级的配置
# 如果你想自定义20级内的等级,1~10级会采用下方配置的内容,而11~20级将会采用“others”中的内容
levels:
# 1级
'1':
    # 玩家处于该等级等级外显的内容
    name: '&a{number} ✩ '
    # 需要多少经验才可以升级到2级呢?
    rankup-cost: 1000
'2':
    name: '&a{number} ✩ '
    rankup-cost: 2000
'3':
    name: '&a{number} ✩ '
    rankup-cost: 3000
'4':
    name: '&a{number} ✩ '
    rankup-cost: 3500
#为了方便起见,你可以为一个区间内的等级配置同一种内容
#下面这个配置,5~10级都会采用
5-10:
    name: '&6{number} ✩ '
    rankup-cost: 3900
#其他没有定义的等级,将会采用下方的这个配置
others:
    name: '&d{number} ✩ '
    rankup-cost: 5000

# 配置等级奖励
# 如果你想禁用的话,只需配置为0/-1
xp-rewards:
# 玩家每分钟会收到多少经验呢
per-minute: 10
# 游戏结束后,处于该地图的玩家会获得多少经验呢
per-teammate: 5
# 玩家在某张地图中取得胜利后,会获得多少经验呢
game-win: 100

# 配置等级进度条
progress-bar:
# 进度符号
symbol: ■
# 已经取得的进度符号颜色
unlocked-color: '&b'
# 还未取得的进度符号颜色
locked-color: '&7'
# 进度条外显格式
format: '&8[{progress}&8]'






小天吖~ 发表于 2022-2-24 13:09:55




音效配置





如果你想要更改音效的话,请确保你填写了一个真实有效并且正确的bukkit支持音效
错误或不存在的音效将会被忽略

[*]1.8.x版本的所有音效 https://andrei1058.com/bukkit-1-8-x-sounds/
[*]1.13.x版本的所有音效(译者:理论上向上兼容) https://andrei1058.com/bukkit-1-13-x-sounds/
game-end: ITEM_TRIDENT_THUNDER
rejoin-denied: ENTITY_VILLAGER_NO
rejoin-allowed: ENTITY_SLIME_JUMP
spectate-denied: ENTITY_VILLAGER_NO
spectate-allowed: ENTITY_SLIME_JUMP
join-denied: ENTITY_VILLAGER_NO
join-allowed: ENTITY_SLIME_JUMP
spectator-gui-click: ENTITY_SLIME_JUMP
game-countdown-others: ENTITY_CHICKEN_EGG
game-countdown-s5: ENTITY_CHICKEN_EGG
game-countdown-s4: ENTITY_CHICKEN_EGG
game-countdown-s3: ENTITY_CHICKEN_EGG
game-countdown-s2: ENTITY_CHICKEN_EGG
game-countdown-s1: ENTITY_CHICKEN_EGG
game-countdown-start: BLOCK_SLIME_BLOCK_FALL
bed-destroy: ENTITY_ENDER_DRAGON_GROWL
shop-insufficient-money: ENTITY_VILLAGER_NO
shop-bought: ENTITY_VILLAGER_YES
next-event:
beds-destroy: ENTITY_ENDER_DRAGON_GROWL
diamond-II: ENTITY_PLAYER_LEVELUP
diamond-III: ENTITY_PLAYER_LEVELUP
emerald-II: ENTITY_GHAST_WARN
emerald-III: ENTITY_GHAST_WARN
dragons-spawn: ENTITY_ENDER_DRAGON_FLAP
player-re-spawn: BLOCK_SLIME_BLOCK_FALL
arena-selector-open: ENTITY_CHICKEN_EGG
stats-gui-open: ENTITY_CHICKEN_EGG
trap-sound: ENTITY_ENDERMAN_TELEPORT



小天吖~ 发表于 2022-2-24 16:22:34

本帖最后由 小天吖~ 于 2022-2-24 16:24 编辑


团队增益



共计:2530个字数9441个字符
包含:2389个汉字135个标点(全角)4252个字母141个数字
关于团队升级相关的配置在 upgrades2.yml 文件中

团队增益主菜单
默认路径为default-upgrades-settings,GUI中显示的物品都在此列表
default 代表地图组,所以你的地图组没有配置团队升级,那该地图组的地图会使用“default”中的配置
你可以在不同的团队升级菜单中使用同一个分类和物品default-upgrades-settings:
menu-content:
- category-name1,1
- upgrade-name1,2 #,逗号后面的数字代表在GUI中的格子位置
- separator-name1,5,6,7 #多个逗号代表将该物品放到GUI中的多个格子中
# 团队第一次购买陷阱的价格 (前提时“陷阱”没有固定的价格).
trap-start-price: 2
# 团队购买一次陷阱后,再次购买陷阱所需要的价格(第一次的价格+第二次的价格+....+下面设置的价格)
# 例如第二次购买陷阱则需要2+2=4
trap-increment-price: 2
# 所需的货币类型: 绿宝石, 钻石, 铁, 金, vault (经济)
trap-currency: diamond
# 陷阱最多购买多少个
trap-queue-limit: 3
为某地图组设置一个自定义团队增益吧
1.确保你已经阅读上方的介绍(因为你至少需要知道这是如何实现的)
2.在 upgrades.yml 中另起一行,写“<groupName>-upgrades-settings:”这里的<groupName>是你的地图组名
3.重新阅读上方的介绍,为你的自定义团队增益添加自己想要的把

示例:solo-upgrades-settings:
menu-content:
- category-name1,10
- category-name2,11
- upgrade-name3,12
# 团队第一次购买陷阱的价格 (前提时“陷阱”没有固定的价格).
trap-start-price: 2
# 团队购买一次陷阱后,再次购买陷阱所需要的价格(第一次的价格+第二次的价格+....+下面设置的价格)
# 例如第二次购买陷阱则需要2+2=4
trap-increment-price: 2
# 所需的货币类型: 绿宝石, 钻石, 铁, 金, vault (经济)
trap-currency: diamond
# 陷阱最多购买多少个
trap-queue-limit: 3


等级分类分类部分需要用 category- +name 例如:category-enchant示例:category-example-1:
# 菜单中分类的外显物品
display-item:
    # 物品的材质ID
    # 如果不知道物品材质ID是啥,你可以看看下面的链接
    material: IRON_SWORD
    # 1.12- 才需要设置Data,1.13+不需要在设置Data
    # 这个数字一般代表物品的颜色
    data: 0
    # 该格子堆叠物品的数量
    amount: 1
    # 该物品是否有附魔效果,true则显示附魔效果,false则不显示附魔效果
    enchanted: false
# 打开该分类时显示的物品
# 只可以出现升级内容及“分隔板”
category-content:
- upgrade-name1,4 #,逗号后面的数字代表在GUI中的格子位置
- separator-name5,1,2,3 #多个逗号代表将该物品放到GUI中的多个格子中


1.8~1.12 的物品材质ID 请查阅:https://gitlab.com/andrei1058/Be ... /1.7-1.12-materials1.13+ 的物品材质ID 请查阅https://gitlab.com/andrei1058/Be ... .13-newer-materials
升级内容配置升级内容是最重要的事情,这将定义升级的具体效果升级名称部分请使用 upgrade- + name 示例 upgrade-enchant-1请看下面的这个例子:upgrade-enchant-1:
# 如果该增益是固定的,不能继续升级到更高等级的,只需要设置一级就可以了(在tier-1中配置)
# 如果该增益有多个等级,请在“tier-1”下新增一个“tier-2”仿照“tier-1”配置第二级,后面的等级以此类推
tier-1:
    # 在GUI中显示该等级的物品
    # 增益的每个等级都应有一个显示物品
    display-item:
      # 这是显示物品的材质ID
      # 查找物品材质ID请看上方的链接
      material: IRON_SWORD
      # 1.12- 才需要设置Data,1.13+不需要在设置Data
      # 这个数字一般代表物品的颜色
      data: 0
      # 该格子堆叠物品的数量
      amount: 1
      # 该物品是否有附魔效果,true则显示附魔效果,false则不显示附魔效果
      enchanted: false
    # 需要花费多少设置的“货币”
    cost: 10
    # 所需的货币类型: 绿宝石, 钻石, 铁, 金, vault (经济)
    currency: vault
    # “receive”是配置该增益具体作用的一部分,下方的路径不可以出现自定义名称
    # 这里所用的名称定义了此增益为 什么效果
    # 你可以新增多个名称相同的内容
    receive:

    # 如果该增益的效果为 “为全队队友的某个物品增加附魔效果” 请在下方配置有关附魔的内容
    ## 语法: 'enchant-item:enchant type,amplifier,apply'
    ## 附魔ID列表: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
    ## 例如: Sharpness 2 这里的2就是应用的附魔等级,这里也就是锋利二
    ## 可附魔效果应用到的物品类型 sword(剑), armor(盔甲), bow(弓)
    - 'enchant-item: DAMAGE_ALL,1,sword'
   
    # 如果该增益效果为 “为全队队友增加某药水效果” 请在下方配置有关药水效果的内容
    # 语法: 'player-effect:effect type,amplifier,time_seconds,apply'
    ## 药水效果ID列表: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
    ## 例如 Haste I -> 这里的1就代表药水效果的等级,这里也就是速度一
    ## 单位为秒,可以自行设置药水效果持续的时间 0代表无限时间,基本上用0就ok了
    ## 可以选择的应用场景:
    ## team - 团队中所有人在任何位置都有该药水效果
    ## base - 只有队友在自己的团队基地是才有该药水效果
    - 'player-effect: FAST_DIGGING,1,0,team'

    # 如果该增益效果为 “升级团队基地的资源刷新点”,请在下方配置有关资源点的内容
    # 语法: 'generator-edit:generator type,spawn delay,amount,limit'
    ## 资源类型有: iron, gold, emerald
    ## spawn delay 为两“组”资源刷新之间的时间间隔,单位为秒 (这里的组并不是64个,而是下面这个配置的数量)
    ## amount 为一次刷出的资源数量
    ## limit 为 资源点周围的对应资源到达多少数量时,资源点停止刷出资源
    - 'generator-edit: gold,2,2,42'

    ## 如果该增益效果为 “为该团队增加一条龙(到时间后才可以刷出哦)” 还需要定义游戏结束时,团队一共有几条龙
    # 语法: 'dragon:amount'
    ## amount 为龙的数量
    - 'dragon: 2'

基地的陷阱非队友进入你的基地时会触发陷阱基地陷阱名称 使用base-trap- + name例如:base-trap-1具体请看下面这个例子base-trap-1:
    # 在GUI中显示该等级的物品
    # 增益的每个等级都应有一个显示物品
display-item:
    # 这是显示物品的材质ID
    # 查找物品材质ID请看上方的链接
    material: IRON_SWORD
    # 1.12- 才需要设置Data,1.13+不需要在设置Data
    # 这个数字一般代表物品的颜色
    data: 0
    # 该格子堆叠物品的数量
    amount: 1
    # 该物品是否有附魔效果,true则显示附魔效果,false则不显示附魔效果
    enchanted: false

# 花费的货币自已自行设置
# 陷阱的价格 基于 "trap-increment-price"
cost: 10

# 所需的货币类型: 绿宝石, 钻石, 铁, 金, vault (经济)
# 所需要的货币可以自行设置
currency: vault

# 是否为陷阱设置自定义信息
# 这需要你重启服务器,服务器重启之后将在每个语言文件中的最后生成对应的语言配置
custom-announce: false

# 为陷阱自定义音效
# 没有设置的话,将默认使用 ENTITY_ENDERMAN_TELEPORT.
sound: BLOCK_ANVIL_FALL

# “receive”是配置该增益具体作用的一部分,下方的路径不可以出现自定义名称
# 这里所用的名称定义了此增益为 什么效果
# 你可以新增多个名称相同的内容
receive:

# 如果该团队增益的效果为 “清除进入基地的敌人对应物品的附魔效果” 请在下方配置相关内容
## 语法: 'enchant-item:enchant type,apply'
## 附魔ID列表: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
## apply 是清除物品的附魔类型. 类型包括: sword(剑), armor(盔甲), bow(弓)
- 'disenchant-item: DAMAGE_ALL,sword'
   
# 如果该增益效果为 “为进入基地的敌人增加某药水效果” 请在下方配置有关药水效果的内容
# 语法: 'player-effect:effect type,amplifier,time_seconds'
## 附魔ID列表: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
## 例如 Haste I -> 这里的1就代表药水效果的等级,这里也就是速度一
## 单位为秒,可以自行设置药水效果持续的时间 0代表无限时间,基本上用0就ok了
## 可以选择的应用场景:
## team - 团队中所有人在任何位置都有该药水效果
## base - 队友在自己的团队基地时拥有该药水效果
## enemy - 敌人在你的基地时拥有的药水效果
- 'player-effect: SPEED,1,0,team'
- 'player-effect: HASTE,1,0,enemy'

## 如果该增益效果为 “敌人在进入你的基地时清除他指定的药水效果”,在下方配置相关内容
# 语法: 'remove-effect: effect type'
## Effect type 就是要清除的药水效果
- 'remove-effect: INVISIBILITY'

# 如果想在购买该增益时,会执行一些指令,请在下方配置
# 语法: command: dispatchType, command string here
# 执行者
# ONCE_AS_CONSOLE - 控制台将执行特定的指令
# FOREACH_MEMBER_AS_CONSOLE - 控制台将为玩家执行特定的指令
# FOREACH_MEMBER_AS_PLAYER - 玩家将以自己执行特定的指令
# 变量:
          # {buyer} 购买该增益的玩家ID, {buyer_uuid} 购买改增益的玩家UUID
          # {team} 代表玩家所在团队的ID(即团队文件夹的名称), {team_display} 代表玩家所在团队的外显名称
          # {team_color} 代表玩家所在团队的颜色, {arena} 代表地图ID(即地图文件夹的名称)
          # {arena_display} 代表地图的外显名称, {arena_world} 外表世界名称
          # {arena_group} 代表玩家 所在地图 所在的地图组 的名称
          # 执行循环指令时的变量:
          # {player} 当前玩家的ID, {player_uuid} 当前玩家的UUID
# 请使用逗号 (,) 不要使用空格
- 'command: FOREACH_MEMBER_AS_CONSOLE,give {player} diamond 20'


预览陷阱格子
陷阱格子上外显的物品
当陷阱起作用的时候,该物品会被上方配置的“陷阱”所代替
格式: trap-slot- + name.
示例:

trap-slot-glass:
# 这是显示物品的材质ID
# 查找物品材质ID请看上方的链接
material: IRON_SWORD
# 1.12- 才需要设置Data,1.13+不需要在设置Data
# 这个数字一般代表物品的颜色
data: 0
# 该格子堆叠物品的数量
amount: 1
# 该物品是否有附魔效果,true则显示附魔效果,false则不显示附魔效果
enchanted: false


分隔板
为了装饰来在GUI中添加一些简单的物品吧~
格式:separator- + name.
示例:

separator-example-1:
# 在点击后,玩家会以玩家身份执行特定的指令
# bw upgrades (团队升级菜单)只能在靠近该NPC时才可以执行
# 变量 {player} - 玩家ID, {team} - 团队名称
on-click:
    player:
    - 'bw upgradesmenu'
    console:
    - 'something'
display-item:
    # 这是显示物品的材质ID
    # 查找物品材质ID请看上方的链接
    material: IRON_SWORD
    # 1.12- 才需要设置Data,1.13+不需要在设置Data
    # 这个数字一般代表物品的颜色
    data: 0
    # 该格子堆叠物品的数量
    amount: 1
    # 该物品是否有附魔效果,true则显示附魔效果,false则不显示附魔效果
    enchanted: false




小天吖~ 发表于 2022-2-24 18:06:29




语言


共计:1032个字数3309个字符
包含:1016个汉字77个标点(全角)1107个字母16个数字


自定义计分板
为每个地图组自定义计分板
例如:你有一个名为4v4v4v4的地图组,你可以为这个地图组自定义各种计分板
你可以自定义 所有状态下的计分板(包括等待中,开始时,游戏中)
假如你想在想自定义某个状态下的计分板,具体的步骤为:进入对应的语言文件,在scoreboard配置下新增对应的地图组名,并按照下方格式配置
scoreboard:
4v4v4v4:
    playing:
    - "&f&l起床战争"
    - "&7{date}"
    - ""
    - "{TeamRedColor}&lB&f {TeamRedName}&f: {TeamRedStatus}"
    - "{TeamBlueColor}&lB&f {TeamBlueName}&f: {TeamBlueStatus}"
    - "{TeamGreenColor}&lG&f {TeamGreenName}&f: {TeamGreenStatus}"
    - "{TeamYellowColor}&lY &f{TeamYellowName}&f: {TeamYellowStatus}"
    - ""
    - "&6{server_ip}"
计分板变量
团队变量:
团队变量十分简单,例如,你有一个名为Bread的团队,那该团队对应的变量为

[*]{TeamBreadColor}- 代表团队颜色
[*]{TeamBreadName}- 代表团队名称
[*]{TeamBreadStatus}- 代表团队状态(床是否还在,是否被淘汰)

还有一种更简单的团队变量{team}
这个变量会自动在语言文件中的format-sb-team-generic路径获取相关信息(默认为 {TeamColor}{TeamLetter}&f {TeamName}: {TeamStatus})
该变量可以同时使用多行,它会被自动分配为该地图的一个团队
若变量的数量超过地图团队的数量时,多出的{team}行将会被跳过


全局变量

[*]{date} - 从语言文件中获取日期格式,并展示当天的日期
[*]{level}- 展示玩家的等级(注意,该变量不会自动刷新)
[*]{currentXp}- 展示玩家处于该等级 已经获取的经验值(注意,该变量不会自动刷新)
[*]{requiredXp}- 展示玩家升级到下一级所需要的经验值(注意,该变量不会自动刷新)
[*]{progress}- 展示玩家的等级进度(注意,该变量不会自动刷新)
[*]{losses}- 展示玩家总失败局数(注意,该变量不会自动刷新)
[*]{kills}- 展示玩家的总击杀数(注意,该变量不会自动刷新)
[*]{player}- 展示玩家ID
[*]{deaths}- 展示玩家的总死亡数(注意,该变量不会自动刷新)
[*]{coins}- 展示玩家的金币数量(vault)。
[*]{finalKills}- 展示玩家的总最终击杀数(注意,该变量不会自动刷新)
[*]{finalDeaths}- 展示玩家的最终死亡数(注意,该变量不会自动刷新)
[*]{bedsDestroyed}- 展示玩家摧毁的床的数量(注意,该变量不会自动刷新)
[*]{wins}- 展示玩家获胜的局数
[*]{on}- 展示服务器的在线玩家数量
[*]{server_ip}- 展示在 config.yml 文件中配置的服务器IP
[*]{server}- 展示在 server.properties 文件中配置的服务器MOTD
[*]{version}- 展示当前使用的插件版本


游戏变量

[*]{deaths} - 展示玩家在该局中的死亡数量(在一场游戏中的地图使用时)
[*]{kills} - 展示玩家在该局中的击杀数量(在一场游戏中的地图使用时)
[*]{deaths} - ?作者好像写重了 展示玩家在该局的死亡数量(在一场游戏中的地图使用时)
[*]{finalKills} - 展示玩家在该局中的最终击杀数量 (在一场游戏中的地图使用时)
[*]{beds} - 展示玩家在该局中摧毁的床的数量 (在一场游戏中的地图使用时)
[*]{on} - 展示当前地图未被淘汰的玩家的数量 (在一场游戏中的地图使用时)
[*]{map} - 展示当前地图的名称
[*]{max} - 展示当前地图的最大玩家数量
[*]{time} - 展示当前地图还有多长时间开始游戏
[*]{nextEvent} - 展示下一个事件 (资源点升级,所有床被破坏等)
[*]{time} - 展示距离下个事件发生的时间
[*]{group} - 展示该等待大厅属于的地图组名
[*]{map_name} - 展示你正在游玩的地图外显名称(如果想展示地图ID,即地图文件夹的名称,请使用 {map})


动画/计时器等配置,请前往主配置文件介绍查看
地图倒计时的标题你可以修改在语言文件中的 arena-start-countdown-title- 来自定义指定秒数的标题如果你想要添加自定义副标题,请配置以下路径arena-start-countdown-subtitle-时间变量{second}
只支持满足该条件的剩余秒数的标题自定义currentSecond % 10 == 0 || currentSecond <= 5(读懂这个条件需要有一定的编程知识,这个意思是,秒数除以10可以除尽或者秒数小于等于五秒)





小天吖~ 发表于 2022-2-24 18:23:50




支持SlimeWorldManager




swm 所有历史版本请查看:https://www.spigotmc.org/resources/slimeworldmanager.69974/history

如何安装SWM?
安装插件都会吧(⊙﹏⊙),很简单,先从上方的链接下载最新版本,然后
1.将下载的 slimeworldmanager-plugin-<version>.jar 复制到plugins文件夹
2.将下载的 slimeworldmanager-classmodifier-<version>.ja 复制到服务端根目录(注意不是plugins文件夹!)
3.修改服务器的bat,在-jar前面加上这个参数
-javaagent:slimeworldmanager-classmodifier-<version>.jar
ok大功告成



小天吖~ 发表于 2022-2-24 18:46:10


支持PlaceholderAPI




BedWars1058插件从0.5beta版本开始支持PAPI
插件的拓展在加载插件的时候会自动启用,不必再手动下载PAPI拓展

如果你在使用PAPI的时候需要帮助,请去PAPI作者的discord询问:https://discord.gg/7sndK3q

下方变量已删除重复且不必要的内容
玩家等级(初始化)
%bw1058_player_level%
玩家的初始等级
%bw1058_player_level_raw%
玩家等级的进度条(初始化)
%bw1058_player_progress%
玩家当前的经验值(初始化)(1000将被表示为1k)
%bw1058_player_xp_formatted%
玩家当前的经验值
%bw1058_player_xp%
当前玩家升级所需的经验值(初始化)
%bw1058_player_rerq_xp_formatted%
当前玩家升级所需的经验值
%bw1058_player_rerq_xp%
玩家第一场游戏的日期(格式将采用语言文件中配置的日期格式)
%bw1058_stats_firstplay%
玩家到目前为止最后进行游戏的日期(格式将采用语言文件中配置的日期格式)
%bw1058_stats_lastplay%
玩家的总普通击杀(不包括最终击杀)数量
%bw1058_stats_kills%
玩家的总击杀(包括最终击杀)数量
%bw1058_stats_total_kills%
PS:最终击杀的意思是击杀的敌人 所在团队的床已被破坏

玩家的总胜利场数
%bw1058_stats_wins%
玩家的总最终击杀数量
%bw1058_stats_finalkills%
玩家的总死亡数量
%bw1058_stats_deaths%
玩家的总失败场数
%bw1058_stats_losses%
玩家的最终死亡(也就是床被破坏后死亡)数量
%bw1058_stats_finaldeaths%
玩家的总破坏床的数量
%bw1058_stats_bedsdestroyed%
玩家的游戏总场数
%bw1058_stats_gamesplayed%
当前地图中在线的玩家数量
%bw1058_current_playing%
当前正常可开启的地图数量
%bw1058_current_arenas%
玩家所在的团队(如果他是一名游戏中的玩家,则显示玩家所在的团队;如果他是一名旁观者,则显示为空)
通常显示在/shout或!消息
%bw1058_player_team%
地图状态(0.8.5beta后的插件才具有该变量,如果地图离线或不存在,则显示“Restarting”)
%bw1058_arena_status_%
地图的玩家数量(0.8.5beta后的插件才具有该变量)为地图名
%bw1058_arena_count_%该变量还支持加法运算,例如%bw1058_arena_count_arena1+arena2%
地图组的总玩家数量,为地图组名
%bw1058_group_count_%该变量还支持加法运算,例如%bw1058_group_count_%
当前所在的地图组名
%bw1058_current_arena_group%
显示指定地图所在的地图组名
%bw1058_arena_group_%
这场游戏已经开始了多长时间
%bw1058_elapsed_time%



小天吖~ 发表于 2022-2-24 18:54:18




支持Vault Rank




Bedwars1058 发布的第一个版本就支持 vault
你可以通过权限组插件(例如pp,pex等其他基于vault的权限组插件)来为玩家添加后缀或前缀

变量:
前缀变量{vPrefix}
后缀变量{vSuffix}

你可以在语言文件(messages_<country>.yml)中的聊天格式下使用这些变量chat:
lobby: '{vPrefix}&7{player}{vSuffix}: {message}'
waiting: '{vPrefix}&7{player}{vSuffix}: {message}'
global: '{vPrefix}&6 {team} &7{player}&f{vSuffix}: {message}'
team: '{vPrefix}&f{level}{team}&7 {player}{vSuffix} {message}'
spectator: '{vPrefix}&7 {player}{vSuffix}: {message}'





小天吖~ 发表于 2022-2-24 19:03:09




支持Citizens




BedWars 从0.6.4beta(API8)版本开始支持Citizens
将该插件安装好后,你可以自由的创建删除npc指令:/bw npc
为了让其在/bw 指令列表中出现,请确保你的Citizens和你服务器的版本兼容

创建NPC
在服务器中输入以下指令
/bw npc create <skinName> <groupName> <Line1>\n<Line2>可用变量:{players} -展示该地图组中游玩的全部玩家

例如:
/bw npc create andrei1058 Solo &9&lSolo Games\n{players} playing

删除NPC
如果你想要删除npc的话,你只需要看着这个NPC并输入/bw npc remove
当然你还可以通过Citizens指令删除,/npc remove



小天吖~ 发表于 2022-2-24 19:07:36


支持AlessioDP





BedWars1058从 0.8beta(API11)起开始支持 AlessioDP
如果玩家在同一个 AlessioDP队伍下,那进入起床游戏后也会被分配到同一个团队
只需要在你的服务器上安装 AlessioDP就可以,还可以设置允许该操作的最低队伍等级



小天吖~ 发表于 2022-2-24 19:12:01


开发者-入门




如果你想要把此插件作为前置,请确保你的插件在 BedWars1058之后被载入!
1.      在plugin.yml里面将BedWar1058设置为softdepend(注意大小写!): softdepend:
2.      通过以下代码确认 BedWars1058 是否在这个服务器上:
@Override
public void onEnable() {
    //如果没有,就卸载你的插件。
    if (Bukkit.getPluginManager().getPlugin("BedWars1058") == null) {
            getLogger().severe("BedWars1058 was not found. Disabling...");
            Bukkit.getPluginManager().disablePlugin(this);
            return;
    }
}
获取API的方法
初始化API:
BedWars bedwarsAPI = Bukkit.getServicesManager().getRegistration(BedWars .class).getProvider();
配置文件:如果你想为你的拓展生成配置文件,请将其生成在plugins/BedWars1058/Addons/AddonName/config.yml



小天吖~ 发表于 2022-2-24 19:14:25


开发者-maven




导入库
<repositories>
<repository>
    <id>andrei1058-repo</id>
    <url><a href="http://repo.andrei1058.com/releases/</url>" target="_blank">http://repo.andrei1058.com/releases/</url></a>
</repository>
</repositories>
作为依赖
<!--BedWars1058插件API-->
<dependency>
<groupId>com.andrei1058.bedwars</groupId>
<artifactId>bedwars-api</artifactId>
<version>VERSION-HERE</version>
</dependency>


小天吖~ 发表于 2022-2-24 19:16:21




开发者-Events




事件
BedWars1058提供了众多的事件供开发者监听,更多事件参见: JavaDocs
@EventHandler
public void onEnemyEnter(EnemyBaseEnterEvent e) {
//代码
}

@EventHandler
public void onTeamAssign(TeamAssignEvent e) {
//代码
}

@EventHandler
public void onArenaJoin(PlayerJoinArenaEvent e) {
//代码
}




小天吖~ 发表于 2022-2-24 20:01:27




开发者-注册指令





创建你的命令
如果你想要给你的addon添加插件指令,比如: /bw mycmd ,请继续阅读本章:
1. 新建一个继承了:com.andrei1058.bedwars.command.SubCommand的类:
public class TutorialCommand extends SubCommand {
   
    //提供你的命令的有关信息
    public TutorialCommand(ParentCommand parent, String name) {
      super(parent, name);
    }
   
    @Override
    //执行你的命令:(和Bukkit一样,这也是一个boolean方法)
    public boolean execute(String[] args, CommandSender s) {
      return false;
    }
}
2. 接下来你就需要提供一些你的指令的信息:
public TutorialCommand(ParentCommand parent, String name) {
      super(parent, name);

      // 如果你的指令是提供给op使用的,下面项请开启:
      setOpCommand(true); //否则所有玩家都能使用

      //你想让它在/bw列表里面被看见吗?
      //只有op可以看见指令列表
      //因为玩家收到的是从信息文件里面获取的一段静态的
      //如果你把这个设置成true,你需要同时填写:setDisplayInfo()
      showInList(true);

      //这是在指令 /bw里面的介绍
      //它需要你提供一个文本的元件(其实就是hovertext),如果你不知道怎么使用
      //你可以用这个方法: com.andrei1058.bedwars.arena.Misc.msgHoverClick()
      setDisplayInfo(Misc.msgHoverClick("description", "hover description","run this on click", ClickEvent.Action.RUN_COMMAND));

      //这个值决定了指令在 /bw列表里面的顺序
      //最高为20
      //越小,则在列表的越上面,反之亦然
      setPriority(14);
      
      //如果这个指令是用于地图生成的,保持开启
      setArenaSetupCommand(false);
    }
3. 在你处理你的代码之前加上:
    @Override
    public boolean execute(String[] args, CommandSender s) {

      //this will send "cmd not found" msg to the console
      if (!(s instanceof Player)) return false;
      
      Player p = (Player) s;
      
      if (args.equalsIgnoreCase("apple")){
            p.getInventory().addItem(new ItemStack(Material.APPLE));
      }
      
      //如果这个指令成功执行了,return值应为true(和Bukkit一样!)
      //重申一遍,如果return为false,将会返回一个“未知命令”的标识
      return true;
    }
4. 注册你的指令!
你只需要初始化这个类
    @Override
    public void onEnable() {
      //如果插件(BedWar1058)不存在,就卸载你的插件
      if (Bukkit.getPluginManager().isPluginEnabled("BedWars1058")) {
            getLogger().severe("BedWars1058 was not found. Disabling...");//其实这个你也可以改成别的= =
            setEnabled(false);
            return;
      }
      
      //你的指令是: /bw tutorial apple
      //com.andrei1058.bedwars.commands.main.MainCommand
      BedWars bedwarsAPI = Bukkit.getServicesManager().getRegistration(BedWars.class).getProvider();
      new TutorialCommand(bedwarsAPI.getBedWarsCommand(), "tutorial");
    }



小天吖~ 发表于 2022-2-24 20:02:47


开发者-自定义等级




定义等级:
开发者可以通过实现com.andrei1058.bedwars.api.levels.Level 接口来创建他们自己的“玩家等级管理器”。这些方法是插件用来在比如计分板等地方显示玩家等级的。
如何创建:
public class CustomLevelsManager implements Level {
@Override
    public String getLevel(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getLevelName();
    }

    @Override
    public int getPlayerLevel(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getPlayerLevel();
    }

    @Override
    public String getRequiredXpFormatted(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getFormattedRequiredXp();
    }

    @Override
    public String getProgressBar(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getProgress();
    }

    @Override
    public int getCurrentXp(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getCurrentXp();
    }

    @Override
    public String getCurrentXpFormatted(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getFormattedCurrentXp();
    }

    @Override
    public int getRequiredXp(Player p) {
      return PlayerLevel.getLevelByPlayer(p.getUniqueId()).getNextLevelCost();
    }
}
如何注册:
这个方法将会安全地移除BedWar1058本身的等级系统并替换成你的
BedWars bedwarsAPI = Bukkit.getServicesManager().getRegistration(BedWars .class).getProvider();
bedwarsAPI.setLevelAdapter(new CustomLevelsManager());


225141214 发表于 2022-2-22 17:16:02

好,支持
页: [1]2345
查看完整版本: [2022.2.24][CPS]BedWars1058 —— 实用流行的起床战争插件 维基帮助