|
|
第7行: |
第7行: |
|
| |
|
| == 利用工具 == | | == 利用工具 == |
| | |
| | ===官方工具(疑似已炸)=== |
|
| |
|
| 官方提供了一个极其好用的工具网页. 它可以让你方便地生成一个新的, 配置好的'''BungeeCord'''插件项目. | | 官方提供了一个极其好用的工具网页. 它可以让你方便地生成一个新的, 配置好的'''BungeeCord'''插件项目. |
第17行: |
第19行: |
|
| |
|
| 如果你是新手, 你大可以勾选''Include a listener for me, please.''. 这样他会为你生成一个玩家连接的监听器. | | 如果你是新手, 你大可以勾选''Include a listener for me, please.''. 这样他会为你生成一个玩家连接的监听器. |
| | |
| | ===IntelliJ IDEA插件=== |
| | |
| | 在MarketPlace中搜索“Minecraft Development”,安装后重启IDEA,创建项目选择Minecraft>BungeeCord |
|
| |
|
| ==创建你的第一个BungeeCord插件 (代理)== | | ==创建你的第一个BungeeCord插件 (代理)== |
| 恭喜你决定创建自己第一个BungeeCord插件啦! 这个教程会使你打好基础.<br>
| | ===设置你的项目=== |
| 这需要一定有关Java 编程的知识.([[Bukkit/插件开发教程#学习Java|我没有Java基础]])
| | |
| | **使用插件创建时可跳过** |
|
| |
|
| ===设置你的项目===
| |
| 这个教程只包括IntelliJ IDEA(一款IDE),其他IDE的操作相似. | | 这个教程只包括IntelliJ IDEA(一款IDE),其他IDE的操作相似. |
| 在[https://www.spigotmc.org/wiki/create-your-first-bungeecord-plugin-proxy-spigotmc 原文]处附有Eclipse的操作<br> | | 在[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> | | 首先打开你的IDE,创建一个新的项目,在弹出的选项卡中选择Maven.你应该有与下图相似的界面:<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文件导入,选择导入.如果它询问正在更改的语言级别,允许它重新加载项目.
| | 新建->Java Class |
| ===创建主类===
| |
| 现在展开TestPlugin,src,main,应该看起看来是这样的(:(脑补一下):<br>
| |
|
| |
|
| 右键java,然后创建一个新包,命名为me.username.testplugin.接下来右键新建的包,创建一个新类,命名为TestPlugin.IDE会为你打开文件,如果它没有打开,那么你自己打开(。﹏。)<br>
| | 导入net.md_5.bungee.api.plugin.Plugin |
| 现在,我们可以创建基本的插件.这一章节仅仅聚焦于制作一个仅在启动时显示一条信息的插件.别的章节你可以使自己的插件拥有更多功能.
| |
|
| |
|
| 在TestPlugin'''之后'''在'''{'''之前加入'''extends Plugin'''<br>
| | 在public class xxx后添加“extends Plugin” |
| 代码:<source lang="java">
| |
| package me.username.testplugin;
| |
|
| |
|
| import net.md_5.bungee.api.plugin.Plugin;
| | ===要让它被载入=== |
|
| |
|
| public class TestPlugin extends Plugin {
| | 在bungee.yml/plugin.yml中添加:main: (你的包名).(创建的主类名) |
| @Override
| |
| public void onEnable() {
| |
| // 你不应该显示启动信息
| |
| // bungeeCord已经帮你做了
| |
| getLogger().info("Yay! It loads!");
| |
| }
| |
| }
| |
| | |
| </source>
| |
|
| |
|
| | ===编译=== |
|
| |
|
| ===要让它被载入=== | | ====IntelliJ IDEA==== |
| 现在我们可以创建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.
| |
|
| |
|
| ===编译===
| | Maven:右侧菜单选择Maven->生命周期->package,输出通常储存在target目录中 |
| '''恭喜,我们马上就要完成了'''
| |
| <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>
| |
| 重编译插件,就在按着步骤来一遍
| |
|
| |
|
| ===对开发者的话===
| | Gradle:右侧菜单选择Gradle->build->build,输出通常储存在./build/libs目录中 |
| 如果你是一名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><pre>
| |
| public class Events implements Listener {
| |
| @EventHandler
| |
| public void onPostLogin(PostLoginEvent event) {
| |
|
| |
| }
| |
| }
| |
| </pre><br>
| |
|
| |
|
| 每当玩家(ProxiedPlayer)成功通过身份验证并准备连接到服务器时会调用PostLoginEvent.通过我们的监听器,我们可以向所有其他玩家发送这样的消息,表示他们已经加入了BungeeCord 客户端网:
| | Maven:(需自行安装Maven)运行mvn package |
| <br><pre>
| |
| 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."));
| |
| }
| |
| }
| |
| }
| |
| </pre><br>
| |
| 完成Events类之后,必须在主类中注册监听器.像这样:
| |
| <br><pre>
| |
| public class Main extends Plugin {
| |
| @Override
| |
| public void onEnable() {
| |
| getProxy().getPluginManager().registerListener(this, new Events());
| |
| }
| |
| }
| |
| </pre><br>
| |
| 确保你使用的是事件列表中的事件,这样你就可以在你的插件中适当地与事件进行交互。
| |
| ===创建你自己的事件===
| |
|
| |
|
| | Gradle:运行.\gradlew build(需创建的项目中有gradlew.bat或gradlew文件,没有则自行安装Gradle后运行gradle build) |
|
| |
|
| | ===对开发者的话=== |
| | ==事件处理API教程== |
| ==常有的误区== | | ==常有的误区== |
| ==创建基础的命令功能 (代理)== | | ==创建基础的命令功能 (代理)== |
本条目已有一定量的内容,但仍需完善
欢迎参与本条目的完善工作。
你可以从以下几个方面入手
- 参阅格式化手册,并对该页面进行相应格式排版工作;
- 日常检查是否内容有更新版本并更新该页面;
- 修复该页面中已出现/潜在的问题
介绍
BungeeCord是一个转发服务端. 你也可以把它理解为代理服务端. 鉴于国内似乎没有BungeeCord插件, 我觉得写一篇教程会好些.
利用工具
官方工具(疑似已炸)
官方提供了一个极其好用的工具网页. 它可以让你方便地生成一个新的, 配置好的BungeeCord插件项目.
该页面的地址 [1]
只要简单地输入Plugin name, Plugin package, Plugin author, Plugin version
他就会自动为你生成一个项目, 和一些基础的代码.
如果你是新手, 你大可以勾选Include a listener for me, please.. 这样他会为你生成一个玩家连接的监听器.
IntelliJ IDEA插件
在MarketPlace中搜索“Minecraft Development”,安装后重启IDEA,创建项目选择Minecraft>BungeeCord
创建你的第一个BungeeCord插件 (代理)
设置你的项目
这个教程只包括IntelliJ IDEA(一款IDE),其他IDE的操作相似.
在原文处附有Eclipse的操作
首先打开你的IDE,创建一个新的项目,在弹出的选项卡中选择Maven.你应该有与下图相似的界面:
创建主类
新建->Java Class
导入net.md_5.bungee.api.plugin.Plugin
在public class xxx后添加“extends Plugin”
要让它被载入
在bungee.yml/plugin.yml中添加:main: (你的包名).(创建的主类名)
编译
IntelliJ IDEA
Maven:右侧菜单选择Maven->生命周期->package,输出通常储存在target目录中
Gradle:右侧菜单选择Gradle->build->build,输出通常储存在./build/libs目录中
控制台
Maven:(需自行安装Maven)运行mvn package
Gradle:运行.\gradlew build(需创建的项目中有gradlew.bat或gradlew文件,没有则自行安装Gradle后运行gradle build)
对开发者的话
事件处理API教程
常有的误区
创建基础的命令功能 (代理)
Bukkit 和 BungeeCord 插件消息通道
聊天组件 API
在服务器之间传送玩家 (代理)
使用BungeeCord配置文件系统
通过BungeeCord创建计分板
创建一个Bungee的插件 (不需要Maven)