v0.4.0
In this release, we added an event system and several basic interfaces for game objects like Level
, Actor
and Player
.
Game version: v1.20.73
Added
- Event system that allows plugins to listen for specific events.
ServerLoadEvent
is called when a server is started up.Plugin::registerEventHandler
for registering an event handler in C++ plugins.- Decorator
@event_handler
for registering an event handler in Python plugins. PluginEnableEvent
andPluginDisableEvent
are called when a plugin is enabled or disabled.ServerPingListEvent
can be listened to for customizing how the server appears in the client list.ServerCommandEvent
is called when the server executes a command.WeatherChangeEvent
andThunderChangeEvent
are called when the weather or thunder status changes in a level.- Basic interface
endstone::Level
for a level/world. - Basic interface
endstone::Actor
for entities/actors. - Basic interface
endstone::Player
for players. Server::getPlayer
for getting a player instance by UUID.Player::sendPopup
andPlayer::sendTip
for sending popup and tip messages.- Stack traces are now printed to the console when an unrecoverable error occurs.
PlayerJoinEvent
andPlayerQuitEvent
are called when a player joins and leaves the server.ActorSpawnEvent
is called when an actor is spawned in the level.ActorRemoveEvent
is called when an actor is removed from the level.PlayerChatEvent
is called when a player sends a message.
Changed
- Singletons are now managed using
entt::locator
. - Macro
ENDSTONE_PLUGIN
is improved to simplify the definition of plugin metadata. ColorFormat
andGameMode
have been moved fromendstone.util
toendstone
in the Python package.- Wheels are now built and released with the
RelWithDebInfo
configuration to enable stack trace printing. - Support for Minecraft v1.20.73 (Bedrock)
Fixed
- Server no longer crashes when
/listd
command is executed.