访问插件#
访问是一个简单的BentoBox插件,允许访问其他玩家的岛屿。 这是Warps插件的另一种选择。
由BONNe创建和维护。
安装#
- 将插件jar文件放入BentoBox插件的addons文件夹中
- 重启服务器
- 运行
/[admin_cmd] visit
命令来配置插件
配置#
很多插件设置在管理员GUI中公开,但有些没有。 更改命令标签需要重新启动服务器。
config.yml#
插件成功安装后,将创建config.yml文件。此文件中的每个选项都有注释,请查看获取更多信息。 你可以在这里找到最新的配置文件。
自定义GUI#
BentoBox 1.17 API引入了一个功能,允许实现自定义GUI。这个插件是第一个使用这个功能的插件之一。我们尽可能简化自定义,但有些功能需要解释。 你可以在这里找到更多关于BentoBox自定义GUI如何工作的信息。
如何自定义GUI
要自定义插件GUI,你需要有1.5版本。这是第一个实现它们的版本。插件将在/plugins/BentoBox/addons/Visit
下创建一个名为panels
的新目录
目前你可以自定义2个GUI:
- 主面板:
main_panel
- 包含所有岛屿的面板。 - 管理面板:
manage_panel
- 包含一些配置选项的面板。
每个GUI包含只支持自己的功能。
什么是PREVIOUS
|NEXT
按钮类型?
PREVIOUS
和NEXT
按钮类型允许在GUI中有更多岛屿而空间不足时创建自动分页。 这些类型在数据下有额外的参数:
indexing
- 指示按钮是否显示页码。
示例:
icon: tipped_arrow{CustomPotionColor:11546150}
title: visit.gui.buttons.previous.name
description: visit.gui.buttons.previous.description
data:
type: PREVIOUS
indexing: true
action:
left:
action: PREVIOUS
tooltip: visit.gui.tips.click-to-previous
什么是SEARCH
按钮类型?
这个按钮在主面板中可用。 它创建一个允许按特定岛屿搜索的按钮。
示例:
icon: PAPER
title: visit.gui.buttons.search.name
# 描述是动态生成的。但是,你可以手动设置。
# description: visit.gui.buttons.search.description
data:
type: SEARCH
actions:
left:
type: INPUT
tooltip: visit.gui.tips.left-click-to-edit
right:
type: CLEAR
tooltip: visit.gui.tips.right-click-to-clear
什么是FILTER
按钮类型?
这个按钮在主面板中可用。 它创建一个允许按某些属性过滤岛屿的按钮。
示例:
# 图标是动态生成的。但是,你可以手动设置。
# icon: SANDSTONE
title: visit.gui.buttons.filter.name
# 描述是动态生成的。但是,你可以手动设置。
# description: visit.gui.buttons.filter.description
data:
type: FILTER
actions:
left:
type: UP
tooltip: visit.gui.tips.left-click-to-cycle
right:
type: DOWN
tooltip: visit.gui.tips.right-click-to-cycle
什么是ISLAND
按钮类型?
这个按钮在主面板中
可用。 ISLAND
按钮为岛屿对象创建一个动态条目。
指定标题、描述和图标将基于数据库数据覆盖动态生成。默认情况下,这些值将从数据库条目生成。
这个按钮支持3种不同的动作类型:
- `VISIT`类型允许玩家访问岛屿
- `CONFIRM`类型允许玩家在config中启用ask-payment-confirmation时确认访问
- `CANCEL`类型允许玩家在config中启用ask-payment-confirmation时取消访问
示例:
```yaml
# 数据是动态生成的。但是,设置它们将覆盖它。
# icon: PLAYER_HEAD
# title: visit.gui.buttons.island.name
# description: visit.gui.buttons.island.description
data:
type: ISLAND
actions:
- click-type: left
type: VISIT
tooltip: visit.gui.tips.click-to-visit
- click-type: left
type: CONFIRM
tooltip: visit.gui.tips.left-click-to-confirm
- click-type: right
type: CANCEL
tooltip: visit.gui.tips.right-click-to-cancel
```
什么是PAYMENT
按钮类型?
这个按钮在管理面板中可用。 它创建一个允许设置访问玩家岛屿的支付值的按钮。
示例:
icon: ANVIL
title: visit.gui.buttons.payment.name
# 描述是动态生成的。但是,你可以手动设置。
# description: visit.gui.buttons.payment.description
data:
type: PAYMENT
actions:
left:
type: CHANGE
tooltip: visit.gui.tips.click-to-change
什么是OFFLINE
按钮类型?
这个按钮在管理面板中可用。 它创建一个允许设置玩家是否可以在岛屿成员不在线时访问岛屿的按钮。
示例:
icon: REDSTONE_LAMP
title: visit.gui.buttons.offline.name
# 描述是动态生成的。但是,你可以手动设置。
# description: visit.gui.buttons.offline.description
data:
type: OFFLINE
actions:
left:
type: TOGGLE
tooltip: visit.gui.tips.click-to-toggle
什么是ALLOWED
按钮类型?
这个按钮在管理面板中可用。 它创建一个允许一键禁用访问的按钮。这是通过设置面板更改ALLOW_VISITS_FLAG
标志值的快捷方式。
示例:
icon: PUMPKIN_PIE
title: visit.gui.buttons.enabled.name
# description: visit.gui.buttons.enabled.description
data:
type: ALLOWED
actions:
left:
type: TOGGLE
tooltip: visit.gui.tips.click-to-toggle
命令#
小贴士
[player_command]
和 [admin_command]
是根据你运行的游戏模式而不同的命令。 游戏模式的config.yml
文件包含允许你修改这些值的选项。 例如,在BSkyBlock上,默认的[player_command]
是island
,默认的[admin_command]
是bsbadmin
。 注意,这个插件允许在插件config.yml
文件中更改玩家命令别名。
/[player_command] visit <player>
:打开GUI或访问目标玩家的岛屿。/[player_command] visit configure
:打开GUI,允许管理访问设置。/[player_command] visit setlocation
:允许更改访客出生点位置。
/[admin_command] visit <player>
:打开GUI,允许编辑插件设置和配置岛屿数据。
权限#
小贴士
[gamemode]
是一个根据你运行的游戏模式而不同的前缀。 前缀是游戏模式的小写名称,即如果你使用BSkyBlock,前缀是bskyblock
。 类似地,如果你使用AcidIsland,前缀是acidisland
。
[gamemode].visit
- 让玩家使用/[player_command] visit
命令。[gamemode].visit.configure
- 让玩家使用/[admin_command] visit configure
命令。[gamemode].visit.setlocation
- 让玩家使用/[admin_command] visit setlocation
命令。visit.icon.[material]
- 允许更改访问面板中玩家拥有的岛屿的图标。
[gamemode].admin.visit
- 让玩家使用/[admin_command] visit
命令及其子命令。
缺少什么?
你可以在这个插件的addon.yml文件中找到权限的综合列表。
如果下面的列表确实缺少了什么,请告诉我们!
标志#
插件引入了2个BentoBox保护标志:
- ALLOW_VISITS_FLAG:岛屿设置中的标志,允许启用/禁用岛屿访问。
- RECEIVE_VISIT_MESSAGE_FLAG:岛屿设置中的标志,允许启用/禁用岛屿成员接收访问/离开消息。
常见问题解答#
你能添加功能X吗?
请在这里添加。
玩家可以更改访客被传送的地点吗?
是的,玩家可以使用命令:/[player_cmd] visit setlocation
来设置。但是,请注意,访客不会被传送到“危险”的地点,如果位置不安全,他们将被传送到更安全的位置。
管理员可以更改访客被传送的地点吗?
是的,管理员可以使用命令:/[admin_cmd] setspawnpoint
来设置。但是,请注意,访客不会被传送到“危险”的地点,如果位置不安全,他们将被传送到更安全的位置。
玩家可以有自定义图标吗?
是的,通过添加权限visit.icon.[material]
给岛屿所有者,可以更改访问面板中岛屿的图标。
我不想使用经济系统。我可以完全禁用它吗?
是的,配置选项disable-economy
将完全禁用所有经济部分。
如何允许/不允许岛屿成员更改访问值?
岛屿所有者(和拥有CHANGE_SETTINGS
权限的成员)可以通过设置面板编辑RANKED_COMMANDS
访问。那里将有/[player_cmd] visit configure
命令。
如何允许/不允许岛屿成员更改访问位置?
岛屿所有者(和拥有CHANGE_SETTINGS
权限的成员)可以通过设置面板编辑RANKED_COMMANDS
访问。那里将有/[player_cmd] visit setlocation
命令。
翻译#
!!! note "我们需要你的帮助!
BentoBox 及其附加组件中的绝大多数字符串几乎可以翻译成任何语言。
然而,BentoBox 或上述附加组件提供的大部分翻译都是由社区完成的,我们在很大程度上依赖社区。
我们无法审查这些翻译的所有内容,也无法保证其质量,因此我们非常感谢任何贡献。
Available | Language | Language code | Progress |
---|---|---|---|
✅ | English (United States) | en-US | 100% (Default) |
✅ | 中文(中国) | zh-CN | |
❌ | 中文(香港) | zh-HK | |
✅ | 中文(台湾) | zh-TW | |
❌ | 克罗地亚语 | hr | |
✅ | 捷克语 | cs | |
✅ | 法语 | fr | |
✅ | 德语 | de | |
✅ | 匈牙利语 | hu | |
✅ | 印尼语 | id | |
❌ | 意大利语 | it | |
✅ | 日语 | ja | |
❌ | 韩语 | ko | |
✅ | 拉脱维亚语 | lv | |
✅ | 波兰语 | pl | |
❌ | 葡萄牙语 | pt | |
❌ | 罗马尼亚语 | ro | |
❌ | 俄语 | ru | |
✅ | 西班牙语 | es | |
✅ | 土耳其语 | tr | |
❌ | 越南语 | vi | |
❌ | 乌克兰语 | uk | |
❌ | 荷兰语 | nl |
API#
从Visit 1.4.0和BentoBox 1.17开始,其他插件可以直接访问Visit插件的数据。
Maven依赖#
Visit为其他插件提供了API。这涵盖了1.5.0及以后的版本。
注意
将Visit依赖添加到您的Maven POM.xml中:
<repositories>
<repository>
<id>codemc-repo</id>
<url>https://repo.codemc.io/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>world.bentobox</groupId>
<artifactId>visit</artifactId>
<version>1.5.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
使用最新的Visit版本。
Visit的JavaDocs可以在这里找到。
事件#
变量
User player
- 尝试访问岛屿的玩家的id。Island island
- 玩家尝试访问的岛屿。boolean cancelled
- 事件是否被取消的布尔值。
代码示例
@EventHandler(priority = EventPriority.MONITOR)
public void onVisit(VisitEvent event) {
UUID player = event.getPlayer();
User user = event.getUser();
Island island = event.getIsland();
boolean cancelled = event.isCancelled();
}