aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-05feat(applets): add appletsHEADmasterTrumeet
2022-09-03build(acronc): add missing dependency libuv to acronc's PKGBUILDTrumeet
2022-08-18fix(acronc): OpenBSD buildTrumeet
2022-08-10feat(mod): use @Inject with capture locals instead of @RedirectTrumeet
2022-08-10revert: fix(acron): add remap = false for MinecraftServerMixin#startServerTrumeet
Adding remap = false actually makes the server unable to start. This commit reverts 8f07d4ee8f345feb36c4f1c99eea2fe4f1cdf6e3
2022-08-10fix(libacron): ac_receive does not correctly return the error codeTrumeet
2022-08-09build(acronc): add Arch Linux PKGBUILDTrumeet
2022-08-09fix(acronc): pkg-config name for libac is 'ac', not 'libac'Trumeet
2022-08-09feat(acronc): add error log when h_stdin failsTrumeet
2022-08-09fix(libacron/acronc/helloworld): ac_receive: 'read' should be the delta ↵Trumeet
value of bytes read in the call, not the absolute position Also clearify that 'read' is undefined if the function fails.
2022-08-09fix(libacron): infinite loop when wic_parse returns 0Trumeet
This is a rather complicated way to fix backlogging issues. It asks the client to pass partial buffer, and the client also must retry with NULL buffer if ac_receive returns AC_E_AGAIN.
2022-08-09fix(acronc): optional player for AC_EVENT_PLAYER_DISCONNECTTrumeet
2022-08-03fix(mod): hook PlayerManager#onPlayerConnect instead of ↵Trumeet
ServerLoginNetworkHandler#addToServer Carpet mod fake players will call the former method directly.
2022-07-29docs: add contributing guideTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-29feat(mod/libacron): provide entity type to clientsTrumeet
API:ADD
2022-07-29build(helloworld): switch to MesonTrumeet
2022-07-29fix(libacron): spec incompliance: player is optional in disconnect eventsTrumeet
API:CHANGE
2022-07-29fix(libacron): incorrect pkg-config include dirTrumeet
2022-07-28build(libacron): add Arch Linux PKGBUILDTrumeet
2022-07-28fix(libacron): memory leak when received more than one framesTrumeet
API:CHANGE
2022-07-27Remove acronc/CMakeLists.txtTrumeet
2022-07-27fix(acronc): fix FreeBSD buildTrumeet
2022-07-27docs(mod): fix wrong config key 'listen'Trumeet
2022-07-27feat(acronc): add Windows supportTrumeet
2022-07-27fix(acronc): unable to input tokenTrumeet
2022-07-27build(acronc): switch to MesonTrumeet
2022-07-27build(libacron): subproject readyTrumeet
2022-07-27build(libacron): switch to MesonTrumeet
Meson is better on resolving dependencies on various platforms.
2022-07-27feat(mod): enforce cmd response ordering and terminationTrumeet
2022-07-27feat(acronc): add id and host to the promptTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-27fix(acronc): endif DEBUGTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-26feat(acronc): prettify cli experienceTrumeet
1. Make SIGINT interrupt the current operation by forcing stdin to listen again (because the spec currently does not specify how to send the final response, so acronc will wait forever in case of invalid commands) 2. Prettify prompt and output. Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-26fix(acronc): input <cmd><EOF> will cause illegal memory accessTrumeet
Cause: 1. stdin got cmd -> request 2. stdin got EOF -> ac_disconnect -> ac_conn becomes NULL 3. socket got response -> ac_receive(ac_conn) -> crash Conclusion: ordering issue between ac_disconnect and socket read. Solution: Best way: pause the input until command returns Cons: 1. Lost the advantage of background execution of commands (has to wait until done) 2. It is unreliable to determine if a command is done: although the current server implementation will not send anything else after an error or cmd_result, Minecraft server itself or future server implementations may. The spec does not say anything on termination. Acronc currently assumes that after receiving an error or cmd_result with the same request ID, it is done. Then, it resumes the stdin, reads the EOF, and then disconnect. Worse way: Directly call uv_read_stop before ac_disconnect Cons: It is going to lose anything, including command results. This is particularly undesirable for ad-hoc calls (i.e. echo list | acronc). Therefore, the current approach is to block and read as much as we can (until error or cmd_result), then stop reading the socket before disconnecting as a double safe. Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-26feat(acronc): support reading token from env var ACRONC_TOKENTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-26Move the mod to mod/Trumeet
2022-07-26build(acronc): statically link against libacTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-26fix(acronc): code cleanupTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-26refactor(libacron/acronc/helloworld): move to separate directoriesTrumeet
The corresponding CMakeLists.txt files are still rough.
2022-07-26feat(acronc): add acronc(1), the Acron cliTrumeet
Still in early development, Windows support is incomplete. Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-25feat(libacron): support force disconnecting without writing anythingTrumeet
API:CHANGE Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-24fix(acron): add remap = false for MinecraftServerMixin#startServerTrumeet
This surpasses the warning of `Unable to locate method mapping for @At(INVOKE.<target>) 'Lorg/apache/logging/log4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V'`. Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23fix(acron): incorrect cmd_out 'out' argumentTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23fix(acron): incorrect cmd_out typeTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23fix(helloworld): ACRONC_DEPS not usedTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23refactor(acronc): rename acronc to helloworldTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23feat(acronc): guard the connection using a mutexTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23feat(libacron/acronc): delegate socket IO to the clientTrumeet
API:CHANGE Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-23fix(libacron): Windows does not have 'm' dependencyTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-22fix(acronc): add missing \nTrumeet
Signed-off-by: Trumeet <yuuta@yuuta.moe>
2022-07-22feat(acronc): set SIGINT and SIGTERM handlers on UnixTrumeet
Otherwise ASAN does not seem to run (if terminated). Signed-off-by: Trumeet <yuuta@yuuta.moe>