• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

Examine individual changes

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to: navigation, search

This page allows you to examine the variables generated by the Abuse Filter for an individual change, and test it against filters.

Variables generated for this change

VariableValue
Whether or not the edit is marked as minor (minor_edit)
Name of the user account (user_name)
Mofec x
Groups (including implicit) the user is in (user_groups)
* user
Page ID (article_articleid)
627
Page namespace (article_namespace)
0
Page title (without namespace) (article_text)
BungeeCord开发教程
Full page title (article_prefixedtext)
BungeeCord开发教程
Last ten users to contribute to the page (article_recent_contributors)
Mofec x Mcdarc
Action (action)
edit
Edit summary/reason (summary)
Old content model (old_content_model)
wikitext
New content model (new_content_model)
wikitext
Old page wikitext, before the edit (old_wikitext)
{{待完善}} {{待更新|url=https://www.spigotmc.org/wiki/bungeecord-plugin-development/}} == 介绍 == BungeeCord是一个转发服务端. 你也可以把它理解为代理服务端. 鉴于国内似乎没有BungeeCord插件, 我觉得写一篇教程会好些. == 利用工具 == 官方提供了一个极其好用的工具网页. 它可以让你方便地生成一个新的, 配置好的'''BungeeCord'''插件项目. 该页面的地址 [http://utilities.shall.fail/bungeecord/pluginhelper/] 只要简单地输入''Plugin name'', ''Plugin package'', ''Plugin author'', ''Plugin version'' 他就会自动为你生成一个项目, 和一些基础的代码. 如果你是新手, 你大可以勾选''Include a listener for me, please.''. 这样他会为你生成一个玩家连接的监听器. ==创建你的第一个BungeeCord插件 (代理)== 恭喜你决定创建自己第一个BungeeCord插件啦! 这个教程会使你打好基础.<br> Java 编程的知识是需要的.([[Bukkit/插件开发教程#学习Java|我没有Java基础]]) ===设置你的项目=== 这个教程只包括IntelliJ IDEA(一款IDE),其他IDE的操作相似. 在[https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc 原文]处附有Eclipse的操作<br> 首先打开你的IDE,创建一个新的项目,在弹出的选项卡中选择Maven.(图片暂时传不上去,或[https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc 原文])<br> 点击Next,里面会有一下几类文本框: *Name - 对应的是你的项目的名称 *Directory - 项目文件保存的路径 *GroupId - 输入你的包名 *AntifactId - 输入你插件的名称 现在,只修改Name.然后点击Finish按钮,你的IDE会跳转,并展示pom.xml文件.<br> 我们要在'''</project>前'''添加一些内容.<br> <pre><repositories> <repository> <id>bungeecord-repo</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </repository> </repositories> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>net.md-5</groupId> <artifactId>bungeecord-api</artifactId> <version>1.16-R0.5-SNAPSHOT</version> <type>jar</type> <scope>provided</scope> </dependency> <dependency> <groupId>net.md-5</groupId> <artifactId>bungeecord-api</artifactId> <version>1.16-R0.5-SNAPSHOT</version> <type>javadoc</type> <scope>provided</scope> </dependency> </dependencies></pre> 这会在你的项目里添加BungeeCord的依赖.如果你使用IDEA,它会问你是否从pom.xml文件导入,选择导入.如果它询问正在更改的语言级别,允许它重新加载项目. ===创建主类=== 现在展开TestPlugin,src,main,应该看起看来是这样的(:(脑补一下):<br> 右键java,然后创建一个新包,命名为me.username.testplugin.接下来右键新建的包,创建一个新类,命名为TestPlugin.IDE会为你打开文件,如果它没有打开,那么你自己打开(。﹏。)<br> 现在,我们可以创建基本的插件.这一章节仅仅聚焦于制作一个仅在启动时显示一条信息的插件.别的章节你可以使自己的插件拥有更多功能. 在TestPlugin'''之后'''在'''{'''之前加入'''extends Plugin'''<br> 代码:<source lang="java"> package me.username.testplugin; import net.md_5.bungee.api.plugin.Plugin; public class TestPlugin extends Plugin { @Override public void onEnable() { // 你不应该显示启动信息 // bungeeCord已经帮你做了 getLogger().info("Yay! It loads!"); } } </source> ===要让它被载入=== 现在我们可以创建plugin.yml文件,以便让BungeeCord识别出这是一个插件,然后告诉它怎样去载入它.右键resources,新建文件plugin.yml.在这个文件中,添加如下内容:<br> <source lang="xml"> name: TestPlugin main: me.username.testplugin.TestPlugin version: 1.0 #author可加可不加 author: username </source> 如果plugin.yml已经被Bukkit载入,你也可以新建bungee.yml. ===编译=== '''恭喜,我们马上就要完成了''' <br>现在应该编译了.在右侧展开Maven项目窗口(如果你没有看见它,点击视图View再点击工具按钮Tool Buttons),展开你的项目,展开Lifecycle,双击clean,再双击包package.Maven会编译你的项目.现在打开你的项目路径,再target中寻找你的插件.安装并打开BungeeCord端.如果有一行日志像这样:<br> <br><big> [INFO] Enabled plugin TestPlugin version 1.0 by username </big><br><br> '''那么你成功了!!!!!'''<br> 重编译插件,就在按着步骤来一遍 ===对开发者的话=== 如果你是一名Bukkit插件开发者,并且对任何内容都非常熟悉,因为BungeeCord API深受Bukkit API的启发。许多概念(eventhandler和scheduler)保持相同,一些类和方法名称是相同的。 ==事件处理API教程== ==常有的误区== ==创建基础的命令功能 (代理)== ==Bukkit 和 BungeeCord 插件消息通道== ==聊天组件 API== ==在服务器之间传送玩家 (代理)== ==使用BungeeCord配置文件系统== ==通过BungeeCord创建计分板== ==创建一个Bungee的插件 (不需要Maven)==
New page wikitext, after the edit (new_wikitext)
{{待完善}} {{待更新|url=https://www.spigotmc.org/wiki/bungeecord-plugin-development/}} == 介绍 == BungeeCord是一个转发服务端. 你也可以把它理解为代理服务端. 鉴于国内似乎没有BungeeCord插件, 我觉得写一篇教程会好些. == 利用工具 == 官方提供了一个极其好用的工具网页. 它可以让你方便地生成一个新的, 配置好的'''BungeeCord'''插件项目. 该页面的地址 [http://utilities.shall.fail/bungeecord/pluginhelper/] 只要简单地输入''Plugin name'', ''Plugin package'', ''Plugin author'', ''Plugin version'' 他就会自动为你生成一个项目, 和一些基础的代码. 如果你是新手, 你大可以勾选''Include a listener for me, please.''. 这样他会为你生成一个玩家连接的监听器. ==创建你的第一个BungeeCord插件 (代理)== 恭喜你决定创建自己第一个BungeeCord插件啦! 这个教程会使你打好基础.<br> Java 编程的知识是需要的.([[Bukkit/插件开发教程#学习Java|我没有Java基础]]) ===设置你的项目=== 这个教程只包括IntelliJ IDEA(一款IDE),其他IDE的操作相似. 在[https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc 原文]处附有Eclipse的操作<br> 首先打开你的IDE,创建一个新的项目,在弹出的选项卡中选择Maven.(图片暂时传不上去,或[https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc 原文])<br> 点击Next,里面会有一下几类文本框: *Name - 对应的是你的项目的名称 *Directory - 项目文件保存的路径 *GroupId - 输入你的包名 *AntifactId - 输入你插件的名称 现在,只修改Name.然后点击Finish按钮,你的IDE会跳转,并展示pom.xml文件.<br> 我们要在'''</project>前'''添加一些内容.<br> <pre><repositories> <repository> <id>bungeecord-repo</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </repository> </repositories> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>net.md-5</groupId> <artifactId>bungeecord-api</artifactId> <version>1.16-R0.5-SNAPSHOT</version> <type>jar</type> <scope>provided</scope> </dependency> <dependency> <groupId>net.md-5</groupId> <artifactId>bungeecord-api</artifactId> <version>1.16-R0.5-SNAPSHOT</version> <type>javadoc</type> <scope>provided</scope> </dependency> </dependencies></pre> 这会在你的项目里添加BungeeCord的依赖.如果你使用IDEA,它会问你是否从pom.xml文件导入,选择导入.如果它询问正在更改的语言级别,允许它重新加载项目. ===创建主类=== 现在展开TestPlugin,src,main,应该看起看来是这样的(:(脑补一下):<br> 右键java,然后创建一个新包,命名为me.username.testplugin.接下来右键新建的包,创建一个新类,命名为TestPlugin.IDE会为你打开文件,如果它没有打开,那么你自己打开(。﹏。)<br> 现在,我们可以创建基本的插件.这一章节仅仅聚焦于制作一个仅在启动时显示一条信息的插件.别的章节你可以使自己的插件拥有更多功能. 在TestPlugin'''之后'''在'''{'''之前加入'''extends Plugin'''<br> 代码:<source lang="java"> package me.username.testplugin; import net.md_5.bungee.api.plugin.Plugin; public class TestPlugin extends Plugin { @Override public void onEnable() { // 你不应该显示启动信息 // bungeeCord已经帮你做了 getLogger().info("Yay! It loads!"); } } </source> ===要让它被载入=== 现在我们可以创建plugin.yml文件,以便让BungeeCord识别出这是一个插件,然后告诉它怎样去载入它.右键resources,新建文件plugin.yml.在这个文件中,添加如下内容:<br> <source lang="xml"> name: TestPlugin main: me.username.testplugin.TestPlugin version: 1.0 #author可加可不加 author: username </source> 如果plugin.yml已经被Bukkit载入,你也可以新建bungee.yml. ===编译=== '''恭喜,我们马上就要完成了''' <br>现在应该编译了.在右侧展开Maven项目窗口(如果你没有看见它,点击视图View再点击工具按钮Tool Buttons),展开你的项目,展开Lifecycle,双击clean,再双击包package.Maven会编译你的项目.现在打开你的项目路径,再target中寻找你的插件.安装并打开BungeeCord端.如果有一行日志像这样:<br> <br><big> [INFO] Enabled plugin TestPlugin version 1.0 by username </big><br><br> '''那么你成功了!!!!!'''<br> 重编译插件,就在按着步骤来一遍 ===对开发者的话=== 如果你是一名Bukkit插件开发者,并且对任何内容都非常熟悉,因为BungeeCord API深受Bukkit API的启发。许多概念(eventhandler和scheduler)保持相同,一些类和方法名称是相同的。 ==事件处理API教程== BungeeCord有一个丰富的事件API,它的行为类似于Bukkit的系统,但有些不同。本章描述如何创建监听器(Listener)和创建自己的事件. ===创建你的监听器=== 要想利用BungeeCord中的事件,在你的项目中创建一个新类.文件名任意,但出于本教程的目的,我们打算叫它 <br><big>Events.java</big><br> 一旦你创建了你想要用作监听器的新类,你就必须在BungeeCord中实现监听器接口.你可以让你的类声明看起来像:<br> <pre> public class Events implements Listener </pre><br> 一旦你在你的类中实现了Listener,你就可以监听任何BungeeCord事件并对其做出反应.(查看所有的事件) <br>举个简单的例子,我们将使用BungeeCord中的PostLoginEvent.让我们添加第一个监听器: <br><source lang="java"> public class Events implements Listener { @EventHandler public void onPostLogin(PostLoginEvent event) { } } </source><br> 每当玩家(ProxiedPlayer)成功通过身份验证并准备连接到服务器时会调用PostLoginEvent.通过我们的监听器,我们可以向所有其他玩家发送这样的消息,表示他们已经加入了BungeeCord 客户端网: <br><source lang="java"> public class Events implements Listener { @EventHandler public void onPostLogin(PostLoginEvent event){ for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { player.sendMessage(new TextComponent(event.getPlayer().getName() + " has joined the" + "network.")); } } } </source><br> 完成Events类之后,必须在主类中注册监听器.像这样: <br><source lang="java"> public class Main extends Plugin { @Override public void onEnable() { getProxy().getPluginManager().registerListener(this, new Events()); } } </source><br> 确保你使用的是事件列表中的事件,这样你就可以在你的插件中适当地与事件进行交互。 ===创建你自己的事件=== ==常有的误区== ==创建基础的命令功能 (代理)== ==Bukkit 和 BungeeCord 插件消息通道== ==聊天组件 API== ==在服务器之间传送玩家 (代理)== ==使用BungeeCord配置文件系统== ==通过BungeeCord创建计分板== ==创建一个Bungee的插件 (不需要Maven)==
Unified diff of changes made by edit (edit_diff)
@@ -122,4 +122,46 @@ ==事件处理API教程== +BungeeCord有一个丰富的事件API,它的行为类似于Bukkit的系统,但有些不同。本章描述如何创建监听器(Listener)和创建自己的事件. +===创建你的监听器=== +要想利用BungeeCord中的事件,在你的项目中创建一个新类.文件名任意,但出于本教程的目的,我们打算叫它 +<br><big>Events.java</big><br> +一旦你创建了你想要用作监听器的新类,你就必须在BungeeCord中实现监听器接口.你可以让你的类声明看起来像:<br> +<pre> public class Events implements Listener </pre><br> +一旦你在你的类中实现了Listener,你就可以监听任何BungeeCord事件并对其做出反应.(查看所有的事件) +<br>举个简单的例子,我们将使用BungeeCord中的PostLoginEvent.让我们添加第一个监听器: +<br><source lang="java"> +public class Events implements Listener { + @EventHandler + public void onPostLogin(PostLoginEvent event) { + + } +} +</source><br> + +每当玩家(ProxiedPlayer)成功通过身份验证并准备连接到服务器时会调用PostLoginEvent.通过我们的监听器,我们可以向所有其他玩家发送这样的消息,表示他们已经加入了BungeeCord 客户端网: +<br><source lang="java"> +public class Events implements Listener { + @EventHandler + public void onPostLogin(PostLoginEvent event){ + for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { + player.sendMessage(new TextComponent(event.getPlayer().getName() + " has joined the" + + "network.")); + } + } +} +</source><br> +完成Events类之后,必须在主类中注册监听器.像这样: +<br><source lang="java"> +public class Main extends Plugin { + @Override + public void onEnable() { + getProxy().getPluginManager().registerListener(this, new Events()); + } +} +</source><br> +确保你使用的是事件列表中的事件,这样你就可以在你的插件中适当地与事件进行交互。 +===创建你自己的事件=== + + ==常有的误区== ==创建基础的命令功能 (代理)==
Lines added in edit (added_lines)
BungeeCord有一个丰富的事件API,它的行为类似于Bukkit的系统,但有些不同。本章描述如何创建监听器(Listener)和创建自己的事件. ===创建你的监听器=== 要想利用BungeeCord中的事件,在你的项目中创建一个新类.文件名任意,但出于本教程的目的,我们打算叫它 <br><big>Events.java</big><br> 一旦你创建了你想要用作监听器的新类,你就必须在BungeeCord中实现监听器接口.你可以让你的类声明看起来像:<br> <pre> public class Events implements Listener </pre><br> 一旦你在你的类中实现了Listener,你就可以监听任何BungeeCord事件并对其做出反应.(查看所有的事件) <br>举个简单的例子,我们将使用BungeeCord中的PostLoginEvent.让我们添加第一个监听器: <br><source lang="java"> public class Events implements Listener { @EventHandler public void onPostLogin(PostLoginEvent event) { } } </source><br> 每当玩家(ProxiedPlayer)成功通过身份验证并准备连接到服务器时会调用PostLoginEvent.通过我们的监听器,我们可以向所有其他玩家发送这样的消息,表示他们已经加入了BungeeCord 客户端网: <br><source lang="java"> public class Events implements Listener { @EventHandler public void onPostLogin(PostLoginEvent event){ for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { player.sendMessage(new TextComponent(event.getPlayer().getName() + " has joined the" + "network.")); } } } </source><br> 完成Events类之后,必须在主类中注册监听器.像这样: <br><source lang="java"> public class Main extends Plugin { @Override public void onEnable() { getProxy().getPluginManager().registerListener(this, new Events()); } } </source><br> 确保你使用的是事件列表中的事件,这样你就可以在你的插件中适当地与事件进行交互。 ===创建你自己的事件===
Parsed HTML source of the new revision (new_html)
<div class="mw-parser-output"><div class="infoBox" style="width:80%;border-left: 10px solid green;"><div class="infoBoxContent"> <div class="infoBoxIcon" style=""><img alt="Icon-info.png" src="/images/thumb/5/57/Icon-info.png/50px-Icon-info.png" width="50" height="50" srcset="/images/thumb/5/57/Icon-info.png/75px-Icon-info.png 1.5x, /images/thumb/5/57/Icon-info.png/100px-Icon-info.png 2x" /></div><div class="infoBoxText" style="color: green;"><b>本条目已有一定量的内容,但仍需完善</b> <p>欢迎参与<a class="external text" href="https://mineplugin.org/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit">本条目的完善工作</a>。 </p><p>你可以从以下几个方面入手 </p> <ul><li>参阅<a href="/Studio:%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%89%8B%E5%86%8C" class="mw-redirect" title="Studio:格式化手册">格式化手册</a>,并对该页面进行相应格式排版工作;</li> <li>日常检查是否内容有更新版本并更新该页面;</li> <li>修复该页面中已出现/潜在的问题</li></ul> </div> </div></div> <div class="infoBox" style="width:80%;border-left: 10px solid yellow;"><div class="infoBoxContent"> <div class="infoBoxTitle" style="">本条目对应原文已经或正在更新。</div><div class="infoBoxIcon" style=""><img alt="Icon-info.png" src="/images/thumb/5/57/Icon-info.png/50px-Icon-info.png" width="50" height="50" srcset="/images/thumb/5/57/Icon-info.png/75px-Icon-info.png 1.5x, /images/thumb/5/57/Icon-info.png/100px-Icon-info.png 2x" /></div><div class="infoBoxText" style="">近期请前往<a class="external text" href="https://www.spigotmc.org/wiki/bungeecord-plugin-development/">这里</a>关注,查看新的版本并更新至本条目。</div> </div></div> <div id="toc" class="toc"><div class="toctitle" lang="zh-CN" dir="ltr"><h2>目录</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#.E4.BB.8B.E7.BB.8D"><span class="tocnumber">1</span> <span class="toctext">介绍</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#.E5.88.A9.E7.94.A8.E5.B7.A5.E5.85.B7"><span class="tocnumber">2</span> <span class="toctext">利用工具</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#.E5.88.9B.E5.BB.BA.E4.BD.A0.E7.9A.84.E7.AC.AC.E4.B8.80.E4.B8.AABungeeCord.E6.8F.92.E4.BB.B6_.28.E4.BB.A3.E7.90.86.29"><span class="tocnumber">3</span> <span class="toctext">创建你的第一个BungeeCord插件 (代理)</span></a> <ul> <li class="toclevel-2 tocsection-4"><a href="#.E8.AE.BE.E7.BD.AE.E4.BD.A0.E7.9A.84.E9.A1.B9.E7.9B.AE"><span class="tocnumber">3.1</span> <span class="toctext">设置你的项目</span></a></li> <li class="toclevel-2 tocsection-5"><a href="#.E5.88.9B.E5.BB.BA.E4.B8.BB.E7.B1.BB"><span class="tocnumber">3.2</span> <span class="toctext">创建主类</span></a></li> <li class="toclevel-2 tocsection-6"><a href="#.E8.A6.81.E8.AE.A9.E5.AE.83.E8.A2.AB.E8.BD.BD.E5.85.A5"><span class="tocnumber">3.3</span> <span class="toctext">要让它被载入</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#.E7.BC.96.E8.AF.91"><span class="tocnumber">3.4</span> <span class="toctext">编译</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#.E5.AF.B9.E5.BC.80.E5.8F.91.E8.80.85.E7.9A.84.E8.AF.9D"><span class="tocnumber">3.5</span> <span class="toctext">对开发者的话</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-9"><a href="#.E4.BA.8B.E4.BB.B6.E5.A4.84.E7.90.86API.E6.95.99.E7.A8.8B"><span class="tocnumber">4</span> <span class="toctext">事件处理API教程</span></a> <ul> <li class="toclevel-2 tocsection-10"><a href="#.E5.88.9B.E5.BB.BA.E4.BD.A0.E7.9A.84.E7.9B.91.E5.90.AC.E5.99.A8"><span class="tocnumber">4.1</span> <span class="toctext">创建你的监听器</span></a></li> <li class="toclevel-2 tocsection-11"><a href="#.E5.88.9B.E5.BB.BA.E4.BD.A0.E8.87.AA.E5.B7.B1.E7.9A.84.E4.BA.8B.E4.BB.B6"><span class="tocnumber">4.2</span> <span class="toctext">创建你自己的事件</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-12"><a href="#.E5.B8.B8.E6.9C.89.E7.9A.84.E8.AF.AF.E5.8C.BA"><span class="tocnumber">5</span> <span class="toctext">常有的误区</span></a></li> <li class="toclevel-1 tocsection-13"><a href="#.E5.88.9B.E5.BB.BA.E5.9F.BA.E7.A1.80.E7.9A.84.E5.91.BD.E4.BB.A4.E5.8A.9F.E8.83.BD_.28.E4.BB.A3.E7.90.86.29"><span class="tocnumber">6</span> <span class="toctext">创建基础的命令功能 (代理)</span></a></li> <li class="toclevel-1 tocsection-14"><a href="#Bukkit_.E5.92.8C_BungeeCord_.E6.8F.92.E4.BB.B6.E6.B6.88.E6.81.AF.E9.80.9A.E9.81.93"><span class="tocnumber">7</span> <span class="toctext">Bukkit 和 BungeeCord 插件消息通道</span></a></li> <li class="toclevel-1 tocsection-15"><a href="#.E8.81.8A.E5.A4.A9.E7.BB.84.E4.BB.B6_API"><span class="tocnumber">8</span> <span class="toctext">聊天组件 API</span></a></li> <li class="toclevel-1 tocsection-16"><a href="#.E5.9C.A8.E6.9C.8D.E5.8A.A1.E5.99.A8.E4.B9.8B.E9.97.B4.E4.BC.A0.E9.80.81.E7.8E.A9.E5.AE.B6_.28.E4.BB.A3.E7.90.86.29"><span class="tocnumber">9</span> <span class="toctext">在服务器之间传送玩家 (代理)</span></a></li> <li class="toclevel-1 tocsection-17"><a href="#.E4.BD.BF.E7.94.A8BungeeCord.E9.85.8D.E7.BD.AE.E6.96.87.E4.BB.B6.E7.B3.BB.E7.BB.9F"><span class="tocnumber">10</span> <span class="toctext">使用BungeeCord配置文件系统</span></a></li> <li class="toclevel-1 tocsection-18"><a href="#.E9.80.9A.E8.BF.87BungeeCord.E5.88.9B.E5.BB.BA.E8.AE.A1.E5.88.86.E6.9D.BF"><span class="tocnumber">11</span> <span class="toctext">通过BungeeCord创建计分板</span></a></li> <li class="toclevel-1 tocsection-19"><a href="#.E5.88.9B.E5.BB.BA.E4.B8.80.E4.B8.AABungee.E7.9A.84.E6.8F.92.E4.BB.B6_.28.E4.B8.8D.E9.9C.80.E8.A6.81Maven.29"><span class="tocnumber">12</span> <span class="toctext">创建一个Bungee的插件 (不需要Maven)</span></a></li> </ul> </div> <h2><span id="介绍"></span><span class="mw-headline" id=".E4.BB.8B.E7.BB.8D">介绍</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=1" title="编辑小节:介绍">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <p>BungeeCord是一个转发服务端. 你也可以把它理解为代理服务端. 鉴于国内似乎没有BungeeCord插件, 我觉得写一篇教程会好些. </p> <h2><span id="利用工具"></span><span class="mw-headline" id=".E5.88.A9.E7.94.A8.E5.B7.A5.E5.85.B7">利用工具</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=2" title="编辑小节:利用工具">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <p>官方提供了一个极其好用的工具网页. 它可以让你方便地生成一个新的, 配置好的<b>BungeeCord</b>插件项目. </p><p>该页面的地址 <a class="external autonumber" href="http://utilities.shall.fail/bungeecord/pluginhelper/">[1]</a> </p><p>只要简单地输入<i>Plugin name</i>, <i>Plugin package</i>, <i>Plugin author</i>, <i>Plugin version</i> </p><p>他就会自动为你生成一个项目, 和一些基础的代码. </p><p>如果你是新手, 你大可以勾选<i>Include a listener for me, please.</i>. 这样他会为你生成一个玩家连接的监听器. </p> <h2><span id="创建你的第一个BungeeCord插件_(代理)"></span><span class="mw-headline" id=".E5.88.9B.E5.BB.BA.E4.BD.A0.E7.9A.84.E7.AC.AC.E4.B8.80.E4.B8.AABungeeCord.E6.8F.92.E4.BB.B6_.28.E4.BB.A3.E7.90.86.29">创建你的第一个BungeeCord插件 (代理)</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=3" title="编辑小节:创建你的第一个BungeeCord插件 (代理)">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <p>恭喜你决定创建自己第一个BungeeCord插件啦! 这个教程会使你打好基础.<br /> Java 编程的知识是需要的.(<a href="/Bukkit/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B#.E5.AD.A6.E4.B9.A0Java" title="Bukkit/插件开发教程">我没有Java基础</a>) </p> <h3><span id="设置你的项目"></span><span class="mw-headline" id=".E8.AE.BE.E7.BD.AE.E4.BD.A0.E7.9A.84.E9.A1.B9.E7.9B.AE">设置你的项目</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=4" title="编辑小节:设置你的项目">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <p>这个教程只包括IntelliJ IDEA(一款IDE),其他IDE的操作相似. 在<a class="external text" href="https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc">原文</a>处附有Eclipse的操作<br /> </p><p>首先打开你的IDE,创建一个新的项目,在弹出的选项卡中选择Maven.(图片暂时传不上去,或<a class="external text" href="https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc">原文</a>)<br /> 点击Next,里面会有一下几类文本框: </p> <ul><li>Name - 对应的是你的项目的名称</li> <li>Directory - 项目文件保存的路径</li> <li>GroupId - 输入你的包名</li> <li>AntifactId - 输入你插件的名称</li></ul> <p>现在,只修改Name.然后点击Finish按钮,你的IDE会跳转,并展示pom.xml文件.<br /> 我们要在<b>&lt;/project&gt;前</b>添加一些内容.<br /> </p> <pre>&lt;repositories&gt; &lt;repository&gt; &lt;id&gt;bungeecord-repo&lt;/id&gt; &lt;url&gt;https://oss.sonatype.org/content/repositories/snapshots&lt;/url&gt; &lt;/repository&gt; &lt;/repositories&gt; &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; &lt;version&gt;3.6.1&lt;/version&gt; &lt;configuration&gt; &lt;source&gt;1.8&lt;/source&gt; &lt;target&gt;1.8&lt;/target&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;/build&gt; &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;net.md-5&lt;/groupId&gt; &lt;artifactId&gt;bungeecord-api&lt;/artifactId&gt; &lt;version&gt;1.16-R0.5-SNAPSHOT&lt;/version&gt; &lt;type&gt;jar&lt;/type&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;net.md-5&lt;/groupId&gt; &lt;artifactId&gt;bungeecord-api&lt;/artifactId&gt; &lt;version&gt;1.16-R0.5-SNAPSHOT&lt;/version&gt; &lt;type&gt;javadoc&lt;/type&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt; &lt;/dependencies&gt;</pre> <p>这会在你的项目里添加BungeeCord的依赖.如果你使用IDEA,它会问你是否从pom.xml文件导入,选择导入.如果它询问正在更改的语言级别,允许它重新加载项目. </p> <h3><span id="创建主类"></span><span class="mw-headline" id=".E5.88.9B.E5.BB.BA.E4.B8.BB.E7.B1.BB">创建主类</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=5" title="编辑小节:创建主类">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <p>现在展开TestPlugin,src,main,应该看起看来是这样的(:(脑补一下):<br /> </p><p>右键java,然后创建一个新包,命名为me.username.testplugin.接下来右键新建的包,创建一个新类,命名为TestPlugin.IDE会为你打开文件,如果它没有打开,那么你自己打开(。﹏。)<br /> 现在,我们可以创建基本的插件.这一章节仅仅聚焦于制作一个仅在启动时显示一条信息的插件.别的章节你可以使自己的插件拥有更多功能. </p><p>在TestPlugin<b>之后</b>在<b>{</b>之前加入<b>extends Plugin</b><br /> </p><p> 代码:</p><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">package</span> <span class="nn">me.username.testplugin</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">net.md_5.bungee.api.plugin.Plugin</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">TestPlugin</span> <span class="kd">extends</span> <span class="n">Plugin</span> <span class="o">{</span> <span class="nd">@Override</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onEnable</span><span class="o">()</span> <span class="o">{</span> <span class="c1">// 你不应该显示启动信息</span> <span class="c1">// bungeeCord已经帮你做了</span> <span class="n">getLogger</span><span class="o">().</span><span class="na">info</span><span class="o">(</span><span class="s">&quot;Yay! It loads!&quot;</span><span class="o">);</span> <span class="o">}</span> <span class="o">}</span> </pre></div> <p><br /> </p> <h3><span id="要让它被载入"></span><span class="mw-headline" id=".E8.A6.81.E8.AE.A9.E5.AE.83.E8.A2.AB.E8.BD.BD.E5.85.A5">要让它被载入</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=6" title="编辑小节:要让它被载入">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <p>现在我们可以创建plugin.yml文件,以便让BungeeCord识别出这是一个插件,然后告诉它怎样去载入它.右键resources,新建文件plugin.yml.在这个文件中,添加如下内容:<br /> </p> <div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span>name: TestPlugin main: me.username.testplugin.TestPlugin version: 1.0 #author可加可不加 author: username </pre></div> <p>如果plugin.yml已经被Bukkit载入,你也可以新建bungee.yml. </p> <h3><span id="编译"></span><span class="mw-headline" id=".E7.BC.96.E8.AF.91">编译</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=7" title="编辑小节:编译">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <p><b>恭喜,我们马上就要完成了</b> <br />现在应该编译了.在右侧展开Maven项目窗口(如果你没有看见它,点击视图View再点击工具按钮Tool Buttons),展开你的项目,展开Lifecycle,双击clean,再双击包package.Maven会编译你的项目.现在打开你的项目路径,再target中寻找你的插件.安装并打开BungeeCord端.如果有一行日志像这样:<br /> <br /><big> [INFO] Enabled plugin TestPlugin version 1.0 by username </big><br /><br /> <b>那么你成功了!!!!!</b><br /> 重编译插件,就在按着步骤来一遍 </p> <h3><span id="对开发者的话"></span><span class="mw-headline" id=".E5.AF.B9.E5.BC.80.E5.8F.91.E8.80.85.E7.9A.84.E8.AF.9D">对开发者的话</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=8" title="编辑小节:对开发者的话">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <p>如果你是一名Bukkit插件开发者,并且对任何内容都非常熟悉,因为BungeeCord API深受Bukkit API的启发。许多概念(eventhandler和scheduler)保持相同,一些类和方法名称是相同的。 </p> <h2><span id="事件处理API教程"></span><span class="mw-headline" id=".E4.BA.8B.E4.BB.B6.E5.A4.84.E7.90.86API.E6.95.99.E7.A8.8B">事件处理API教程</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=9" title="编辑小节:事件处理API教程">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <p>BungeeCord有一个丰富的事件API,它的行为类似于Bukkit的系统,但有些不同。本章描述如何创建监听器(Listener)和创建自己的事件. </p> <h3><span id="创建你的监听器"></span><span class="mw-headline" id=".E5.88.9B.E5.BB.BA.E4.BD.A0.E7.9A.84.E7.9B.91.E5.90.AC.E5.99.A8">创建你的监听器</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=10" title="编辑小节:创建你的监听器">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <p>要想利用BungeeCord中的事件,在你的项目中创建一个新类.文件名任意,但出于本教程的目的,我们打算叫它 <br /><big>Events.java</big><br /> 一旦你创建了你想要用作监听器的新类,你就必须在BungeeCord中实现监听器接口.你可以让你的类声明看起来像:<br /> </p> <pre> public class Events implements Listener </pre><p><br /> </p><p>一旦你在你的类中实现了Listener,你就可以监听任何BungeeCord事件并对其做出反应.(查看所有的事件) <br />举个简单的例子,我们将使用BungeeCord中的PostLoginEvent.让我们添加第一个监听器: </p> <p><br /></p><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Events</span> <span class="kd">implements</span> <span class="n">Listener</span> <span class="o">{</span> <span class="nd">@EventHandler</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onPostLogin</span><span class="o">(</span><span class="n">PostLoginEvent</span> <span class="n">event</span><span class="o">)</span> <span class="o">{</span> <span class="o">}</span> <span class="o">}</span> </pre></div><p><br /> </p><p>每当玩家(ProxiedPlayer)成功通过身份验证并准备连接到服务器时会调用PostLoginEvent.通过我们的监听器,我们可以向所有其他玩家发送这样的消息,表示他们已经加入了BungeeCord 客户端网: </p> <p><br /></p><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Events</span> <span class="kd">implements</span> <span class="n">Listener</span> <span class="o">{</span> <span class="nd">@EventHandler</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onPostLogin</span><span class="o">(</span><span class="n">PostLoginEvent</span> <span class="n">event</span><span class="o">){</span> <span class="k">for</span> <span class="o">(</span><span class="n">ProxiedPlayer</span> <span class="n">player</span> <span class="o">:</span> <span class="n">ProxyServer</span><span class="o">.</span><span class="na">getInstance</span><span class="o">().</span><span class="na">getPlayers</span><span class="o">())</span> <span class="o">{</span> <span class="n">player</span><span class="o">.</span><span class="na">sendMessage</span><span class="o">(</span><span class="k">new</span> <span class="n">TextComponent</span><span class="o">(</span><span class="n">event</span><span class="o">.</span><span class="na">getPlayer</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">&quot; has joined the&quot;</span> <span class="o">+</span> <span class="s">&quot;network.&quot;</span><span class="o">));</span> <span class="o">}</span> <span class="o">}</span> <span class="o">}</span> </pre></div><p><br /> </p><p>完成Events类之后,必须在主类中注册监听器.像这样: </p> <p><br /></p><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Main</span> <span class="kd">extends</span> <span class="n">Plugin</span> <span class="o">{</span> <span class="nd">@Override</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onEnable</span><span class="o">()</span> <span class="o">{</span> <span class="n">getProxy</span><span class="o">().</span><span class="na">getPluginManager</span><span class="o">().</span><span class="na">registerListener</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="k">new</span> <span class="n">Events</span><span class="o">());</span> <span class="o">}</span> <span class="o">}</span> </pre></div><p><br /> </p><p>确保你使用的是事件列表中的事件,这样你就可以在你的插件中适当地与事件进行交互。 </p> <h3><span id="创建你自己的事件"></span><span class="mw-headline" id=".E5.88.9B.E5.BB.BA.E4.BD.A0.E8.87.AA.E5.B7.B1.E7.9A.84.E4.BA.8B.E4.BB.B6">创建你自己的事件</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=11" title="编辑小节:创建你自己的事件">编辑</a><span class="mw-editsection-bracket">]</span></span></h3> <h2><span id="常有的误区"></span><span class="mw-headline" id=".E5.B8.B8.E6.9C.89.E7.9A.84.E8.AF.AF.E5.8C.BA">常有的误区</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=12" title="编辑小节:常有的误区">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="创建基础的命令功能_(代理)"></span><span class="mw-headline" id=".E5.88.9B.E5.BB.BA.E5.9F.BA.E7.A1.80.E7.9A.84.E5.91.BD.E4.BB.A4.E5.8A.9F.E8.83.BD_.28.E4.BB.A3.E7.90.86.29">创建基础的命令功能 (代理)</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=13" title="编辑小节:创建基础的命令功能 (代理)">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="Bukkit_和_BungeeCord_插件消息通道"></span><span class="mw-headline" id="Bukkit_.E5.92.8C_BungeeCord_.E6.8F.92.E4.BB.B6.E6.B6.88.E6.81.AF.E9.80.9A.E9.81.93">Bukkit 和 BungeeCord 插件消息通道</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=14" title="编辑小节:Bukkit 和 BungeeCord 插件消息通道">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="聊天组件_API"></span><span class="mw-headline" id=".E8.81.8A.E5.A4.A9.E7.BB.84.E4.BB.B6_API">聊天组件 API</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=15" title="编辑小节:聊天组件 API">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="在服务器之间传送玩家_(代理)"></span><span class="mw-headline" id=".E5.9C.A8.E6.9C.8D.E5.8A.A1.E5.99.A8.E4.B9.8B.E9.97.B4.E4.BC.A0.E9.80.81.E7.8E.A9.E5.AE.B6_.28.E4.BB.A3.E7.90.86.29">在服务器之间传送玩家 (代理)</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=16" title="编辑小节:在服务器之间传送玩家 (代理)">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="使用BungeeCord配置文件系统"></span><span class="mw-headline" id=".E4.BD.BF.E7.94.A8BungeeCord.E9.85.8D.E7.BD.AE.E6.96.87.E4.BB.B6.E7.B3.BB.E7.BB.9F">使用BungeeCord配置文件系统</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=17" title="编辑小节:使用BungeeCord配置文件系统">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="通过BungeeCord创建计分板"></span><span class="mw-headline" id=".E9.80.9A.E8.BF.87BungeeCord.E5.88.9B.E5.BB.BA.E8.AE.A1.E5.88.86.E6.9D.BF">通过BungeeCord创建计分板</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=18" title="编辑小节:通过BungeeCord创建计分板">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <h2><span id="创建一个Bungee的插件_(不需要Maven)"></span><span class="mw-headline" id=".E5.88.9B.E5.BB.BA.E4.B8.80.E4.B8.AABungee.E7.9A.84.E6.8F.92.E4.BB.B6_.28.E4.B8.8D.E9.9C.80.E8.A6.81Maven.29">创建一个Bungee的插件 (不需要Maven)</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=BungeeCord%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&amp;action=edit&amp;section=19" title="编辑小节:创建一个Bungee的插件 (不需要Maven)">编辑</a><span class="mw-editsection-bracket">]</span></span></h2> <!-- NewPP limit report Cached time: 20220317060457 Cache expiry: 86400 Dynamic content: false CPU time usage: 0.036 seconds Real time usage: 1.180 seconds Preprocessor visited node count: 213/1000000 Preprocessor generated node count: 839/1000000 Post‐expand include size: 2545/2097152 bytes Template argument size: 754/2097152 bytes Highest expansion depth: 5/40 Expensive parser function count: 0/100 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 5969/5000000 bytes --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 6.479 1 -total 68.87% 4.462 1 模板:待完善 51.20% 3.317 2 模板:Info 29.43% 1.907 1 模板:待更新 --> </div>
Unix timestamp of change (timestamp)
1647497095