<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.alsojiangshi.top/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ChengZhiFy</id>
	<title>TJUUSWiki - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alsojiangshi.top/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ChengZhiFy"/>
	<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/ChengZhiFy"/>
	<updated>2026-04-14T06:40:49Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E5%B0%8F%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&amp;diff=43</id>
		<title>小游戏服务端配置教程</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E5%B0%8F%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&amp;diff=43"/>
		<updated>2025-11-30T13:40:47Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TJUUS 目前运营过的大部分小游戏均为地图 + 数据包形式，这篇教程提供这种类型的服务端配置教程，以让后续的小游戏服务端更加方便。&lt;br /&gt;
&lt;br /&gt;
=== 服务端重要构成部分 | Crucial Components ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;logs&#039;&#039;&#039; 文件夹 | 存放服务器运行产生的日志文件&lt;br /&gt;
* &#039;&#039;&#039;plugins&#039;&#039;&#039; 文件夹 | 存放服务器插件&lt;br /&gt;
* 三个 &#039;&#039;&#039;world&#039;&#039;&#039; 文件夹 | 服务器三个世界维度的地图存档&lt;br /&gt;
* &#039;&#039;&#039;server.properties&#039;&#039;&#039; | 服务端配置信息&lt;br /&gt;
* &#039;&#039;&#039;eula.txt&#039;&#039;&#039; | 开服需要遵守的&#039;&#039;&#039;最终用户许可协议&#039;&#039;&#039;&lt;br /&gt;
* 服务端核心&lt;br /&gt;
&lt;br /&gt;
=== 在哪下载服务端核心 | Where to download server jar? ===&lt;br /&gt;
参考 [[常用服务端资源指南]]&lt;br /&gt;
&lt;br /&gt;
=== 配置教程 | Tutorial ===&lt;br /&gt;
请确保你的电脑拥有&#039;&#039;&#039;兼容你所需要运行的服务端&#039;&#039;&#039;的 Java 环境, (Windows) 为了方便请加入到&#039;&#039;&#039;系统环境变量&#039;&#039;&#039;中.&lt;br /&gt;
&lt;br /&gt;
（我推荐本地部署完毕后再上传至面板）&lt;br /&gt;
&lt;br /&gt;
获取与小游戏地图游戏版本&#039;&#039;&#039;相同&#039;&#039;&#039;的 Minecraft 服务端核心，移动至一个新文件夹里。新建一个&#039;&#039;&#039;文本文档&#039;&#039;&#039;, 写入以下内容:&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
java -jar server-core.jar nogui&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;server-core.jar 为你的服务端核心, nogui 是为了禁用掉 Minecraft 在较新版本服务端核心中自带的图形化控制台.&lt;br /&gt;
&lt;br /&gt;
将文件类型改为 .bat 并运行。&lt;br /&gt;
&lt;br /&gt;
此时文件夹内会生成一个 &#039;&#039;&#039;eula.txt&#039;&#039;&#039; 文件，你需要将里面的 eula 布尔值改为 &#039;&#039;&#039;true&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
再次运行 bat 文件, 不出意外这次服务端将会正常启动.&lt;br /&gt;
&lt;br /&gt;
我们找到 server.properties 文件, 将部分配置改成下列所示:&amp;lt;syntaxhighlight lang=&amp;quot;properties&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
enable-command-block=true&lt;br /&gt;
online-mode=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;接着, 将文件夹内 world 文件夹删除, 并将你需要导入的小游戏地图文件夹名称改为 world 后导入。&lt;br /&gt;
&lt;br /&gt;
=== 语音组件和全局语音组件（可选） ===&lt;br /&gt;
我推荐前往 [https://modrinth.com/plugin/simple-voice-chat/ Modrinth] 下载 &#039;&#039;&#039;Simple Voice Chat&#039;&#039;&#039; 的全类型全版本资源, 并将其加入到&#039;&#039;&#039;服务端&#039;&#039;&#039;文件夹的 &#039;&#039;&#039;mods / plugins&#039;&#039;&#039; 文件夹。&lt;br /&gt;
&lt;br /&gt;
并将 &#039;&#039;&#039;voicechat-server.properties&#039;&#039;&#039; 中的 &#039;&#039;&#039;port&#039;&#039;&#039; 与 &#039;&#039;&#039;MCSM 面板&#039;&#039;&#039;中对应。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fabric 端可使用 [https://modrinth.com/mod/enhanced-groups Simple Voice Chat Enhanced Groups] 实现全局语音 (仅 Fabric 可用)&lt;br /&gt;
&lt;br /&gt;
Forge 端请尝试 [https://modrinth.com/mod/connector Sinytra Connector] 来兼容上文的 Fabric 模组&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
对于支持 Bukkit 插件的服务端，可以参考以下代码自行构建一个插件并放入服务端的 plugins 文件夹中。&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package me.chengzhify.autoJoinVoiceGroup;&lt;br /&gt;
&lt;br /&gt;
import de.maxhenkel.voicechat.api.BukkitVoicechatService;&lt;br /&gt;
import org.apache.logging.log4j.LogManager;&lt;br /&gt;
import org.apache.logging.log4j.Logger;&lt;br /&gt;
import org.bukkit.Bukkit;&lt;br /&gt;
import org.bukkit.plugin.java.JavaPlugin;&lt;br /&gt;
&lt;br /&gt;
import javax.annotation.Nullable;&lt;br /&gt;
import java.util.UUID;&lt;br /&gt;
&lt;br /&gt;
public final class AutoJoinVoiceGroup extends JavaPlugin {&lt;br /&gt;
    public static UUID uuid = UUID.randomUUID();&lt;br /&gt;
    private static AutoJoinVoiceGroup instance;&lt;br /&gt;
    public static final Logger LOGGER = LogManager.getLogger(&amp;quot;AutoJoinVoiceGroup&amp;quot;);&lt;br /&gt;
    @Nullable&lt;br /&gt;
    private VoicechatImpl voicechatPlugin;&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onEnable() {&lt;br /&gt;
        instance = this;&lt;br /&gt;
        // Plugin startup logic&lt;br /&gt;
        if (!getServer().getPluginManager().isPluginEnabled(&amp;quot;voicechat&amp;quot;)) {&lt;br /&gt;
            getLogger().severe(&amp;quot;voicechat not found! Disabling...&amp;quot;);&lt;br /&gt;
            getServer().getPluginManager().disablePlugin(this);&lt;br /&gt;
        } else {&lt;br /&gt;
            BukkitVoicechatService service = getServer().getServicesManager().load(BukkitVoicechatService.class);&lt;br /&gt;
            if (service != null) {&lt;br /&gt;
                voicechatPlugin = new VoicechatImpl();&lt;br /&gt;
                service.registerPlugin(voicechatPlugin);&lt;br /&gt;
                LOGGER.info(&amp;quot;Successfully registered voicegroup plugin&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                LOGGER.info(&amp;quot;Failed to register voicegroup plugin&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        Bukkit.getPluginManager().registerEvents(new PlayerJoinListener(), this);&lt;br /&gt;
        Bukkit.getScheduler().runTaskLater(this, () -&amp;gt; {&lt;br /&gt;
            uuid = VoicechatImpl.createGroup(&amp;quot;全局&amp;quot;, &amp;quot;语音频道&amp;quot;);&lt;br /&gt;
        }, 60L);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onDisable() {&lt;br /&gt;
        // Plugin shutdown logic&lt;br /&gt;
        if (voicechatPlugin != null) {&lt;br /&gt;
            getServer().getServicesManager().unregister(voicechatPlugin);&lt;br /&gt;
        }&lt;br /&gt;
        instance = null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static AutoJoinVoiceGroup getInstance() {&lt;br /&gt;
        return instance;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package me.chengzhify.autoJoinVoiceGroup;&lt;br /&gt;
&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatConnection;&lt;br /&gt;
import org.bukkit.Bukkit;&lt;br /&gt;
import org.bukkit.event.EventHandler;&lt;br /&gt;
import org.bukkit.event.Listener;&lt;br /&gt;
import org.bukkit.event.player.PlayerJoinEvent;&lt;br /&gt;
&lt;br /&gt;
public class PlayerJoinListener implements Listener {&lt;br /&gt;
&lt;br /&gt;
    @EventHandler&lt;br /&gt;
    public void onPlayerJoin(PlayerJoinEvent event) {&lt;br /&gt;
        event.getPlayer().sendMessage(&amp;quot;§a正在尝试将你连接至全局语音频道...&amp;quot;);&lt;br /&gt;
        Bukkit.getScheduler().runTaskLaterAsynchronously(AutoJoinVoiceGroup.getInstance(), () -&amp;gt; {&lt;br /&gt;
            VoicechatConnection connection = VoicechatImpl.voiceServerApi.getConnectionOf(event.getPlayer().getUniqueId());&lt;br /&gt;
            if (connection == null) {&lt;br /&gt;
                event.getPlayer().sendMessage(&amp;quot;§c连接失败! 请检查你的 SimpleVoiceChat 模组是否正确启用!&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            connection.setGroup(VoicechatImpl.voiceServerApi.getGroup(AutoJoinVoiceGroup.uuid));&lt;br /&gt;
            event.getPlayer().sendMessage(&amp;quot;§a你已成功连接至全局语音频道!&amp;quot;);&lt;br /&gt;
        }, 20L * 3L); // 延迟3秒执行，确保玩家已连接到语音服务器&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package me.chengzhify.autoJoinVoiceGroup;&lt;br /&gt;
&lt;br /&gt;
import de.maxhenkel.voicechat.api.Group;&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatApi;&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatPlugin;&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatServerApi;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.EventRegistration;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.JoinGroupEvent;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.LeaveGroupEvent;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.VoicechatServerStartedEvent;&lt;br /&gt;
import org.bukkit.Bukkit;&lt;br /&gt;
import org.bukkit.ChatColor;&lt;br /&gt;
import org.bukkit.entity.Player;&lt;br /&gt;
&lt;br /&gt;
import java.util.UUID;&lt;br /&gt;
&lt;br /&gt;
import static org.apache.logging.log4j.LogManager.getLogger;&lt;br /&gt;
&lt;br /&gt;
public class VoicechatImpl implements VoicechatPlugin {&lt;br /&gt;
    public static VoicechatServerApi voiceServerApi;&lt;br /&gt;
    private static final AutoJoinVoiceGroup instance = AutoJoinVoiceGroup.getInstance();&lt;br /&gt;
    private static final boolean voiceLog = instance.getConfig().getBoolean(&amp;quot;voice-group-console-log&amp;quot;);&lt;br /&gt;
    @Override&lt;br /&gt;
    public String getPluginId() {&lt;br /&gt;
        return &amp;quot;AutoJoinVoiceGroup&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void initialize(VoicechatApi api) {&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void registerEvents(EventRegistration registration) {&lt;br /&gt;
        registration.registerEvent(VoicechatServerStartedEvent.class, this::onVoiceServerStart);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void onVoiceServerStart(VoicechatServerStartedEvent event) {&lt;br /&gt;
        voiceServerApi = event.getVoicechat();&lt;br /&gt;
        System.out.println(voiceServerApi);&lt;br /&gt;
        getLogger().info(&amp;quot;[VoiceChat] API 已获取，可以创建语音频道了！&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static UUID createGroup(String name, String team) {&lt;br /&gt;
        Group g = voiceServerApi.groupBuilder()&lt;br /&gt;
                .setPersistent(true)&lt;br /&gt;
                .setName(name + team) // The name of the group&lt;br /&gt;
                .setType(Group.Type.OPEN)&lt;br /&gt;
                .build();&lt;br /&gt;
        if (voiceLog) {&lt;br /&gt;
            getLogger().info(&amp;quot;[VoiceGroup] &amp;quot; + name + team + &amp;quot; 语音组已创建&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        return g.getId();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Simple Voice Chat 提供了它的 [https://modrepo.de/minecraft/voicechat/api/overview API 文档], 这方便我们基于它开发一些更有意思的拓展组件。&lt;br /&gt;
&lt;br /&gt;
=== 皮肤恢复组件（可选） ===&lt;br /&gt;
[https://modrinth.com/plugin/skinsrestorer 皮肤恢复插件 (SkinRestorer)]: (较新的 MC 版本也支持模组服，服务端侧)&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/skinrestorer 皮肤恢复模组 (SkinRestorer)]: （服务端侧，个人客户端无需安装）&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E7%94%A8%E6%88%B7:ChengZhiFy&amp;diff=42</id>
		<title>用户:ChengZhiFy</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E7%94%A8%E6%88%B7:ChengZhiFy&amp;diff=42"/>
		<updated>2025-11-30T13:33:24Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Minecraft 启动。&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E5%B0%8F%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&amp;diff=41</id>
		<title>小游戏服务端配置教程</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E5%B0%8F%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&amp;diff=41"/>
		<updated>2025-11-30T13:26:13Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TJUUS 目前运营过的大部分小游戏均为地图 + 数据包形式，这篇教程提供这种类型的服务端配置教程，以让后续的小游戏服务端更加方便。&lt;br /&gt;
&lt;br /&gt;
=== 服务端重要构成部分 | Crucial Components ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;logs&#039;&#039;&#039; 文件夹 | 存放服务器运行产生的日志文件&lt;br /&gt;
* &#039;&#039;&#039;plugins&#039;&#039;&#039; 文件夹 | 存放服务器插件&lt;br /&gt;
* 三个 &#039;&#039;&#039;world&#039;&#039;&#039; 文件夹 | 服务器三个世界维度的地图存档&lt;br /&gt;
* &#039;&#039;&#039;server.properties&#039;&#039;&#039; | 服务端配置信息&lt;br /&gt;
* &#039;&#039;&#039;eula.txt&#039;&#039;&#039; | 开服需要遵守的&#039;&#039;&#039;最终用户许可协议&#039;&#039;&#039;&lt;br /&gt;
* 服务端核心&lt;br /&gt;
&lt;br /&gt;
=== 在哪下载服务端核心 | Where to download server jar? ===&lt;br /&gt;
参考 [[常用服务端资源指南]]&lt;br /&gt;
&lt;br /&gt;
=== 配置教程 | Tutorial ===&lt;br /&gt;
请确保你的电脑拥有&#039;&#039;&#039;兼容你所需要运行的服务端&#039;&#039;&#039;的 Java 环境, (Windows) 为了方便请加入到&#039;&#039;&#039;系统环境变量&#039;&#039;&#039;中.&lt;br /&gt;
&lt;br /&gt;
（我推荐本地部署完毕后再上传至面板）&lt;br /&gt;
&lt;br /&gt;
获取与小游戏地图游戏版本&#039;&#039;&#039;相同&#039;&#039;&#039;的 Minecraft 服务端核心，移动至一个新文件夹里。新建一个&#039;&#039;&#039;文本文档&#039;&#039;&#039;, 写入以下内容:&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
java -jar server-core.jar nogui&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;server-core.jar 为你的服务端核心, nogui 是为了禁用掉 Minecraft 在较新版本服务端核心中自带的图形化控制台.&lt;br /&gt;
&lt;br /&gt;
将文件类型改为 .bat 并运行。&lt;br /&gt;
&lt;br /&gt;
此时文件夹内会生成一个 &#039;&#039;&#039;eula.txt&#039;&#039;&#039; 文件，你需要将里面的 eula 布尔值改为 &#039;&#039;&#039;true&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
再次运行 bat 文件, 不出意外这次服务端将会正常启动.&lt;br /&gt;
&lt;br /&gt;
我们找到 server.properties 文件, 将部分配置改成下列所示:&amp;lt;syntaxhighlight lang=&amp;quot;properties&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
enable-command-block=true&lt;br /&gt;
online-mode=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;接着, 将文件夹内 world 文件夹删除, 并将你需要导入的小游戏地图文件夹名称改为 world 后导入。&lt;br /&gt;
&lt;br /&gt;
=== 语音组件和全局语音组件（可选） ===&lt;br /&gt;
我推荐前往 [https://modrinth.com/plugin/simple-voice-chat/ Modrinth] 下载 &#039;&#039;&#039;Simple Voice Chat&#039;&#039;&#039; 的全类型全版本资源, 并将其加入到&#039;&#039;&#039;服务端&#039;&#039;&#039;文件夹的 &#039;&#039;&#039;mods / plugins&#039;&#039;&#039; 文件夹。&lt;br /&gt;
&lt;br /&gt;
并将 &#039;&#039;&#039;voicechat-server.properties&#039;&#039;&#039; 中的 &#039;&#039;&#039;port&#039;&#039;&#039; 与 &#039;&#039;&#039;MCSM 面板&#039;&#039;&#039;中对应。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fabric 端可使用 [https://modrinth.com/mod/enhanced-groups Simple Voice Chat Enhanced Groups] 实现全局语音 (仅 Fabric 可用)&lt;br /&gt;
&lt;br /&gt;
Forge 端暂无解决办法&lt;br /&gt;
&lt;br /&gt;
对于支持 Bukkit 插件的服务端，可以参考以下代码自行构建一个插件并放入服务端的 plugins 文件夹中。&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package me.chengzhify.autoJoinVoiceGroup;&lt;br /&gt;
&lt;br /&gt;
import de.maxhenkel.voicechat.api.BukkitVoicechatService;&lt;br /&gt;
import org.apache.logging.log4j.LogManager;&lt;br /&gt;
import org.apache.logging.log4j.Logger;&lt;br /&gt;
import org.bukkit.Bukkit;&lt;br /&gt;
import org.bukkit.plugin.java.JavaPlugin;&lt;br /&gt;
&lt;br /&gt;
import javax.annotation.Nullable;&lt;br /&gt;
import java.util.UUID;&lt;br /&gt;
&lt;br /&gt;
public final class AutoJoinVoiceGroup extends JavaPlugin {&lt;br /&gt;
    public static UUID uuid = UUID.randomUUID();&lt;br /&gt;
    private static AutoJoinVoiceGroup instance;&lt;br /&gt;
    public static final Logger LOGGER = LogManager.getLogger(&amp;quot;AutoJoinVoiceGroup&amp;quot;);&lt;br /&gt;
    @Nullable&lt;br /&gt;
    private VoicechatImpl voicechatPlugin;&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onEnable() {&lt;br /&gt;
        instance = this;&lt;br /&gt;
        // Plugin startup logic&lt;br /&gt;
        if (!getServer().getPluginManager().isPluginEnabled(&amp;quot;voicechat&amp;quot;)) {&lt;br /&gt;
            getLogger().severe(&amp;quot;voicechat not found! Disabling...&amp;quot;);&lt;br /&gt;
            getServer().getPluginManager().disablePlugin(this);&lt;br /&gt;
        } else {&lt;br /&gt;
            BukkitVoicechatService service = getServer().getServicesManager().load(BukkitVoicechatService.class);&lt;br /&gt;
            if (service != null) {&lt;br /&gt;
                voicechatPlugin = new VoicechatImpl();&lt;br /&gt;
                service.registerPlugin(voicechatPlugin);&lt;br /&gt;
                LOGGER.info(&amp;quot;Successfully registered voicegroup plugin&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                LOGGER.info(&amp;quot;Failed to register voicegroup plugin&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        Bukkit.getPluginManager().registerEvents(new PlayerJoinListener(), this);&lt;br /&gt;
        Bukkit.getScheduler().runTaskLater(this, () -&amp;gt; {&lt;br /&gt;
            uuid = VoicechatImpl.createGroup(&amp;quot;全局&amp;quot;, &amp;quot;语音频道&amp;quot;);&lt;br /&gt;
        }, 60L);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onDisable() {&lt;br /&gt;
        // Plugin shutdown logic&lt;br /&gt;
        if (voicechatPlugin != null) {&lt;br /&gt;
            getServer().getServicesManager().unregister(voicechatPlugin);&lt;br /&gt;
        }&lt;br /&gt;
        instance = null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static AutoJoinVoiceGroup getInstance() {&lt;br /&gt;
        return instance;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package me.chengzhify.autoJoinVoiceGroup;&lt;br /&gt;
&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatConnection;&lt;br /&gt;
import org.bukkit.Bukkit;&lt;br /&gt;
import org.bukkit.event.EventHandler;&lt;br /&gt;
import org.bukkit.event.Listener;&lt;br /&gt;
import org.bukkit.event.player.PlayerJoinEvent;&lt;br /&gt;
&lt;br /&gt;
public class PlayerJoinListener implements Listener {&lt;br /&gt;
&lt;br /&gt;
    @EventHandler&lt;br /&gt;
    public void onPlayerJoin(PlayerJoinEvent event) {&lt;br /&gt;
        event.getPlayer().sendMessage(&amp;quot;§a正在尝试将你连接至全局语音频道...&amp;quot;);&lt;br /&gt;
        Bukkit.getScheduler().runTaskLaterAsynchronously(AutoJoinVoiceGroup.getInstance(), () -&amp;gt; {&lt;br /&gt;
            VoicechatConnection connection = VoicechatImpl.voiceServerApi.getConnectionOf(event.getPlayer().getUniqueId());&lt;br /&gt;
            if (connection == null) {&lt;br /&gt;
                event.getPlayer().sendMessage(&amp;quot;§c连接失败! 请检查你的 SimpleVoiceChat 模组是否正确启用!&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            connection.setGroup(VoicechatImpl.voiceServerApi.getGroup(AutoJoinVoiceGroup.uuid));&lt;br /&gt;
            event.getPlayer().sendMessage(&amp;quot;§a你已成功连接至全局语音频道!&amp;quot;);&lt;br /&gt;
        }, 20L * 3L); // 延迟3秒执行，确保玩家已连接到语音服务器&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
package me.chengzhify.autoJoinVoiceGroup;&lt;br /&gt;
&lt;br /&gt;
import de.maxhenkel.voicechat.api.Group;&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatApi;&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatPlugin;&lt;br /&gt;
import de.maxhenkel.voicechat.api.VoicechatServerApi;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.EventRegistration;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.JoinGroupEvent;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.LeaveGroupEvent;&lt;br /&gt;
import de.maxhenkel.voicechat.api.events.VoicechatServerStartedEvent;&lt;br /&gt;
import org.bukkit.Bukkit;&lt;br /&gt;
import org.bukkit.ChatColor;&lt;br /&gt;
import org.bukkit.entity.Player;&lt;br /&gt;
&lt;br /&gt;
import java.util.UUID;&lt;br /&gt;
&lt;br /&gt;
import static org.apache.logging.log4j.LogManager.getLogger;&lt;br /&gt;
&lt;br /&gt;
public class VoicechatImpl implements VoicechatPlugin {&lt;br /&gt;
    public static VoicechatServerApi voiceServerApi;&lt;br /&gt;
    private static final AutoJoinVoiceGroup instance = AutoJoinVoiceGroup.getInstance();&lt;br /&gt;
    private static final boolean voiceLog = instance.getConfig().getBoolean(&amp;quot;voice-group-console-log&amp;quot;);&lt;br /&gt;
    @Override&lt;br /&gt;
    public String getPluginId() {&lt;br /&gt;
        return &amp;quot;AutoJoinVoiceGroup&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void initialize(VoicechatApi api) {&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void registerEvents(EventRegistration registration) {&lt;br /&gt;
        registration.registerEvent(VoicechatServerStartedEvent.class, this::onVoiceServerStart);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void onVoiceServerStart(VoicechatServerStartedEvent event) {&lt;br /&gt;
        voiceServerApi = event.getVoicechat();&lt;br /&gt;
        System.out.println(voiceServerApi);&lt;br /&gt;
        getLogger().info(&amp;quot;[VoiceChat] API 已获取，可以创建语音频道了！&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public static UUID createGroup(String name, String team) {&lt;br /&gt;
        Group g = voiceServerApi.groupBuilder()&lt;br /&gt;
                .setPersistent(true)&lt;br /&gt;
                .setName(name + team) // The name of the group&lt;br /&gt;
                .setType(Group.Type.OPEN)&lt;br /&gt;
                .build();&lt;br /&gt;
        if (voiceLog) {&lt;br /&gt;
            getLogger().info(&amp;quot;[VoiceGroup] &amp;quot; + name + team + &amp;quot; 语音组已创建&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        return g.getId();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Simple Voice Chat 提供了它的 [https://modrepo.de/minecraft/voicechat/api/overview API 文档], 这方便我们基于它开发一些更有意思的拓展组件。&lt;br /&gt;
&lt;br /&gt;
=== 皮肤恢复组件（可选） ===&lt;br /&gt;
[https://modrinth.com/plugin/skinsrestorer 皮肤恢复插件 (SkinRestorer)]: (较新的 MC 版本也支持模组服，服务端侧)&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/skinrestorer 皮肤恢复模组 (SkinRestorer)]: （服务端侧，个人客户端无需安装）&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E5%B0%8F%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&amp;diff=40</id>
		<title>小游戏服务端配置教程</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E5%B0%8F%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&amp;diff=40"/>
		<updated>2025-11-30T12:38:23Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​创建页面，内容为“&amp;lt;nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;test&amp;#039;&amp;#039;&amp;#039;&amp;lt;/nowiki&amp;gt;”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki&amp;gt;&#039;&#039;&#039;test&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E6%95%99%E7%A8%8B%E7%9B%AE%E5%BD%95&amp;diff=39</id>
		<title>教程目录</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E6%95%99%E7%A8%8B%E7%9B%AE%E5%BD%95&amp;diff=39"/>
		<updated>2025-11-30T12:33:06Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 服务器运维类 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 教程目录 =&lt;br /&gt;
== 服务器运维类 ==&lt;br /&gt;
[[MCSM开服教程]]&lt;br /&gt;
&lt;br /&gt;
[[小游戏服务端配置教程]]&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E6%95%99%E7%A8%8B%E7%9B%AE%E5%BD%95&amp;diff=38</id>
		<title>教程目录</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E6%95%99%E7%A8%8B%E7%9B%AE%E5%BD%95&amp;diff=38"/>
		<updated>2025-11-30T12:13:11Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 服务器运维类 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 教程目录 =&lt;br /&gt;
== 服务器运维类 ==&lt;br /&gt;
[[MCSM开服教程]]&lt;br /&gt;
&lt;br /&gt;
[[服务端配置教程]]&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E5%B8%B8%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B5%84%E6%BA%90%E6%8C%87%E5%8D%97&amp;diff=37</id>
		<title>常用服务端资源指南</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E5%B8%B8%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B5%84%E6%BA%90%E6%8C%87%E5%8D%97&amp;diff=37"/>
		<updated>2025-11-15T11:37:09Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 常用插件 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 此页面提供了一些或许对您开服时有一些帮助的资源链接。 =&lt;br /&gt;
&lt;br /&gt;
== 服务端 ==&lt;br /&gt;
&lt;br /&gt;
=== 核心 ===&lt;br /&gt;
[https://getbukkit.org/ GetBukkit] : 在此您可以获取 CraftBukkit (一般作为 Bukkit 插件的依赖库存在)， Spigot 核心&lt;br /&gt;
&lt;br /&gt;
[https://serverjar.org/ ServerJar]: 在此您可以获取 Minecraft Java 版的绝大部分服务端核心&lt;br /&gt;
&lt;br /&gt;
=== 插件 &amp;amp; 服务端懒人包市场 ===&lt;br /&gt;
[https://spigotmc.org SpigotMC], [https://builtbybit.com/ BuiltByBit], [https://polymart.org/ PolyMart], [http://modrinth.com/ Modrinth]&lt;br /&gt;
&lt;br /&gt;
=== 常用插件 ===&lt;br /&gt;
[https://modrinth.com/plugin/skinsrestorer 皮肤恢复插件 (SkinRestorer)]: (较新的 MC 版本也支持模组服，服务端侧)&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/skinrestorer 皮肤恢复模组 (SkinRestorer)]: （服务端侧，个人客户端无需安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/plugin/simple-voice-chat 语音模组 / 插件]: （个人客户端和服务端侧都需要安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/enhanced-groups 语音功能增强模组]: （服务端侧，个人客户端无需安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/plugin/viaversion 跨版本兼容插件]: （服务端侧，个人客户端无需安装）&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=35</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=35"/>
		<updated>2025-11-15T07:52:17Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 贡献 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;欢迎来到TJUUSWiki!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
知识在此传递。&lt;br /&gt;
&lt;br /&gt;
== 入门 ==&lt;br /&gt;
* [https://kly777.github.io/TJUUS/#/ TJUUS官网]&lt;br /&gt;
* [[技术运维部]]&lt;br /&gt;
== 目录 ==&lt;br /&gt;
* [[教程目录]]&lt;br /&gt;
* [[端口使用情况]]&lt;br /&gt;
== 贡献 ==&lt;br /&gt;
* [[文档撰写规范]]&lt;br /&gt;
* [[模组服开设规范]]&lt;br /&gt;
* [[小游戏服开设规范]]&lt;br /&gt;
* [[常用服务端资源指南|常用资源]]&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E5%B8%B8%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B5%84%E6%BA%90%E6%8C%87%E5%8D%97&amp;diff=34</id>
		<title>常用服务端资源指南</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E5%B8%B8%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B5%84%E6%BA%90%E6%8C%87%E5%8D%97&amp;diff=34"/>
		<updated>2025-11-15T07:51:30Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 服务端 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 此页面提供了一些或许对您开服时有一些帮助的资源链接。 =&lt;br /&gt;
&lt;br /&gt;
== 服务端 ==&lt;br /&gt;
&lt;br /&gt;
=== 核心 ===&lt;br /&gt;
[https://getbukkit.org/ GetBukkit] : 在此您可以获取 CraftBukkit (一般作为 Bukkit 插件的依赖库存在)， Spigot 核心&lt;br /&gt;
&lt;br /&gt;
[https://serverjar.org/ ServerJar]: 在此您可以获取 Minecraft Java 版的绝大部分服务端核心&lt;br /&gt;
&lt;br /&gt;
=== 插件 &amp;amp; 服务端懒人包市场 ===&lt;br /&gt;
[https://spigotmc.org SpigotMC], [https://builtbybit.com/ BuiltByBit], [https://polymart.org/ PolyMart], [http://modrinth.com/ Modrinth]&lt;br /&gt;
&lt;br /&gt;
=== 常用插件 ===&lt;br /&gt;
[https://modrinth.com/plugin/skinsrestorer 皮肤恢复插件 (SkinRestorer)]: (较新的 MC 版本也支持模组服，服务端侧)&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/skinrestorer 皮肤恢复模组 (SkinRestorer)]: （服务端侧，个人客户端无需安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/plugin/simple-voice-chat 语音模组 / 插件]: （个人客户端和服务端侧都需要安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/enhanced-groups 语音功能增强模组]: （服务端侧，个人客户端无需安装）&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E5%B8%B8%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B5%84%E6%BA%90%E6%8C%87%E5%8D%97&amp;diff=33</id>
		<title>常用服务端资源指南</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E5%B8%B8%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B5%84%E6%BA%90%E6%8C%87%E5%8D%97&amp;diff=33"/>
		<updated>2025-11-15T07:51:17Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​first commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 此页面提供了一些或许对您开服时有一些帮助的资源链接。 =&lt;br /&gt;
&lt;br /&gt;
== 服务端 ==&lt;br /&gt;
&lt;br /&gt;
=== 核心 ===&lt;br /&gt;
[https://getbukkit.org/ GetBukkit] : 在此您可以获取 CraftBukkit (一般作为 Bukkit 插件的依赖库存在)， Spigot 核心&lt;br /&gt;
&lt;br /&gt;
[https://serverjar.org/ ServerJar]: 在此您可以获取 Minecraft Java 版的绝大部分服务端核心&lt;br /&gt;
&lt;br /&gt;
=== 插件 &amp;amp; 服务端懒人包市场: ===&lt;br /&gt;
[https://spigotmc.org SpigotMC], [https://builtbybit.com/ BuiltByBit], [https://polymart.org/ PolyMart], [http://modrinth.com/ Modrinth]&lt;br /&gt;
&lt;br /&gt;
=== 常用插件: ===&lt;br /&gt;
[https://modrinth.com/plugin/skinsrestorer 皮肤恢复插件 (SkinRestorer)]: (较新的 MC 版本也支持模组服，服务端侧)&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/skinrestorer 皮肤恢复模组 (SkinRestorer)]: （服务端侧，个人客户端无需安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/plugin/simple-voice-chat 语音模组 / 插件]: （个人客户端和服务端侧都需要安装）&lt;br /&gt;
&lt;br /&gt;
[https://modrinth.com/mod/enhanced-groups 语音功能增强模组]: （服务端侧，个人客户端无需安装）&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E7%AB%AF%E5%8F%A3%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5&amp;diff=32</id>
		<title>端口使用情况</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E7%AB%AF%E5%8F%A3%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5&amp;diff=32"/>
		<updated>2025-11-07T16:09:47Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 端口使用情况 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 开放端口范围 ==&lt;br /&gt;
1894-1910&lt;br /&gt;
&lt;br /&gt;
45006-45149&lt;br /&gt;
== 端口使用情况 ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 端口 !! 目前可用性 !! 占用项目&lt;br /&gt;
|-&lt;br /&gt;
| 1895 || 占用 || TJUUS.1.RE&lt;br /&gt;
|-&lt;br /&gt;
| 1896 || 占用 || TJUUS.1.RE&lt;br /&gt;
|-&lt;br /&gt;
| 1907 || 占用 || FTB StoneBlock 4&lt;br /&gt;
|-&lt;br /&gt;
| 1908 || 占用 || FTB StoneBlock 4&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || 占用 || velocity-3rd&lt;br /&gt;
|-&lt;br /&gt;
| 1914 || 占用 || NKU-原版1.21.7&lt;br /&gt;
|-&lt;br /&gt;
| 1916 || 占用 || NKU-原版1.21.7&lt;br /&gt;
|-&lt;br /&gt;
| 45002 || 可用 ||&lt;br /&gt;
|-&lt;br /&gt;
| 45003 || 可用 ||&lt;br /&gt;
|-&lt;br /&gt;
| 45008 || 占用 || 京津高联-Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 45009 || 占用 || 京津高联-登陆大厅&lt;br /&gt;
|-&lt;br /&gt;
| 45010 || 占用 || 联合生电&lt;br /&gt;
|-&lt;br /&gt;
| 45011 || 占用 || 联合空岛&lt;br /&gt;
|-&lt;br /&gt;
| 45012 || 占用 || 恐龙须面&lt;br /&gt;
|-&lt;br /&gt;
| 45015 || 占用 || UnionSkin&lt;br /&gt;
|-&lt;br /&gt;
| 45016 || 占用 || UnionSkin&lt;br /&gt;
|-&lt;br /&gt;
| 45100 || 占用 || Hebut-复刻&lt;br /&gt;
|-&lt;br /&gt;
| 45101 || 占用 || Scallion_zzc&lt;br /&gt;
|-&lt;br /&gt;
| 45109 || 占用 || Cloudreve&lt;br /&gt;
|-&lt;br /&gt;
| 45111 || 占用 || Picsur&lt;br /&gt;
|-&lt;br /&gt;
| 45112 || 占用 || UnionWiki&lt;br /&gt;
|-&lt;br /&gt;
| 45116 || 未知 || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E7%AB%AF%E5%8F%A3%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5&amp;diff=31</id>
		<title>端口使用情况</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E7%AB%AF%E5%8F%A3%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5&amp;diff=31"/>
		<updated>2025-11-07T07:08:31Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 端口使用情况 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 开放端口范围 ==&lt;br /&gt;
1894-1910&lt;br /&gt;
&lt;br /&gt;
45006-45149&lt;br /&gt;
== 端口使用情况 ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 端口 !! 目前可用性 !! 占用项目&lt;br /&gt;
|-&lt;br /&gt;
| 1895 || 占用 || TJUUS.1.RE&lt;br /&gt;
|-&lt;br /&gt;
| 1896 || 占用 || TJUUS.1.RE&lt;br /&gt;
|-&lt;br /&gt;
| 1907 || 占用 || FTB StoneBlock 4&lt;br /&gt;
|-&lt;br /&gt;
| 1908 || 占用 || FTB StoneBlock 4&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || 占用 || velocity-3rd&lt;br /&gt;
|-&lt;br /&gt;
| 1914 || 占用 || NKU-原版1.21.7&lt;br /&gt;
|-&lt;br /&gt;
| 1916 || 占用 || NKU-原版1.21.7&lt;br /&gt;
|-&lt;br /&gt;
| 45002 || 占用 || 小游戏-BINGO&lt;br /&gt;
|-&lt;br /&gt;
| 45003 || 占用 || 小游戏-BINGO&lt;br /&gt;
|-&lt;br /&gt;
| 45008 || 占用 || 京津高联-Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 45009 || 占用 || 京津高联-登陆大厅&lt;br /&gt;
|-&lt;br /&gt;
| 45010 || 占用 || 联合生电&lt;br /&gt;
|-&lt;br /&gt;
| 45011 || 占用 || 联合空岛&lt;br /&gt;
|-&lt;br /&gt;
| 45012 || 占用 || 恐龙须面&lt;br /&gt;
|-&lt;br /&gt;
| 45015 || 占用 || UnionSkin&lt;br /&gt;
|-&lt;br /&gt;
| 45016 || 占用 || UnionSkin&lt;br /&gt;
|-&lt;br /&gt;
| 45100 || 占用 || Hebut-复刻&lt;br /&gt;
|-&lt;br /&gt;
| 45101 || 占用 || Scallion_zzc&lt;br /&gt;
|-&lt;br /&gt;
| 45109 || 占用 || Cloudreve&lt;br /&gt;
|-&lt;br /&gt;
| 45111 || 占用 || Picsur&lt;br /&gt;
|-&lt;br /&gt;
| 45112 || 占用 || UnionWiki&lt;br /&gt;
|-&lt;br /&gt;
| 45116 || 未知 || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E7%94%A8%E6%88%B7:ChengZhiFy&amp;diff=30</id>
		<title>用户:ChengZhiFy</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E7%94%A8%E6%88%B7:ChengZhiFy&amp;diff=30"/>
		<updated>2025-11-06T03:29:07Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​创建页面，内容为“t”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;t&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
	<entry>
		<id>https://wiki.alsojiangshi.top/index.php?title=%E7%AB%AF%E5%8F%A3%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5&amp;diff=29</id>
		<title>端口使用情况</title>
		<link rel="alternate" type="text/html" href="https://wiki.alsojiangshi.top/index.php?title=%E7%AB%AF%E5%8F%A3%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5&amp;diff=29"/>
		<updated>2025-11-06T03:28:04Z</updated>

		<summary type="html">&lt;p&gt;ChengZhiFy：​/* 端口使用情况 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 开放端口范围 ==&lt;br /&gt;
1894-1910&lt;br /&gt;
&lt;br /&gt;
45006-45149&lt;br /&gt;
== 端口使用情况 ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 端口 !! 目前可用性 !! 占用项目&lt;br /&gt;
|-&lt;br /&gt;
| 1895 || 占用 || TJUUS.1.RE&lt;br /&gt;
|-&lt;br /&gt;
| 1896 || 占用 || TJUUS.1.RE&lt;br /&gt;
|-&lt;br /&gt;
| 1907 || 占用 || FTB StoneBlock 4&lt;br /&gt;
|-&lt;br /&gt;
| 1908 || 占用 || FTB StoneBlock 4&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || 占用 || velocity-3rd&lt;br /&gt;
|-&lt;br /&gt;
| 1914 || 占用 || NKU-原版1.21.7&lt;br /&gt;
|-&lt;br /&gt;
| 1916 || 占用 || NKU-原版1.21.7&lt;br /&gt;
|-&lt;br /&gt;
| 45002 || 占用 || 小游戏-成就猎人&lt;br /&gt;
|-&lt;br /&gt;
| 45003 || 占用 || 小游戏-成就猎人&lt;br /&gt;
|-&lt;br /&gt;
| 45008 || 占用 || 京津高联-Velocity&lt;br /&gt;
|-&lt;br /&gt;
| 45009 || 占用 || 京津高联-登陆大厅&lt;br /&gt;
|-&lt;br /&gt;
| 45010 || 占用 || 联合生电&lt;br /&gt;
|-&lt;br /&gt;
| 45011 || 占用 || 联合空岛&lt;br /&gt;
|-&lt;br /&gt;
| 45012 || 占用 || 恐龙须面&lt;br /&gt;
|-&lt;br /&gt;
| 45015 || 占用 || UnionSkin&lt;br /&gt;
|-&lt;br /&gt;
| 45016 || 占用 || UnionSkin&lt;br /&gt;
|-&lt;br /&gt;
| 45100 || 占用 || Hebut-复刻&lt;br /&gt;
|-&lt;br /&gt;
| 45101 || 占用 || Scallion_zzc&lt;br /&gt;
|-&lt;br /&gt;
| 45109 || 占用 || Cloudreve&lt;br /&gt;
|-&lt;br /&gt;
| 45111 || 占用 || Picsur&lt;br /&gt;
|-&lt;br /&gt;
| 45112 || 占用 || UnionWiki&lt;br /&gt;
|-&lt;br /&gt;
| 45116 || 未知 || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>ChengZhiFy</name></author>
	</entry>
</feed>