Skip to content

魔法圆石发生器#

魔法圆石发生器将平凡无聊的圆石发生器变成了一个棒极了的、可配置的方块来源!

BONNe创建和维护。

安装#

  1. 将插件jar文件放入BentoBox插件的addons文件夹中
  2. 重启服务器
  3. 运行/[admincmd] generator命令来配置插件

配置#

默认情况下,插件试图从模板文件中导入所有数据,以简化首次设置。许多插件设置在Admin GUI中公开,然而,有些设置不是。 最新的配置选项及其详细解释可以在这里找到。

模板文件主要是为那些不喜欢使用游戏内编辑GUI的用户准备的。然而,模板文件在每次更改时不会自动导入。需要通过命令或Admin GUI导入。

模板文件结构

```

开始所有生成器等级的列表。#

tiers: # 生成器的唯一ID。用于内部存储和访问每个生成器数据。 generator_unique_id: # 用户的显示名称。支持颜色代码。 # 默认值: 生成器唯一ID去掉下划线 name: "Something fancy" # 说明文字信息。支持颜色代码。 # 可以通过用[]替换一切来定义为空。 # 默认值: [] description: -| 第一行说明信息 &2第二行说明信息 # GUI中使用的图标。数字在末尾允许指定项目的堆叠大小。 # 默认值: Paper. icon: "PAPER:1" # 生成器类型: COBBLESTONE, STONE 或 BASALT。自解释。 # 默认值: COBBLESTONE type: COBBLESTONE # 指示生成器是否为默认生成器。默认生成器忽略要求部分。 # 对每种生成器类型只能有一个默认生成器。 # 默认值: false default: false # 用户选择激活的生成器。 # 优先级指示如果多个生成器满足要求, # 将使用哪个生成器。 # 默认值: 1 priority: 1 # 这里可以定义几个要求。 requirements: # 可以定义生成器工作所需的最小岛屿等级。需要等级插件。 # 默认值: 0 island-level: 10 # 列出用户选择此生成器所需的权限列表。 # 默认值: [] required-permissions: [] # 列出生成器工作所需的生物群系列表。 # 空意味着没有限制生物群系生成器工作。 # 默认值: []。 required-biomes: [] # 购买此生成器的费用。需要Vault和任何经济插件。 # 通过在生成器视图GUI中点击购买图标来实现。 # 默认值: 0 purchase-cost: 5.0 # 激活当前生成器等级的费用。需要Vault和任何经济插件。 # 只有在生成器之间主动切换时才会支付。 # 默认值: 0。 activation-cost: 0.0 # 材料及其几率。请使用实际的方块。 # 几率支持任何正数,包括双精度值。 # 最终所有内容将被规范化。 # 默认值: [] blocks: FIRST_BLOCK_NAME_ID: NUMBER SECOND_BLOCK_NAME_ID: NUMBER # 在

方块生成时有机会掉落的宝藏。 # 仅在生成时,而非方块破坏时。 # 默认值: [] treasure: # 从0到1的几率。0 - 不可能获得宝藏。 # 默认值: 0 chance: 0.001 # 可以掉落的材料。适用于与方块部分相同的规则。 # 默认值: [] material: FIRST_BLOCK_NAME_ID: NUMBER SECOND_BLOCK_NAME_ID: NUMBER # 掉落项目的最大数量。 # 将从1到定义的数量之间。 # 默认值: 1 amount: 1

# 开始所有套餐的列表
bundles:
  # 套餐id
  bundle_unique_id:
    # 用户的显示名称
    name: "Something fancy"
    # 说明文字信息。支持颜色代码。
    # 可以通过用[]替换一切来定义为空。
    # 默认值: []
    description: -|
      第一行说明信息
      &2第二行说明信息
    # GUI中使用的图标。数字在末尾允许指定项目的堆叠大小。
    # 默认值: Paper.
    icon: "PAPER:1"
    # 套餐将工作有访问权限的生成器列表。
    generators:
      - generator_id_1
      - generator_id_2
```

命令#

小贴士

[player_command][admin_command] 是根据你运行的游戏模式而不同的命令。 游戏模式的config.yml文件包含允许你修改这些值的选项。 例如,在BSkyBlock上,默认的[player_command]island,默认的[admin_command]bsbadmin。 注意,这个插件允许在插件config.yml文件中更改玩家命令别名。

  • /[player_command] generator:访问生成器选择GUI。
  • /[player_command] generator view <generator>:访问特定生成器的详细视图。
  • /[player_command] generator activate <generator> [false]:允许激活(或停用)特定生成器。
  • /[player_command] generator buy <generator>:允许购买特定生成器。
  • /[admin_command] generator:访问插件的管理员GUI
  • /[admin_command] generator import:导入默认模板文件 - /plugins/BentoBox/addons/MagicCobblestoneGenerator/generatorTemplate.yml
  • /[admin_command] generator database import <file>:能够导入导出的数据库
  • /[admin_command] generator database export <file>:能够将数据库导出到保存在/plugins/BentoBox/addons/MagicCobblestoneGenerator/文件夹中的
  • /[admin_command] generator why <player>:一个调试命令,允许为每个玩家找到生成器问题。

权限#

小贴士

[gamemode] 是一个根据你运行的游戏模式而不同的前缀。 前缀是游戏模式的小写名称,即如果你使用BSkyBlock,前缀是bskyblock。 类似地,如果你使用AcidIsland,前缀是acidisland

  • [gamemode].stone-generator - 让玩家使用/[player_command] generator命令及其子命令。
  • [gamemode].stone-generator.active-generators.3 - 设置岛屿所有者可以拥有的最大活跃生成器数量。3可以被任何正整数替换。这只是一个例子。
  • [gamemode].stone-generator.max-range.30 - 设置生成器继续

工作的最大距离。30可以被任何正整数替换。这只是一个例子。 - [gamemode].stone-generator.bundle.[bundle_id] - 指定将用于用户拥有的岛屿的套餐。

  • [gamemode].admin.stone-generator - 让玩家使用/[admin_command] generator命令及其子命令。
  • [gamemode].admin.stone-generator.why - 让玩家使用调试命令/[admin_command] why generator <player>
  • [gamemode].admin.stone-generator.database - 让玩家使用/[admin_command] generator database命令及其子命令。
缺少什么?

你可以在这个插件的addon.yml文件中找到权限的综合列表。
如果下面的列表确实缺少了什么,请告诉我们!

占位符#

提示

[gamemode] 是一个前缀,根据你运行的游戏模式而有所不同。

前缀是游戏模式名称的小写形式,即如果你正在使用 BSkyBlock,前缀则为 bskyblock

每个游戏模式正确翻译的占位符可以在以下位置找到:

请阅读主要的占位符页面.

Placeholder Description MagicCobblestoneGenerator version
%[gamemode]_magiccobblestonegenerator_active_generator_count% Number of currently active generators on player island 2.2.0
%[gamemode]_magiccobblestonegenerator_max_active_generator_count% Number of maximal allowed active generators on player island 2.2.0
%[gamemode]_magiccobblestonegenerator_active_generator_names% List of active generator names separated with comma 2.2.0
%[gamemode]_magiccobblestonegenerator_unlocked_generator_names% List of unlocked generator names separated with comma 2.2.0
%[gamemode]_magiccobblestonegenerator_purchased_generator_names% List of purchased generator names separated with comma 2.2.0

常见问题解答#

你能添加功能X吗?

请在这里添加。

如何添加新的生成器等级?

目前,插件支持3种添加新生成器的方式:

  • 通过使用游戏内GUI,可通过/[admin] generator命令访问。
  • 通过向模板文件添加生成器。
  • 通过向导出的数据库文件添加生成器。
我在模板/数据库文件中添加了生成器,但它在游戏中不显示。

为了更容易地配置多个游戏模式,生成器存储在内部数据库中。编辑模板或数据库文件后,您需要将它们导入到内存中。您可以通过点击Admin GUI中的导入模板导入数据库按钮来完成。

我有一个生成器显示在Admin GUI中,但玩家看不到它。

最有可能是由于“部署”状态。为了避免在管理员添加它们时玩家开始激活生成器的问题,生成器是未部署的,没有人可以使用它们。您可以通过编辑Admin GUI中的生成器并点击编辑生成器GUI中的开关来激活它们。

什么是宝藏?

宝藏是在生成方块时掉落的东西。它允许为每个生成器提供额外的自定义。

什么是套餐?

套餐是一项功能,允许为每个岛屿提供更多的自定义体验。如果岛屿分配了套餐,那么该岛屿上的玩家将只能使用该套餐中的生成器。

我可以禁用在生成器描述中显示所需权限吗?

是的,插件为显示每个生成器提供了许多自定义选项。它位于 locales 文件中:

      # 生成器说明消息生成器。生成器说明中的所有元素都是基于
      # 下面的部分生成的。
      generator:
        # 主说明元素内容。如果你不想显示宝藏,
        # 只需从 [treasures] 部分删除它们。
        # [description] 来自每个生成器等级。
        # 说明不支持颜色代码。每个对象都单独支持。
        lore: |-
          [description]
          [blocks]
          [treasures]
          [type]
          [requirements]
          [status]
        # 生成 [blocks] 部分
        blocks:
          # blocks 部分中的第一行。空行将不显示。
          title: "&7&l Blocks:"
          # 标题下的每个方块及其值。不能为空。
          # 支持 [number], [#.#], [#.##], [#.###], [#.####], [#.#####]
          value: "&8 [material] - [#.##]%"
        # 生成 [treasures] 部分
        treasures:
          # blocks 部分中的第一行。空行将不显示。
          title: "&7&l Treasures:"
          # 标题下的每个宝藏及其值。不能为空。
          # 支持 [number], [#.#], [#.##], [#.###], [#.####], [#.#####]
          value: "&8 [material] - [#.####]%"
        # 生成 [requirements] 部分
        requirements:
          # 允许更改要求消息的顺序和内容。
          description: |-
            [biomes]
            [level]
            [missing-permissions]
          # 生成 [level] 消息。
          level: "&c&l Required Level: &r&c [number]"
          # 生成 [missing-permission] 消息标题。
          permission-title: "&c&l Missing Permissions:"
          # 生成 [missing-permission] 消息值。
          permission: "&c  -[permission]"
          # 生成 [biomes] 消息标题。
          biome-title: "&7&l Operates in:"
          # 生成 [biomes] 消息值。
          biome: "&8 [biome]"
          # 生成所有生物群系的 [biomes] 消息。
          any: "&7&l Operates in &e&o all &r&7&l biomes"
        # 生成 [status] 部分
        status:
          # 针对锁定生成器显示的消息。
          locked: "&c Locked!"
          # 针对未部署生成器显示的消息。
          undeployed: "&c Not Deployed!"
          # 针对活跃生成器显示的消息。
          active: "&2 Active"
          # 针对需要购买的生成器显示的消息。
          purchase-cost: "&e Purchase Cost: $[number]"
          # 针对有激活费用的生成器显示的消息。
          activation-cost: "&e Activation Cost: $[number]"
        # 生成 [type] 部分
        type:
          title: "&7&l Supports:"
          cobblestone: "&8 Cobblestone Generators"
          stone: "&8 Stone Generators"
          basalt: "&8 Basalt Generators"
          any: "&7&l Supports &e&o all &r&7&l generators"

翻译#

帮助我们保持翻译准确

现在 BentoBox 及其插件的大多数翻译已借助 AI 完成——大部分工作已经做好, 但 AI 并不完美。我们真正需要社区提供的是错误报告和纠正

  • 发现错误或措辞不当?请在 bentobox.world 的相关仓库(我们 GitHub 组织的短链接)上提交 issue 或 PR,或者在 Discord 上告知我们。
  • 想要添加全新语言?请在相关仓库的 src/main/resources/locales/ 目录下 提交包含新语言文件的 PR,或在 Discord 上联系我们,我们会为你提供帮助。
语言 语言代码 进度
英语(美国) en-US 100%(默认)
中文(中国) zh-CN 90%
中文(台湾) zh-TW 90%
乌克兰语 uk 94%
俄语 ru 94%
土耳其语 tr 94%
德语 de 94%
法语 fr 90%
波兰语 pl 15%
西班牙语 es 92%
越南语 vi 94%

API#

自 MagicCobblestoneGenerator 2.4.0 和 BentoBox 1.17 以来,其他插件可以直接访问 MagicCobblestoneData 插件的数据。但是,对于不想使用太多依赖的插件来说,插件请求仍然是一个很好的解决方案。

Maven 依赖#

MagicCobblestoneGenerator 为其他插件提供了 API。这涵盖了 2.5.0 及以后的版本。

Note

将 MagicCobblestoneGenerator 依赖添加到你的 Maven POM.xml 中:

    <repositories>
        <repository>
            <id>codemc-repo</id>
            <url>https://repo.codemc.io/repository/bentoboxworld/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>world.bentobox</groupId>
            <artifactId>magiccobblestonegenerator</artifactId>
            <version>2.5.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

使用最新的 MagicCobblestoneGenerator 版本。

MagicCobblestoneGenerator 的 JavaDocs 可以在这里找到。

事件#

描述

玩家在其岛屿上激活/停用生成器时触发的事件。 此事件可以取消。

类链接:GeneratorActivationEvent

变量

  • String islandUUID - 目标岛屿 ID。
  • UUID targetPlayer - 触发生成器激活的玩家的 ID。
  • String generator - 被激活生成器的名称。
  • String generatorID - 被激活生成器的 ID。
  • boolean activate - 指示生成器是激活还是停用的布尔值。

代码示例

@EventHandler(priority = EventPriority.LOW)
public void onGeneratorActivationChange(GeneratorActivationEvent event) {
    UUID user = event.getTargetPlayer();
    String island = event.getIslandUUID();

    String generator = event.getGenerator();
    String generatorID = event.getGeneratorID();
    boolean activate = event.isActivate();
}

描述

玩家在其岛屿上解锁新生成器时触发的事件。 此事件可以取消。

类链接:GeneratorUnlockEvent

变量

  • String islandUUID - 目标岛屿 ID。
  • UUID targetPlayer - 触发生成器解锁的玩家的 ID。
  • String generator - 被解锁生成器的名称。
  • String generatorID - 被解锁生成器的 ID。

代码示例

@EventHandler(priority = EventPriority.LOW)
public void onGeneratorUnlock(GeneratorUnlockEvent event) {
    UUID user = event.getTargetPlayer();
    String island = event.getIslandUUID();

    String generator = event.getGenerator();
    String generatorID = event.getGeneratorID();
}

描述

玩家在其岛屿上购买新生成器时触发的事件。 此事件不可取消。

类链接:GeneratorBuyEvent

变量

  • String islandUUID - 目标岛屿 ID。
  • UUID targetPlayer - 购买生成器的玩家的 ID。
  • String generator - 被购买生成器的名称。
  • String generatorID - 被购买生成器的 ID。

代码示例

@EventHandler(priority = EventPriority.LOW)
public void onGeneratorBuy(GeneratorBuyEvent event) {
    UUID user = event.getTargetPlayer();
    String island = event.getIslandUUID();

    String generator = event.getGenerator();
    String generatorID = event.getGeneratorID();
}

插件请求处理程序#

到 BentoBox 1.17 为止,我们在访问 BentoBox 环境外的数据时遇到了类加载器的问题。 这意味着数据只能从其他插件访问。但 BentoBox 实现了 PlAddon 功能,这意味着请求 处理程序不再是必需的。

有关插件请求处理程序的更多信息可以在这里找到。

描述

返回玩家的活跃生成器的名称。

自 2.4.0 版本开始。

输入

  • world-name: String - 世界的名称。
  • player: String - 玩家的 UUID。

输出

输出是一个 List<String>,包含活跃生成器的名称。

失败

如果未提供 world-nameworld-name 不存在或未提供 player,此处理程序将返回 null。

代码示例

public List<String> getActiveGeneratorNames(String worldName, UUID playerUUID) {
    return (List<String>) new AddonRequestBuilder()
        .addon("MagicCobblestoneGenerator")
        .label("active-generator-names")
        .addMetaData("world-name", worldName)
        .addMetaData("player", playerUUID)
        .request();
}

描述

返回为请求的生成器对象存储的原始数据。

自 2.4.0 版本开始。

输入

  • generator: String - 生成器的 UUID。

输出

输出是一个 Map<String, Object>,包含原始生成器数据。

输出映射包含:

  • uniqueId: String - 生成器的唯一 ID。应与输入相同。
  • friendlyName: String - 生成器的显示名称(未格式化)。
  • description: List - 说明消息的字符串列表(未格式化)。
  • generatorType: String - 生成器的类型。可用的类型:

    • COBBLESTONE
    • STONE
    • BASALT
    • COBBLESTONE_OR_STONE
    • BASALT_OR_COBBLESTONE
    • BASALT_OR_STONE
    • ANY
  • generatorIcon: ItemStack - 生成器图标的物品堆。

  • lockedIcon: ItemStack - 锁定的生成器图标的物品堆。
  • defaultGenerator: boolean - 指示生成器是否为默认的布尔值。
  • priority: int - 生成器的优先级值。
  • requiredMinIslandLevel: int - 生成器工作所需的最小岛屿等级。
  • requiredBiomes: Set - 生成器工作所需的生物群系集合。
  • requiredPermissions: Set - 生成器可购买所需的权限集合。
  • generatorTierCost: double - 生成器的价格。
  • activationCost: double - 生成器的激活价格。
  • deployed: boolean - 指示生成器对玩家是否可用的布尔值。
  • blockChanceMap: TreeMap - 包含方块几率原始数据的映射。
  • treasureItemChanceMap: TreeMap - 包含宝藏几率原始数据的映射。
  • treasureChance: double - 从生成的方块中掉落宝藏的值。
  • maxTreasureAmount: int - 一次掉落的最大宝藏数量。

失败

如果未提供 generator,此处理程序将返回 null;如果 generator 不存在,将返回空映射。

代码示例

public Map<String, Object> getGeneratorData(String generatorId) {
    return (List<String>) new AddonRequestBuilder()
        .addon("MagicCobblestoneGenerator")
        .label("generator-data")
        .addMetaData("generator", generatorId)
        .request();
}

Last update: April 8, 2026 04:49:17