Skip to content

The All-in-One player realm solution plugin, provide each player an individual world in server!

License

Notifications You must be signed in to change notification settings

Cnzw/charming-realm-system

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Charming Realm

project-title-bg

基于插件 SelfHomeMain 的高版本领域系统移植版本

CodeFactor Lines of code Lines of code GitHub branch checks state GitHub code size in bytes

概述

该插件提供每个玩家一个独立世界的功能,有效减少区块占用、卡顿、区块保存困难及档案损坏等问题。玩家可以自主管理自己的世界,或邀请其他玩家加入共同建造。 通过菜单,玩家可以管理领域的合作建设者,并选择是否将自己的领域展示到公共菜单中,以便其他玩家访问。 原帖地址

Realm Select

领域导航菜单和领域选择列表

Realm Create

领域创建菜单选择列表 - 动态Title

特性

斜体 内容代表原插件 SelfHomeMain 不同的特性,该版本目前更改原插件GUI的可读性和外观, 随着版本更新该插件会逐步修改其他可以改善的地方

  • 创建玩家独立世界 (支持超平坦 / 默认生存 / 及其他设定的模板地图)

  • 设置或更改独立世界出生点,信任名单

  • 独立世界世界边界,并且可以使用货币升级范围大小

  • 同步世界时间功能,季节等

  • 设置独立世界最大的Tiles数量

  • 用户界面缓存,插件的用户界面会缓存,下次打开无需重新生成

  • 领域设置面板,设置操作也可以由其他领域成员执行

  • 支持将创建的玩家领域统一放到文件夹下(playerrealms)管理

  • 支持离线玩家领域玩家头颅和领域名称(玩家称号前缀)展示

  • 分离出模板创建领域时的磁盘拷贝操作至线程池

  • 添加创建队列,默认5个线程处理玩家的领域创建请求

  • 模板选择菜单,支持动态界面Title刷新,按钮选择时自定义样式

  • 在指定菜单区域内展示玩家领域头像而非直接填充

  • 给予按钮不同的样式基于当前页数

  • 支持HexColor,使用 #83c22d 充当颜色代码

  • GUI中的物品名称现在也可以使用占位符 ...

权限系统重置

目前正在重构权限系统,包含的5个基础权限组为 Owner 所有者, Operator 管理者,Member 成员,和 Visitor 访问者 以及 Banned 被封禁

名称 建造 邀请 封禁 访问 设置可见性 最大晋升 设置出生点
Owner Operator
Operator Member
Member None
Visitor None
Banned None
  • 在领域主界面中你可以右键头颅图标打开该领域的设置面板 (如果你有权限的话),左键则打开你自己的领域设置面板 (如果有的话)
  • 使用指令 /realm invite/remove/ban <玩家名称> from <所有者名称> 操作指定领域玩家邀请/移除/封禁操作
  • 使用指令 /realm invite/remove/ban <玩家名称> 操作你的领域玩家邀请/移除/封禁操作
  • 当使用 /realm invite 后默认给予的权限是 Member, 若需要更改你需要去设置面板进行设置
  • 当使用 /realm remove 后该玩家的权限会变为 Visitor
  • 当使用 /realm ban 后该玩家的权限会变为 Banned

危险行为: 如果你希望你的 Operator 可以将其他成员的权限也提升至 Operator 则可以打开设置面板并启用面板中的 Enable perm proliferation 允许管理员 权限增生. 只不过不建议这样做

占位符

当前注册的占位符标识有2个分别是:SelfHomeMainrealm,这里只说明模块 realm 的占位符使用,关于占位符模块SelfHomeMain 的使用请请到 原帖地址

占位符名称 参数 介绍
%realm_world_player_<Name>% <Name> 领域创建者名称 当前领域内的在线玩家
%realm_time_created_<Name>% <Name> 领域创建者名称 领域创建时间

内部占位符

内部占位符通常在插件的GUI gui_<name>.yml和语言 message_cn.yml配置文件中使用,他们无法被placeholderAPI解析,也通常没有参数

占位符名称 介绍
{REALM_CURRENT_PLAYER} 当前领域内的在线玩家
{REALM_CURRENT_PLAYER} 领域创建时间
{REALM_PERMISSION} 该玩家在领域的权限组
{REALM_NAME} 领域名称 (完整名称+权限组)

待更新

内容 优先级 状态
更好看的UI适配 最高 95%
插件热重载 最高 50%
将GUI内部的Action操作解耦 较高 10%
玩家添加信任名单时不用在领域内执行 较高
领域配置成员在线时保持加载 正常 10%
PlaceholderAPI 支持玩家头颅展示 正常
更改配置文件记录创建者和创建时间 正常
领域列表基于页数自动判断按钮样式 正常
领域权限修改,信任GUI重置 正常 60%
将创建GUI的逻辑操作适配 bungee 最低 📌

待修复

项目中关于Placeholder的代码有部分存在着问题,包括不限于在 setPlaceholders(null, str); 字符串时没有传入OfflinePlayer,这样做会导致绝大部分插件的Placeholder调用失败. 后续修复应该重写插件API.java中的分支并默认传入OfflinePlayer (无论何时)

  • 插件无法进行热重载,出现 Variable.java 类的 ClassNotDefine (错误)
  • 插件输出消息给玩的时自动进行placeholder的解析 (跟进 → 懒得改)
  • 跟进领域创建gui中的创建判断,玩家拥有领域时无法打开界面 (已修复)
  • 配置文件GUI.yml 中,若按钮 CustomName 相同则会触发相同脚本 (以弃用)
  • 在gui菜单的物品lore中不支持调用luck-perms插件的占位符因为这些占位符需要读取在线/离线玩家实例 (使用静态文本实现)

特别说明

这是一个专门给服务器使用的插件,主要需求会依照服务器需求进行配置,您的需求可能会被延后,感谢谅解。

This is a plugin specially used for the server. The main requirements will be configured according to the server requirements. Your requirements may be delayed. Thank you for your understanding.

您可能会注意到,本插件使用了一些其他服务器的游戏资源和设计。对此,您可能会感到疑惑甚至愤怒:“这难道不是抄袭吗?” 事实上,这些资源仅用于确保GUI设计的一致性和美观性。而且,这些资源并不会通过本项目传播或被获取,因此不会涉及版权或其他法律问题。

You might notice that this plugin uses some game resources and designs from other servers. This may raise concerns or even anger, as you might think, "Isn't this plagiarism?" However, these resources are only used to ensure consistency and aesthetics in the GUI design. Moreover, these resources will not be distributed or obtained through this project, thus avoiding any copyright or legal issues.

部分材质来源于Minecraft服务器Origin Realm以及插件ItemsAdder。请注意,您不能以任何方式传播这些资源。

Some materials are sourced from the Minecraft server Origin Realm and the plugin ItemsAdder. Please note that you are not permitted to distribute these resources in any way.

About

The All-in-One player realm solution plugin, provide each player an individual world in server!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%