2026-02-14 20:15:20 +08:00
|
|
|
|
<!DOCTYPE HTML>
|
|
|
|
|
|
<html lang="zh">
|
|
|
|
|
|
<head>
|
2026-02-16 17:43:39 +08:00
|
|
|
|
<!-- Generated by javadoc (21) on Sat Feb 14 21:05:25 CST 2026 -->
|
2026-02-14 20:15:20 +08:00
|
|
|
|
<title>PlayerBlockManager</title>
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
|
|
|
|
<meta name="dc.created" content="2026-02-14">
|
|
|
|
|
|
<meta name="description" content="declaration: package: com.playerblocklife, class: PlayerBlockManager">
|
|
|
|
|
|
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
|
|
|
|
|
|
<script type="text/javascript" src="../../script.js"></script>
|
|
|
|
|
|
<script type="text/javascript" src="../../script-dir/jquery-3.7.1.min.js"></script>
|
|
|
|
|
|
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body class="class-declaration-page">
|
|
|
|
|
|
<script type="text/javascript">var pathtoroot = "../../";
|
|
|
|
|
|
loadScripts(document, 'script');</script>
|
|
|
|
|
|
<noscript>
|
|
|
|
|
|
<div>您的浏览器已禁用 JavaScript。</div>
|
|
|
|
|
|
</noscript>
|
|
|
|
|
|
<div class="flex-box">
|
|
|
|
|
|
<header role="banner" class="flex-header">
|
|
|
|
|
|
<nav role="navigation">
|
|
|
|
|
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
|
|
|
|
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="切换导航链接"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button>
|
|
|
|
|
|
<div class="skip-nav"><a href="#skip-navbar-top" title="跳过导航链接">跳过导航链接</a></div>
|
|
|
|
|
|
<ul id="navbar-top-firstrow" class="nav-list" title="导航">
|
|
|
|
|
|
<li><a href="package-summary.html">程序包</a></li>
|
|
|
|
|
|
<li class="nav-bar-cell1-rev">类</li>
|
|
|
|
|
|
<li><a href="class-use/PlayerBlockManager.html">使用</a></li>
|
|
|
|
|
|
<li><a href="package-tree.html">树</a></li>
|
|
|
|
|
|
<li><a href="../../index-files/index-1.html">索引</a></li>
|
|
|
|
|
|
<li><a href="../../help-doc.html#class">帮助</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
<ul class="sub-nav-list-small">
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<p>概要:</p>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li>嵌套</li>
|
|
|
|
|
|
<li>字段</li>
|
|
|
|
|
|
<li><a href="#constructor-summary">构造器</a></li>
|
|
|
|
|
|
<li><a href="#method-summary">方法</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<p>详细资料:</p>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li>字段</li>
|
|
|
|
|
|
<li><a href="#constructor-detail">构造器</a></li>
|
|
|
|
|
|
<li><a href="#method-detail">方法</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="sub-nav">
|
|
|
|
|
|
<div id="navbar-sub-list">
|
|
|
|
|
|
<ul class="sub-nav-list">
|
|
|
|
|
|
<li>概要: </li>
|
|
|
|
|
|
<li>嵌套 | </li>
|
|
|
|
|
|
<li>字段 | </li>
|
|
|
|
|
|
<li><a href="#constructor-summary">构造器</a> | </li>
|
|
|
|
|
|
<li><a href="#method-summary">方法</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
<ul class="sub-nav-list">
|
|
|
|
|
|
<li>详细资料: </li>
|
|
|
|
|
|
<li>字段 | </li>
|
|
|
|
|
|
<li><a href="#constructor-detail">构造器</a> | </li>
|
|
|
|
|
|
<li><a href="#method-detail">方法</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="nav-list-search"><a href="../../search.html">SEARCH</a>
|
|
|
|
|
|
<input type="text" id="search-input" disabled placeholder="搜索">
|
|
|
|
|
|
<input type="reset" id="reset-button" disabled value="reset">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
|
|
|
|
<span class="skip-nav" id="skip-navbar-top"></span></nav>
|
|
|
|
|
|
</header>
|
|
|
|
|
|
<div class="flex-content">
|
|
|
|
|
|
<main role="main">
|
|
|
|
|
|
<!-- ======== START OF CLASS DATA ======== -->
|
|
|
|
|
|
<div class="header">
|
|
|
|
|
|
<div class="sub-title"><span class="package-label-in-type">程序包</span> <a href="package-summary.html">com.playerblocklife</a></div>
|
|
|
|
|
|
<h1 title="类 PlayerBlockManager" class="title">类 PlayerBlockManager</h1>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="inheritance" title="继承树"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="java.lang中的类或接口" class="external-link">java.lang.Object</a>
|
|
|
|
|
|
<div class="inheritance">com.playerblocklife.PlayerBlockManager</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<section class="class-description" id="class-description">
|
|
|
|
|
|
<hr>
|
|
|
|
|
|
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">PlayerBlockManager</span>
|
|
|
|
|
|
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="java.lang中的类或接口" class="external-link">Object</a></span></div>
|
|
|
|
|
|
<div class="block">玩家方块管理器 - 负责管理玩家生命方块的核心组件
|
|
|
|
|
|
|
|
|
|
|
|
<p>主要职责:
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li>生成和放置玩家生命方块</li>
|
|
|
|
|
|
<li>管理方块位置和所有者映射关系</li>
|
|
|
|
|
|
<li>处理方块破坏和恢复逻辑</li>
|
|
|
|
|
|
<li>提供方块数据持久化存储</li>
|
|
|
|
|
|
<li>支持方块位置查询和验证</li>
|
|
|
|
|
|
<li>与SkinManager协同工作,确保方块正确显示玩家皮肤</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
<p><b>SkinsRestorer集成特性:</b>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li>通过SkinManager获取SkinsRestorer提供的玩家皮肤纹理</li>
|
|
|
|
|
|
<li>确保离线服务器上的方块显示正确的自定义皮肤</li>
|
|
|
|
|
|
<li>支持异步皮肤加载,避免方块放置阻塞</li>
|
|
|
|
|
|
<li>提供皮肤加载状态检查,确保皮肤就绪后再放置方块</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p>使用并发安全的数据结构确保多线程环境下的数据一致性。</p></div>
|
|
|
|
|
|
<dl class="notes">
|
|
|
|
|
|
<dt>从以下版本开始:</dt>
|
|
|
|
|
|
<dd>1.0.0</dd>
|
|
|
|
|
|
<dt>版本:</dt>
|
|
|
|
|
|
<dd>2.1.0</dd>
|
|
|
|
|
|
<dt>作者:</dt>
|
|
|
|
|
|
<dd>xiaobai</dd>
|
|
|
|
|
|
</dl>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
<section class="summary">
|
|
|
|
|
|
<ul class="summary-list">
|
|
|
|
|
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="constructor-summary" id="constructor-summary">
|
|
|
|
|
|
<h2>构造器概要</h2>
|
|
|
|
|
|
<div class="caption"><span>构造器</span></div>
|
|
|
|
|
|
<div class="summary-table two-column-summary">
|
|
|
|
|
|
<div class="table-header col-first">构造器</div>
|
|
|
|
|
|
<div class="table-header col-last">说明</div>
|
|
|
|
|
|
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(com.playerblocklife.PlayerBlockLife,com.playerblocklife.SkinManager)" class="member-name-link">PlayerBlockManager</a><wbr>(<a href="PlayerBlockLife.html" title="com.playerblocklife中的类">PlayerBlockLife</a> plugin,
|
|
|
|
|
|
<a href="SkinManager.html" title="com.playerblocklife中的类">SkinManager</a> skinManager)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color"> </div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<!-- ========== METHOD SUMMARY =========== -->
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="method-summary" id="method-summary">
|
|
|
|
|
|
<h2>方法概要</h2>
|
|
|
|
|
|
<div id="method-summary-table">
|
|
|
|
|
|
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">所有方法</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">实例方法</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">具体方法</button></div>
|
|
|
|
|
|
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
|
|
|
|
|
|
<div class="summary-table three-column-summary">
|
|
|
|
|
|
<div class="table-header col-first">修饰符和类型</div>
|
|
|
|
|
|
<div class="table-header col-second">方法</div>
|
|
|
|
|
|
<div class="table-header col-last">说明</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clearPlayerBlocks(java.util.UUID)" class="member-name-link">clearPlayerBlocks</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">清除玩家的所有生命方块</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#generateLifeBlocksForPlayer(org.bukkit.entity.Player,int,int,boolean,int)" class="member-name-link">generateLifeBlocksForPlayer</a><wbr>(org.bukkit.entity.Player player,
|
|
|
|
|
|
int blockAmount,
|
|
|
|
|
|
int spreadRange,
|
|
|
|
|
|
boolean requireOpenSky,
|
|
|
|
|
|
int maxAttempts)</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">为玩家生成指定数量的生命方块</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html" title="java.util中的类或接口" class="external-link">Map</a><wbr><org.bukkit.Location,<wbr><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a>></code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAllBlockOwners()" class="member-name-link">getAllBlockOwners</a>()</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取所有方块的位置和所有者</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html" title="java.util中的类或接口" class="external-link">Map</a><wbr><<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="java.util中的类或接口" class="external-link">List</a><org.bukkit.Location>></code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAllPlayerBlocks()" class="member-name-link">getAllPlayerBlocks</a>()</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取所有玩家的方块数据</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a></code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBlockOwner(org.bukkit.Location)" class="member-name-link">getBlockOwner</a><wbr>(org.bukkit.Location location)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">检查方块是否属于某个玩家</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.bukkit.Location</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNearestBlock(org.bukkit.entity.Player)" class="member-name-link">getNearestBlock</a><wbr>(org.bukkit.entity.Player player)</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取距离玩家最近的方块</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="java.util中的类或接口" class="external-link">List</a><wbr><<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="java.lang中的类或接口" class="external-link">String</a>></code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPlayerBlockLocations(java.util.UUID)" class="member-name-link">getPlayerBlockLocations</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取玩家的生命方块位置列表(用于显示)</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="java.util中的类或接口" class="external-link">List</a><wbr><org.bukkit.Location></code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPlayerBlocks(java.util.UUID)" class="member-name-link">getPlayerBlocks</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取玩家的所有生命方块位置</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPlayerBlocksCount()" class="member-name-link">getPlayerBlocksCount</a>()</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取已注册玩家的数量</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRemainingBlocks(java.util.UUID)" class="member-name-link">getRemainingBlocks</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取玩家剩余方块数量</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html" title="java.util中的类或接口" class="external-link">Map</a><wbr><<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="java.lang中的类或接口" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="java.lang中的类或接口" class="external-link">Object</a>></code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getStats()" class="member-name-link">getStats</a>()</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取所有生命方块的统计信息</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTotalBlocksCount()" class="member-name-link">getTotalBlocksCount</a>()</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">获取总方块数量</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasLifeBlocks(java.util.UUID)" class="member-name-link">hasLifeBlocks</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">检查玩家是否有生命方块</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isLifeBlock(org.bukkit.Location)" class="member-name-link">isLifeBlock</a><wbr>(org.bukkit.Location location)</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">检查位置是否包含生命方块</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#loadData()" class="member-name-link">loadData</a>()</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">加载数据</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#regeneratePlayerBlocks(org.bukkit.entity.Player)" class="member-name-link">regeneratePlayerBlocks</a><wbr>(org.bukkit.entity.Player player)</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">重新生成玩家的生命方块</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeBlock(org.bukkit.Location,org.bukkit.entity.Player)" class="member-name-link">removeBlock</a><wbr>(org.bukkit.Location location,
|
|
|
|
|
|
org.bukkit.entity.Player breaker)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">移除方块(当被挖掘时)</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
|
|
|
|
|
|
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#saveData()" class="member-name-link">saveData</a>()</code></div>
|
|
|
|
|
|
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">保存数据</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
|
|
|
|
|
|
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setLifeBlocks(org.bukkit.entity.Player,org.bukkit.Location)" class="member-name-link">setLifeBlocks</a><wbr>(org.bukkit.entity.Player player,
|
|
|
|
|
|
org.bukkit.Location center)</code></div>
|
|
|
|
|
|
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
|
|
|
|
|
|
<div class="block">为玩家设置生命方块(兼容旧方法)</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="inherited-list">
|
|
|
|
|
|
<h3 id="methods-inherited-from-class-java.lang.Object">从类继承的方法 java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="java.lang中的类或接口" class="external-link">Object</a></h3>
|
|
|
|
|
|
<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#clone()" title="java.lang中的类或接口" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="java.lang中的类或接口" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#finalize()" title="java.lang中的类或接口" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#getClass()" title="java.lang中的类或接口" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#hashCode()" title="java.lang中的类或接口" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notify()" title="java.lang中的类或接口" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notifyAll()" title="java.lang中的类或接口" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#toString()" title="java.lang中的类或接口" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait()" title="java.lang中的类或接口" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long)" title="java.lang中的类或接口" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="java.lang中的类或接口" class="external-link">wait</a></code></div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
<section class="details">
|
|
|
|
|
|
<ul class="details-list">
|
|
|
|
|
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="constructor-details" id="constructor-detail">
|
|
|
|
|
|
<h2>构造器详细资料</h2>
|
|
|
|
|
|
<ul class="member-list">
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="<init>(com.playerblocklife.PlayerBlockLife,com.playerblocklife.SkinManager)">
|
|
|
|
|
|
<h3>PlayerBlockManager</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">PlayerBlockManager</span><wbr><span class="parameters">(<a href="PlayerBlockLife.html" title="com.playerblocklife中的类">PlayerBlockLife</a> plugin,
|
|
|
|
|
|
<a href="SkinManager.html" title="com.playerblocklife中的类">SkinManager</a> skinManager)</span></div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<!-- ============ METHOD DETAIL ========== -->
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="method-details" id="method-detail">
|
|
|
|
|
|
<h2>方法详细资料</h2>
|
|
|
|
|
|
<ul class="member-list">
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="setLifeBlocks(org.bukkit.entity.Player,org.bukkit.Location)">
|
|
|
|
|
|
<h3>setLifeBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">setLifeBlocks</span><wbr><span class="parameters">(org.bukkit.entity.Player player,
|
|
|
|
|
|
org.bukkit.Location center)</span></div>
|
|
|
|
|
|
<div class="block">为玩家设置生命方块(兼容旧方法)</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="generateLifeBlocksForPlayer(org.bukkit.entity.Player,int,int,boolean,int)">
|
|
|
|
|
|
<h3>generateLifeBlocksForPlayer</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">generateLifeBlocksForPlayer</span><wbr><span class="parameters">(org.bukkit.entity.Player player,
|
|
|
|
|
|
int blockAmount,
|
|
|
|
|
|
int spreadRange,
|
|
|
|
|
|
boolean requireOpenSky,
|
|
|
|
|
|
int maxAttempts)</span></div>
|
|
|
|
|
|
<div class="block">为玩家生成指定数量的生命方块
|
|
|
|
|
|
|
|
|
|
|
|
<p>此方法负责生成玩家的生命方块,包括以下步骤:
|
|
|
|
|
|
<ol>
|
|
|
|
|
|
<li>检查玩家是否已有生命方块</li>
|
|
|
|
|
|
<li>验证玩家皮肤是否已从SkinsRestorer或其他来源加载完成</li>
|
|
|
|
|
|
<li>在指定范围内寻找合适的放置位置</li>
|
|
|
|
|
|
<li>放置带有玩家皮肤纹理的玩家头颅方块</li>
|
|
|
|
|
|
<li>记录方块位置和所有者关系</li>
|
|
|
|
|
|
<li>保存数据并返回生成结果</li>
|
|
|
|
|
|
</ol>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p><b>皮肤加载检查:</b>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li>调用skinManager.isSkinLoaded()检查皮肤是否就绪</li>
|
|
|
|
|
|
<li>如果皮肤未加载,方块生成将失败</li>
|
|
|
|
|
|
<li>确保离线服务器通过SkinsRestorer获取的皮肤能正确应用</li>
|
|
|
|
|
|
<li>避免放置默认Steve皮肤的方块</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</p></div>
|
|
|
|
|
|
<dl class="notes">
|
|
|
|
|
|
<dt>参数:</dt>
|
|
|
|
|
|
<dd><code>player</code> - 目标玩家</dd>
|
|
|
|
|
|
<dd><code>blockAmount</code> - 要生成的方块数量</dd>
|
|
|
|
|
|
<dd><code>spreadRange</code> - 生成范围(以玩家为中心的正方形边长的一半)</dd>
|
|
|
|
|
|
<dd><code>requireOpenSky</code> - 是否需要开阔天空(上方无方块覆盖)</dd>
|
|
|
|
|
|
<dd><code>maxAttempts</code> - 寻找合适位置的最大尝试次数</dd>
|
|
|
|
|
|
<dt>返回:</dt>
|
|
|
|
|
|
<dd>生成成功返回true,失败返回false</dd>
|
|
|
|
|
|
<dt>另请参阅:</dt>
|
|
|
|
|
|
<dd>
|
|
|
|
|
|
<ul class="tag-list-long">
|
|
|
|
|
|
<li><a href="SkinManager.html#isSkinLoaded(java.util.UUID)"><code>SkinManager.isSkinLoaded(UUID)</code></a></li>
|
|
|
|
|
|
<li><code>SkinManager.getSkinFromSkinsRestorer(Player)</code></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
</dl>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getBlockOwner(org.bukkit.Location)">
|
|
|
|
|
|
<h3>getBlockOwner</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a></span> <span class="element-name">getBlockOwner</span><wbr><span class="parameters">(org.bukkit.Location location)</span></div>
|
|
|
|
|
|
<div class="block">检查方块是否属于某个玩家</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="removeBlock(org.bukkit.Location,org.bukkit.entity.Player)">
|
|
|
|
|
|
<h3>removeBlock</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">removeBlock</span><wbr><span class="parameters">(org.bukkit.Location location,
|
|
|
|
|
|
org.bukkit.entity.Player breaker)</span></div>
|
|
|
|
|
|
<div class="block">移除方块(当被挖掘时)</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getRemainingBlocks(java.util.UUID)">
|
|
|
|
|
|
<h3>getRemainingBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name">getRemainingBlocks</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</span></div>
|
|
|
|
|
|
<div class="block">获取玩家剩余方块数量</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="hasLifeBlocks(java.util.UUID)">
|
|
|
|
|
|
<h3>hasLifeBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">hasLifeBlocks</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</span></div>
|
|
|
|
|
|
<div class="block">检查玩家是否有生命方块</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getPlayerBlocks(java.util.UUID)">
|
|
|
|
|
|
<h3>getPlayerBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="java.util中的类或接口" class="external-link">List</a><org.bukkit.Location></span> <span class="element-name">getPlayerBlocks</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</span></div>
|
|
|
|
|
|
<div class="block">获取玩家的所有生命方块位置</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="clearPlayerBlocks(java.util.UUID)">
|
|
|
|
|
|
<h3>clearPlayerBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">clearPlayerBlocks</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</span></div>
|
|
|
|
|
|
<div class="block">清除玩家的所有生命方块</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="regeneratePlayerBlocks(org.bukkit.entity.Player)">
|
|
|
|
|
|
<h3>regeneratePlayerBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">regeneratePlayerBlocks</span><wbr><span class="parameters">(org.bukkit.entity.Player player)</span></div>
|
|
|
|
|
|
<div class="block">重新生成玩家的生命方块</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getPlayerBlocksCount()">
|
|
|
|
|
|
<h3>getPlayerBlocksCount</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name">getPlayerBlocksCount</span>()</div>
|
|
|
|
|
|
<div class="block">获取已注册玩家的数量</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getTotalBlocksCount()">
|
|
|
|
|
|
<h3>getTotalBlocksCount</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name">getTotalBlocksCount</span>()</div>
|
|
|
|
|
|
<div class="block">获取总方块数量</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="loadData()">
|
|
|
|
|
|
<h3>loadData</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">loadData</span>()</div>
|
|
|
|
|
|
<div class="block">加载数据</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="saveData()">
|
|
|
|
|
|
<h3>saveData</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">saveData</span>()</div>
|
|
|
|
|
|
<div class="block">保存数据</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getAllPlayerBlocks()">
|
|
|
|
|
|
<h3>getAllPlayerBlocks</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html" title="java.util中的类或接口" class="external-link">Map</a><<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="java.util中的类或接口" class="external-link">List</a><org.bukkit.Location>></span> <span class="element-name">getAllPlayerBlocks</span>()</div>
|
|
|
|
|
|
<div class="block">获取所有玩家的方块数据</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getAllBlockOwners()">
|
|
|
|
|
|
<h3>getAllBlockOwners</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html" title="java.util中的类或接口" class="external-link">Map</a><org.bukkit.Location,<wbr><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a>></span> <span class="element-name">getAllBlockOwners</span>()</div>
|
|
|
|
|
|
<div class="block">获取所有方块的位置和所有者</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="isLifeBlock(org.bukkit.Location)">
|
|
|
|
|
|
<h3>isLifeBlock</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">isLifeBlock</span><wbr><span class="parameters">(org.bukkit.Location location)</span></div>
|
|
|
|
|
|
<div class="block">检查位置是否包含生命方块</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getPlayerBlockLocations(java.util.UUID)">
|
|
|
|
|
|
<h3>getPlayerBlockLocations</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html" title="java.util中的类或接口" class="external-link">List</a><<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="java.lang中的类或接口" class="external-link">String</a>></span> <span class="element-name">getPlayerBlockLocations</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/UUID.html" title="java.util中的类或接口" class="external-link">UUID</a> playerId)</span></div>
|
|
|
|
|
|
<div class="block">获取玩家的生命方块位置列表(用于显示)</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getNearestBlock(org.bukkit.entity.Player)">
|
|
|
|
|
|
<h3>getNearestBlock</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">org.bukkit.Location</span> <span class="element-name">getNearestBlock</span><wbr><span class="parameters">(org.bukkit.entity.Player player)</span></div>
|
|
|
|
|
|
<div class="block">获取距离玩家最近的方块</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<section class="detail" id="getStats()">
|
|
|
|
|
|
<h3>getStats</h3>
|
|
|
|
|
|
<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html" title="java.util中的类或接口" class="external-link">Map</a><<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="java.lang中的类或接口" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="java.lang中的类或接口" class="external-link">Object</a>></span> <span class="element-name">getStats</span>()</div>
|
|
|
|
|
|
<div class="block">获取所有生命方块的统计信息</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
<!-- ========= END OF CLASS DATA ========= -->
|
|
|
|
|
|
</main>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
</html>
|