我打算做一个挂机部分信息发送的实现。我之前是创建一个类给定一个Timer实例对象,但是经过测试,似乎保存在该类之中无法将其左右于玩家,那么应该如何实现这个呢。。。还是通过存储玩家对象进行多线程发送。。。。
任何时候都别存玩家对象
很有可能玩家下线了什么的
请存储UUID,名字也少存,尽量都用uuid
很有可能玩家下线了什么的
请存储UUID,名字也少存,尽量都用uuid
直接开一个BukkitRunnable好了
用单独的类继承bkrunnable
然后实现你的逻辑
或者可以是比如说构造函数直接传入玩家uuid
然后每一个挂机玩家都有一个自己的runnable
可以避免什么循环这样的操作实现一定的解耦合而且也符合面向对象的思想
如果是定时执行循环遍历玩家列表,再如何如何,那就是面向过程的写法
(我就喜欢面向过程
用单独的类继承bkrunnable
然后实现你的逻辑
或者可以是比如说构造函数直接传入玩家uuid
然后每一个挂机玩家都有一个自己的runnable
可以避免什么循环这样的操作实现一定的解耦合而且也符合面向对象的思想
如果是定时执行循环遍历玩家列表,再如何如何,那就是面向过程的写法
(我就喜欢面向过程
William_Shi 发表于 2020-6-8 21:07
任何时候都别存玩家对象
很有可能玩家下线了什么的
请存储UUID,名字也少存,尽量都用uuid ...
emmm,是考虑到性能问题嘛。。。还是什么的。。。
ZeroArchive 发表于 2020-6-8 21:22
emmm,是考虑到性能问题嘛。。。还是什么的。。。
玩家下线之后玩家对象就不存在了
而且不可能直接对着整个玩家对象equals吧
肯定是用名字或者是uuid
本帖最后由 ZeroArchive 于 2020-6-8 22:28 编辑
UUID不是根据硬件编码和时间戳来生成的嘛。。。那么应该根据什么来指向玩家对象呢。。。十分感谢。。。我还以为是需要通过Java的UUID类去自行生成一个UUID数据。。。
William_Shi 发表于 2020-6-8 21:29
玩家下线之后玩家对象就不存在了
而且不可能直接对着整个玩家对象equals吧
肯定是用名字或者是uuid ...
UUID不是根据硬件编码和时间戳来生成的嘛。。。那么应该根据什么来指向玩家对象呢。。。十分感谢。。。我还以为是需要通过Java的UUID类去自行生成一个UUID数据。。。