| |
环境构建&准备编程! |
| |
- BungeeCord(以下简称BC)相信各服主多少都有听说过,说的简单点就是把不同服务器拼到一起去的一个代理,玩家通过连接到bungeecord可以像在同一服务器内体验到实际上是不同服务器的内容(好拗口)。使用bungeecord代理的好处也有不少,但我在这里就不多说了( 要开始写BungeeCord插件需要先大概了解一下他的工作原理: 祖传的windows画图 ![]() 所以玩家在换服的时候保持连接到bc但是BC把玩家的数据从一个服务器断开连接,再连接到另一个服务器,而这时玩家客户端并不会发送登陆请求(因为玩家客户端以为自己仍然保持连接),所以BC会虚拟一个玩家登录请求并发送往下一个服务器 而从上图可以看出,玩家发送给BC的数据包≠BC发送给服务器的数据包,这是因为BC在代理过程对数据包做了些须修改(比如多版本),这也是为什么许多mod不能在BC代理的服务器上运行( |
| |
首先,你需要安装jdk&ide: 教程 本教程将会用到IntelliJ 本教程后期将会用到maven,前期并不会对( 本教程将不会对IDE的安装和操作做任何介绍,有问题可以看这里 如果对本教程的内容有任何疑问 |
| |
BungeeCord插件的结构和Bukkit插件可以说几乎一样,因为BC作者md_5受到了很多BukkitAPi的影响,所以如果有时间可以阅读一下我的Bukkit插件教程:这里 本教程写作将假设你已经阅读完了我的Bukkit教程。 言归正传,BC插件主类将继承net.md_5.bungee.api.plugin.Plugin类,类似Bukkit插件继承的JavaPlugin, 在服务器启动的时候也会调用主类中的onEnable()方法。 而BC插件加载的方式也和Bukkit插件类似,会读取jar根目录下的plugin.yml。 这时候你有可能会问了:如果和Bukkit一样都是读取plugin.yml的话,那么如果我想要写一个同时支持Bukkit和BC的jar要怎么办?Java又不能同时继承两个类( md_5也考虑到了这一点,所以BungeeCord也支持相同格式的根目录下的bungee.yml,而这时候你就可以写出同一个jar支持多个核心的插件了。 这里举个栗子,比如我有一个插件我希望同时支持BC, Bukkit,Sponge,还有forge(虽然我不知道为什么你要这么干) 那么我可以这样设置结构:
然后文件各个文件: bungee.yml: BungeeMain.java: 至此,你已经准备好了BC插件开发 以下是支持Bukkit/Sponge/ plugin.yml: BukkitMain.java: SpongeMain.java: mcmod.info & ForgeCommonProxy.java: 如果你看不懂plugin.yml或者bungee.yml的格式可以看 这个教程的plugin.yml部分 关于怎么导入包(eclipse上红线)请查看Bukkit教程,在本阶段核心文件可以和bukkit插件教程以一样的方法导入,只不过导入的是BungeeCord.jar 关于BungeeCord.jar的下载地址... https://ci.md-5.net/job/BungeeCord/ |
gooding300 发表于 2018-8-20 21:27
请修改一下最后的高亮字体,在修改后请以任意方式联系我撤销负面评分