Skip to content

A Minecraft Plugin that provides lots of practical features and customizable settings for managing your worlds.

License

Notifications You must be signed in to change notification settings

StarCodeClub/WorldUtils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WorldUtils

适用于高版本 Paper、Folia 的 Minecraft 服务端的插件,提供许多有关世界的实用功能和设置

Language: 简体中文 | [Switch to English](./README_en.md)

✨ 特性

  • 🔧 灵活:层次化配置系统,支持配置继承,简单明确地完成功能设置
  • 🔒 世界保护:提供 9 种世界保护
  • 🌍 独立世界属性: 为每个世界调整独立的设置
  • 💬 消息:支持使用下一代 MiniMessage 格式,ActionBar 提示玩家更加优雅,已做频繁触发优化
  • ⚡ High Performance:极度轻量,无冗余代码,插件大小仅65KB
  • 🎯 权限系统:精细的权限控制,支持使用权限绕过特定保护

🚀 快速开始

1.使用预编译二进制文件

进入 Releases 获取最新的预编译版本

2.自行编译

  • Java 21 或更高版本
  • Maven 3.6+ (仅编译时需要)
  1. 克隆仓库:
git clone https://github.com/StarCodeClub/WorldUtils.git
cd WorldUtils
  1. 编译插件:
mvn clean package
  1. 编译完成后,在 target/ 目录下找到 WorldUtils-1.3.0-SNAPSHOT.jar

📖 使用方法

配置文件结构

# 插件前缀 (MiniMessage 格式)
plugin-prefix: "<gradient:#00eec0:#00c5ff><b>[WU]</b></gradient>"

# 世界配置文件
configs:
  # default 为默认配置,同时也是[配置模版],请勿删除!!!
  default:
    # 阻止玩家修改世界(放置方块,填充水、岩浆,放置画,修改物品展示框和花盆...)
    anti-world-edit: false
    # 阻止玩家在此世界进行 PVP (玩家互相伤害)
    anti-pvp: false
    # 阻止玩家进入该世界 (folia 上无法立刻拦截,但于在2s内将会传送至 Fallback World)
    anti-player-enter: false
    # 如果发现玩家处于禁止进入的世界,将会将玩家传送至该世界出生点
    world-enter-fallback: "world"
    # 使爆炸在该世界不破坏方块 (仍可造成伤害)
    anti-explosion: false
    # 阻止玩家与该世界的方块交互 (打开容器,使用工作台等)
    anti-block-interaction: false
    # 阻止玩家在此世界使用物品 (丢雪球、鸡蛋,射箭,使用刷怪蛋,打火石等)
    anti-use-item: false
    # 阻止玩家对该世界的实体造成伤害 (不包含玩家互相伤害)
    anti-attack-entity: false
    # 阻止玩家在该世界与实体交互 (骑乘坐骑,使用栓绳,与村民交易等)
    anti-entity-interaction: false
    # 阻止玩家在该世界捡起或丢弃物品
    anti-pickup-drop-items: false
    # 为世界设置独立的游戏模式 (设置为空则使用默认游戏模式)
    world-gamemode: ""
    # 是否强制禁止玩家在此世界修改游戏模式
    force-world-gamemode: false
    # 取消玩家碰撞 (禁止玩家推动该世界的实体使其位置改变), 玩家自身仍可被其他实体推动 (由客户端计算)
    cancel-player-collision: false

    # 在玩家进入该世界时向玩家发送提示, 设置为空则不发送
    enter-message:
      chat-message: ""
      action-bar: ""

      title: "" # 使用 \n 分隔 title 和 subtitle
      duration: 2 # 显示持续时间,仅对 Title 起效

    # 玩家无权限时 actionbar 显示的提示 (MiniMessage 格式)
    # 已做频繁触发优化,1s 内只会发送一次, 填空字符串 "" 则不会向玩家发送
    messages:
      anti-world-edit: "{plugin-prefix} <red>你没有权限修改这个世界.</red>"
      anti-pvp: "{plugin-prefix} <red>已禁止在该世界 PVP.</red>"
      anti-player-enter: "{plugin-prefix} <red>你没有权限进入这个世界.</red>"
      anti-block-interaction: "{plugin-prefix} <red>你没有权限与这个世界的方块交互.</red>"
      anti-attack-entity: "{plugin-prefix} <red>已禁止对此世界的实体造成伤害.</red>"
      anti-entity-interaction: "{plugin-prefix} <red>已禁止与此世界的生物交互.</red>"
      anti-pickup-drop-items: "{plugin-prefix} <red>已禁止在此世界捡起或丢弃物品.</red>"
      anti-use-item: "{plugin-prefix} <red>已禁止在此世界使用物品.</red>"
      player-gamemode-change: "{plugin-prefix} <red>游戏模式已与该世界统一</red>"

  common:
    # 仅需添加你想调整的设置,其他设置默认继承 default
    # 你也可以手动指定 parent,继承其他配置
    # parent: default
    anti-explosion: true

  hub:
    parent: common
    # 仅需添加你想在 common 基础上调整的设置
    anti-world-edit: true
    anti-block-interaction: true
    anti-attack-entity: true

    messages:
      anti-world-edit: "{plugin-prefix} <red>你不能修改主城的任何方块.</red>"

    enter-message:
      title: "<b>欢迎来到主城</b>\n<yellow>祝您在此服务器玩的开心!</yellow>"
      duration: 3



# 指定哪些世界使用哪个配置
# 未指定的默认使用 default 配置
# 指定为 disable 则将在该世界禁用 WorldUtils
world-config:
  "world": common
  "hub": hub # 使世界使用 hub 配置
  "world_the_end": disable

功能说明

保护类型 描述 涵盖事件 Folia 支持
anti-world-edit 禁止修改世界 禁止方块放置/破坏、桶操作、画/物品展示框交互 完整支持✅
anti-pvp 禁止玩家之间战斗 取消玩家间伤害 完整支持✅
anti-player-enter 禁止玩家进入世界 拦截世界切换传送 无法立刻拦截,但可以在2s内传送至 fallback world
anti-explosion 禁止爆炸破坏方块 阻止TNT、苦力怕、烈焰弹爆炸 (非实体破坏) 完整支持✅
anti-block-interaction 禁止与方块交互 拦截打开容器,使用工作台等 完整支持✅
anti-attack-entity 禁止攻击实体 禁止攻击或杀死非玩家实体 完整支持✅
anti-entity-interaction 禁止与实体交互 拦截骑乘坐骑,使用栓绳,与村民交易等 完整支持✅
anti-pickup-drop-items 禁止丢弃/拿取物品 禁止玩家在该世界捡起或丢弃物品 完整支持✅
anti-use-item 禁止使用物品 拦截丢雪球、鸡蛋,射箭,使用刷怪蛋等 完整支持✅
world-gamemode 独立世界游戏模式 切换世界时更改游戏模式 完整支持✅
cancel-player-collision 取消玩家碰撞 禁止玩家推动该世界的实体使其位置改变 完整支持✅

🎮 命令与权限

命令列表

命令 说明 权限
/wu help 显示帮助信息 wu.admin
/wu status 查看保护设置总览 wu.admin
/wu status <world> 查看指定世界保护设置 wu.admin
/wu set-config <world> <protect_config/disable> 切换某世界的保护配置 wu.admin
/wu reload 重载配置文件 wu.admin
/wu version 显示插件版本 wu.admin

权限系统

本插件无任何默认权限

管理员权限

  • wu.admin - 使用所有 /wu 命令(默认:OP)

绕过权限

  • wu.bypass.* - 绕过所有世界保护(默认:OP)
  • wu.bypass.<world>.anti-world-edit - 绕过指定世界的世界编辑保护
  • wu.bypass.<world>.anti-pvp - 绕过指定世界的 PVP 保护
  • wu.bypass.<world>.anti-player-enter - 绕过指定世界的进入保护
  • wu.bypass.<world>.anti-block-interaction - 绕过指定世界的方块交互保护
  • wu.bypass.<world>.anti-attack-entity - 绕过指定世界的攻击实体保护
  • wu.bypass.<world>.anti-entity-interaction - 绕过指定世界的实体交互保护
  • wu.bypass.<world>.anti-pickup-drop-items - 绕过指定世界的丢弃/拿取物品保护
  • wu.bypass.<world>.anti-use-item - 绕过指定世界的使用物品保护
  • wu.bypass.change-gamemode - 拥有此权限 WU 将不会修改您的游戏模式
  • wu.bypass.cancel-player-collision - 拥有此权限 WU 将不会调整您的碰撞效果

如果您遇到问题或有功能建议,请在 GitHub Issues 提交。
本项目采用 MIT 许可证,详见 LICENSE 文件。

About

A Minecraft Plugin that provides lots of practical features and customizable settings for managing your worlds.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages