Forbidden Blocks Paper

这个强大的插件允许您通过限制特定物品的放置位置来仔细控制构建环境,这些限制是基于它们的显示名称。例如,可以防止放置具有名称或 Lore 的方块——ForbiddenBlocks

资源图片
![Title Bar](https://cdn.modrinth.com/data/cached_images/af7868461a9eb547b50d0b2e489b08cfcde0f28f_0.webp) # 🚫 ForbiddenBlocks 插件 🛡️ ## 描述 使用 **ForbiddenBlocks 插件** 增强你的 Minecraft 服务器的游戏体验!🎉 这个强大的插件允许你仔细控制建筑环境,**根据物品的显示名称限制特定物品的放置**。 想象一下防止放置带有名或 Lore 的方块——ForbiddenBlocks 让它变得容易!🛠️ 服务器管理员和具有必要权限的玩家可以**禁止或允许物品放置**,提供一个多功能的服务器管理工具。 限制可以**全局**应用,影响所有玩家,或者**专门针对单个玩家**,提供对方块放置的精细控制。 无论你想要防止在生存世界中使用某些装饰性方块,还是限制在特定区域的建造,ForbiddenBlocks 都能给你力量! 🧱➡️⛔ ## 安装说明 只需几个简单的步骤即可使用 ForbiddenBlocks 开始: 1. 📥 **下载** ForbiddenBlocks 插件的 JAR 文件。 2. 📂 **将** JAR 文件放入你的 Minecraft 服务器的 `plugins` 目录中。 3. 🔄 **重启** 你的服务器以激活插件。 就这些! ForbiddenBlocks 已经准备好帮助你管理服务器的建筑环境了。 🚀 ## 使用方法 使用这些易于使用的命令控制服务器的建筑规则: ### 命令 * `/forbiditem [player|global] [itemName]`: ⛔ **禁止物品放置。** * 使用此命令来阻止玩家手中的物品放置,或者指定一个 `itemName`。 * 通过玩家姓名指定目标玩家,或者使用 `global` 在整个服务器范围内应用限制。 * 如果省略了 `itemName`,将禁止手中的物品。 * 物品通过它们的 **显示名称** 识别,确保与自定义物品的兼容性。 ``` /forbiditem global TNT <- 禁止所有人放置 TNT /forbiditem Notch Diamond Block <- 禁止 'Notch' 玩家放置钻石方块 /forbiditem global <- 禁止你手中的物品,全局禁止 ``` * `/allowitem [player|global] [itemName]`: ✅ **允许物品放置。** * 反转 `/forbiditem` 的效果,允许先前禁止的物品放置。 * 与 `/forbiditem` 类似,允许你针对玩家或全局设置,并可选地指定一个 `itemName`。 * 如果未提供 `itemName`,则再次允许手中的物品。 ``` /allowitem global TNT <- 再次允许所有人放置 TNT /allowitem Notch Diamond Block <- 再次允许 'Notch' 玩家放置钻石方块 /allowitem global <- 再次允许你手中的物品,全局允许 ``` * `/togglemessages`: 💬 **切换放置限制消息。** * 玩家可以使用此命令来控制他们尝试放置禁止方块时是否收到消息。 * 通过允许玩家在需要时静音通知,个性化游戏体验。 ``` /togglemessages <- 切换你的消息通知 ``` * `/listforbidden [player]`: 📜 **列出禁止的物品。** * 显示当前所有禁止的物品的列表。 * 可选地指定一个 `player` 名称来查看专门针对该玩家禁止的物品。 * 如果没有提供玩家名称,则显示全局禁止的物品。 ``` /listforbidden <- 列出全局禁止的物品 /listforbidden Notch <- 列出 'Notch' 玩家禁止的物品 ``` * `/reloadconfig`: 🔄 **重新加载插件配置。** * 在不需要服务器重启的情况下,应用对 `config.yml` 文件所做的更改。 * 非常适合快速调整和测试配置更改。 ``` /reloadconfig <- 重新加载 config.yml ``` ### 权限 使用这些权限微调对 ForbiddenBlocks 命令的访问: * `forbiddenblocks.forbid`: ⛔ 允许使用 `/forbiditem` 来限制物品放置。 * `forbiddenblocks.allow`: ✅ 允许使用 `/allowitem` 来重新启用物品放置。 * `forbiddenblocks.togglemessages`: 💬 允许使用 `/togglemessages` 来管理通知。 * `forbiddenblocks.list`: 📜 允许使用 `/listforbidden` 查看禁止的物品。 * `forbiddenblocks.reload`: 🔄 允许使用 `/reloadconfig` 重新加载配置。 ```yaml # 权限插件 (如 LuckPerms) 中的示例 groups: admin: permissions: - forbiddenblocks.* # 向管理员授予所有 ForbiddenBlocks 权限 builder: permissions: - forbiddenblocks.list # 允许构建者列出禁止的物品 ``` ## 配置 通过编辑位于插件文件夹中的 `config.yml` 文件来定制 ForbiddenBlocks 以完全满足服务器的需求。 以下是配置选项的说明: * **Messages**: ✉️ 根据你的喜好定制游戏内的消息! * 自定义插件为不同动作发送的每一条消息 (例如,当一个物品被禁止或当玩家收到通知时)。 * 使用 **MiniMessage 格式化标签** 添加丰富的文本格式,如颜色 ``、样式 `` 等!✨ * 参考 `config.yml` 获取默认消息示例,并充分发挥你的创造力!🎨 * **可用的消息路径:** * `messages.cannotPlace`: 当玩家尝试放置禁止方块时的消息。 * `messages.itemForbidden`: 成功禁止物品时的消息。 * `messages.itemAllowed`: 成功允许物品时的消息。 * `messages.mustHoldNamedItem`: 当使用 `/forbiditem` 或 `/allowitem` 时,未持有带有名物品的消息。 * `messages.noPermission`: 通用的无权限消息。 ```yaml messages: cannotPlace: "🚫 你不允许在这里放置 !" itemForbidden: " 现在被禁止了!" itemAllowed: " 现在可以再次放置了!" mustHoldNamedItem: "⚠️ 你必须手持一个带有显示名称的物品!" noPermission: "❌ 你没有使用此命令的权限。" ``` * **Options**: ⚙️ 全局插件设置。 * `sendMessages`: 一个布尔选项 (true/false),用于全局控制插件是否向玩家发送限制消息。 * `true` (默认): 玩家尝试放置禁止方块时会发送消息。 * `false`: 不发送任何消息,提供静默限制。 ```yaml options: sendMessages: true ``` * **playerForbiddenItems**: 🗂️ 精确管理禁止的物品。 * 此部分定义了对全局和特定玩家禁止放置的物品。 * 插件会检查正在放置的物品的 **显示名称** 与这些配置是否匹配。 * `global`: 一个被所有玩家禁止的物品显示名称列表,定义在 `config.yml` 的 `playerForbiddenItems.global` 下。 * 在此处添加物品显示名称以实施服务器范围内的限制。 * 支持纯文本物品名称、命名空间键 (如 `minecraft:bedrock`),甚至 MiniMessage 格式化的显示名称以进行高级物品自定义。 ```yaml playerForbiddenItems: global: - "TNT" - "Minecraft:Bedrock" # 使用命名空间的示例 - "超级爆炸盒子" # 使用 MiniMessage 格式化的示例 ``` * `PlayerName`: 使用他们的确切玩家名称为**单个玩家**创建部分。 * 在每个玩家名称下,列出专门针对该玩家禁止的物品显示名称。 * 这允许对每个玩家进行高度自定义的构建权限! ```yaml playerForbiddenItems: global: - "TNT" Notch: # 'Notch' 玩家的特定限制 - "橡木原木" - "橡木木板" ``` ## 工作原理 ⚙️ ForbiddenBlocks 插件的工作方式如下: 1. **监听方块放置事件:** 插件注册了一个事件侦听器,该侦听器监视 Minecraft 服务器中的 `BlockPlaceEvent`。每当玩家尝试放置方块时,都会触发此事件。👂 2. **检查物品显示名称:** 当发生方块放置事件时,插件会检索玩家手中的物品,并检查它是否具有显示名称。然后它使用 MiniMessage 将此显示名称序列化为字符串。🏷️ 3. **验证禁用的列表:** 然后,插件会检查此显示名称与两个列表: * **全局禁止的物品:** 所有玩家禁止的物品列表,定义在 `config.yml` 中 `playerForbiddenItems.global` 下。🌎 * **特定玩家禁止的物品:** 针对特定玩家禁止的物品列表,也在 `config.yml` 中 `playerForbiddenItems.PlayerName` 下定义。👤 4. **取消放置并通知玩家:** 如果放置的物品的显示名称在全局或特定玩家禁止列表中都找到,插件会取消 `BlockPlaceEvent`,从而防止放置方块。🚫 * 如果配置中启用 (`options.sendMessages: true`),插件会向玩家发送自定义消息,告知他们不允许放置该方块。💬 此过程确保方块放置限制平稳高效地执行,增强了服务器对建筑环境的控制。 ✨ ## 贡献 🤝 **欢迎贡献!** 如果您对改进、新功能或错误修复有任何想法,请随时贡献! * 提交包含您更改的 **拉取请求**。 * 打开 **问题** 以讨论错误或建议增强功能。 让我们共同努力,使 ForbiddenBlocks 变得更好! 🚀 ## 许可证 本项目采用 **MIT 许可证** 授权。 根据许可证条款随意使用、修改和分发。 📄