Store deliveries, leaderboards, Discord linking and event webhooks: the two directions of travel, the queue, the async thread and the shared key, with real Java that compiles.
The site records the order with a unique delivery id. The plugin asks for pending deliveries from an async thread, applies the ones it has not applied yet, then acknowledges. That id is what stops the rank being granted twice if the same delivery is read again after a restart.
The site records the order with a unique delivery id. The plugin asks for pending deliveries from an async thread, applies the ones it has not applied yet, then acknowledges. That id is what stops the rank being granted twice if the same delivery is read again after a restart.
A server running at 20 ticks per second has 50 milliseconds per tick. An HTTP round trip to a website offers no guarantee of fitting in that budget, so the tick stretches and TPS drops. Do the network work on an async thread and hop back to the owning thread to touch the server API.
No. Let the plugin pull from the website using a shared secret and an HMAC signature. An inbound endpoint hosted inside the game process turns the server IP into an attack surface and puts TPS at the mercy of a malformed request.