完善注释(添加文档注释),添加skinsrestorer皮肤加载支持功能(未经完整测试)

This commit is contained in:
xiaobai
2026-02-14 19:56:16 +08:00
parent b268a74eeb
commit 8c68028924
9 changed files with 540 additions and 59 deletions

View File

@@ -5,6 +5,25 @@ import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Level;
/**
* PlayerBlockLife插件主类 - 玩家生命方块系统的核心控制器
*
* <p>这个插件为Minecraft服务器添加了一个独特的游戏机制每个玩家拥有一定数量的生命方块
* 这些方块使用玩家的皮肤作为材质。当其他玩家挖光某个玩家的所有生命方块时,该玩家会被淘汰。</p>
*
* <p>主要功能:
* <ul>
* <li>管理玩家生命方块的生成和销毁</li>
* <li>处理玩家皮肤的获取和应用</li>
* <li>监控玩家生命值状态</li>
* <li>提供完整的命令和权限系统</li>
* <li>支持配置热重载和数据持久化</li>
* </ul>
*
* @author xiaobai
* @version 3.0.0-experimental-1.20.4
* @since 1.0.0
*/
public class PlayerBlockLife extends JavaPlugin {
private static PlayerBlockLife instance;
private PlayerBlockManager blockManager;
@@ -13,6 +32,22 @@ public class PlayerBlockLife extends JavaPlugin {
private ConfigManager configManager;
private MessageManager messageManager;
/**
* 插件启用时调用,执行初始化操作
*
* <p>初始化流程:
* <ol>
* <li>保存默认配置文件</li>
* <li>初始化所有管理器(注意依赖顺序)</li>
* <li>加载配置和消息数据</li>
* <li>注册事件监听器</li>
* <li>注册命令执行器</li>
* <li>加载玩家数据和皮肤缓存</li>
* <li>启动定时任务</li>
* </ol>
*
* @see #onDisable()
*/
@Override
public void onEnable() {
instance = this;
@@ -57,6 +92,18 @@ public class PlayerBlockLife extends JavaPlugin {
getLogger().info("§a========================================");
}
/**
* 插件禁用时调用,执行清理操作
*
* <p>执行以下清理操作:
* <ul>
* <li>保存玩家方块数据到文件</li>
* <li>保存皮肤缓存数据</li>
* <li>记录插件禁用日志</li>
* </ul>
*
* @see #onEnable()
*/
@Override
public void onDisable() {
// 保存数据
@@ -81,6 +128,16 @@ public class PlayerBlockLife extends JavaPlugin {
/**
* 插件的完整重载方法(用于命令)
*
* <p>重新加载所有插件配置和数据,包括:
* <ul>
* <li>主配置文件 (config.yml)</li>
* <li>消息配置文件 (messages.yml)</li>
* <li>玩家方块数据</li>
* <li>皮肤缓存数据</li>
* </ul>
*
* <p>这个方法通常由管理员通过/pblreload命令调用。</p>
*/
public void reloadPluginConfig() {
if (configManager != null) {
@@ -125,6 +182,14 @@ public class PlayerBlockLife extends JavaPlugin {
}, 1200L, 1200L);
}
/**
* 获取插件单例实例
*
* <p>提供全局访问点,允许其他类访问插件主实例。</p>
*
* @return PlayerBlockLife插件实例
* @throws IllegalStateException 如果插件尚未启用实例为null
*/
public static PlayerBlockLife getInstance() {
return instance;
}