johnbanq
johnbanq
The Bukkit API is a well-known and long-existed plugin API that almost dictated plugin development on Java Edition for years,its longevity means that it must have got some abstraction right!...
We now have like 10 mods in this repo,and stuff like packet sending & handling,player & world events are just basically lying around in modules that uses them,so why not...
performed minor cleanup, renaming and concentration of concern in NetworkManager. This might permit some further refactoring and cleanup in network-related code.
Move TPS calculation logic into another class & renamed nextTick to nextTickTimeMillis. Not much of an addition, but is helpful in terms of slicing up the mega CloudServer object.
## 现有问题 在当前版本里,服务器是通过在main线程里执行System.exit(0)强行终止整个进程来实现停止的。 我猜想这里之所以需要强行杀掉进程,是因为Nukkit内部存在线程泄漏问题,这只是解决这个问题无可奈何的做法。但是这么做一方面不优雅(所有线程会被立刻终止,包括那些可能在执行最后一点清理逻辑的线程),另一方面会对热重启等特性的实现造成影响。 所以,我提议我们正面解决这个问题,通过好好地把尚未关闭的线程池关闭来自然地停机。 ## 修改计划 - [ ] 关闭线程池,实现优雅停机 - [*] 分析main线程结束后进程无法退出的原因,揪出那些尚未被关闭的线程池 - 目前已知的泄露有下述三个,在全部关闭后服务器是可以正常退出的: - PGZIPOutputStream内部的静态线程池 - BlockStateRegistry里的asyncStateRemover - Metrics里的scheduler - [ ] 设计逻辑关闭这些线程池 - [ ] 避免线程泄露问题复发,对可能的复发提供预案...
There should be an assertion to ensure the embedding process completes successfully
# My Proposal for the Overall Design of the Allay Server I believe the key focus of the entire system lies in the division of network protocol, storage, and game...
# Proposal: Using a Dependency Injection Container To enhance the extensibility of the core, address dependency and initialization issues, we should introduce a dependency injection container (e.g., Guice) to help...
Thanks for your fantastic course! It certainly helped me get started in computer graphics! Here are some typos/errors I have found in the wiki during my reading: * Chapter 2...
Manually checking localization.ts is very painful! So I whipped out this hacky script that automatically checks it: https://github.com/johnbanq/supersplat-i18n-check. It automatically finds: * untranslated keys * unused keys * undefined keys...