# 介绍

这是一个 Minecraft 多人竞速小游戏,分为两个队伍,先收集完指定方块的队伍获胜。

地址:Github MCBBS

这是我的第一个 Java 项目,代码结构可能有很多问题,请见谅。

我会在这里更新一些开发中的小趣事。

# 2023.9.18

过了大半年,终于回来更新了 2.1 版本。一些小趣事:

  1. 以前经常用 ConsoleCommandHandler.send() 方法,里面直接填指令,因为那时候 Bukkit api 还不太熟悉。现在来看,所有指令都能用 Bukkit api 实现,避免了潜在的时序问题和控制台的过多输出。
  2. 把事件监听器拆分成了多个监听器,分为 BasicEventListenerInventoryEventListener ,添加了 IListener 接口、 ListenerManagerListenerRegister 。这个结构是从别的项目学到的,结构很清晰。后续还可以添加更多监听器来分类。
  3. 下界疣的 translationKey 和翻译文件里的不一样。。一个归为 block 一个归位了 item。。就导致记分板会显示为 NULL。我目前加了个 if 暂时解决了这个问题,不知道后续 Bukkit 会不会修复。

# 2023.9.25

从两个大佬给的建议修改了一些东西。一些小趣事:

  1. 之前玩家进入世界时初始化设置总是失败,才发现有两个 Event,一个是 PlayerLoginEvent ,一个是 PlayerJoinEvent 。前者是玩家登录服务器时触发,后者是玩家成功进入世界时触发。我以前一直用的第一个,就导致那个时候很多东西(比如记分板)还没初始化好。前者应该是封禁插件会用到的。
  2. 一个很神奇的事情,我用 ArrayList 存储 Player 对象的时候,玩家每次退出重进时,对象是不一样的。如果玩家退出重进,原来 List 里的对象跟新的 Player 不是一个东西。不知道为啥。就导致玩家重进之后对于 List 的处理会出问题。我还没想到什么好的解决方法,就用一个新 List 储存 String 用户名,玩家登录的时候再重新把新的对象替换到 List 中。问题是解决了,但代码还是有点别扭。

# 2023.9.28

修复了一些小 Bug。目前来看没啥严重的问题了。学业很忙,可能寒假前都没时间更新了。

更新于 阅读次数