38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from pumpkin_api import (
|
|
Plugin, PluginMetadata, register_plugin,
|
|
server, event, command, text, context
|
|
)
|
|
from pumpkin_api.app import WitWorld, Metadata
|
|
|
|
class MyPlugin(Plugin):
|
|
def metadata(self) -> PluginMetadata:
|
|
return PluginMetadata(
|
|
name="my-plugin",
|
|
version="0.1.0",
|
|
authors=["you"],
|
|
description="An example python plugin.",
|
|
dependencies=[]
|
|
)
|
|
|
|
def on_load(self, ctx: context.Context) -> None:
|
|
print("Python plugin loaded!")
|
|
|
|
# Register an event handler
|
|
self.register_event(ctx, event.EventType.PLAYER_JOIN_EVENT, self.on_player_join)
|
|
|
|
# Register a command
|
|
# cmd = command.Command(["hello"], "A simple hello command")
|
|
# self.register_command(ctx, cmd, self.hello_command)
|
|
|
|
def on_player_join(self, srv: server.Server, evt: event.PlayerJoinEventData) -> event.PlayerJoinEventData:
|
|
print(f"Player {evt.player.get_name()} joined!")
|
|
# We can modify the join message
|
|
# evt.join_message = text.TextComponent_text("Welcome to the server!")
|
|
return evt
|
|
|
|
def hello_command(self, sender: command.CommandSender, srv: server.Server, args: command.ConsumedArgs) -> int:
|
|
sender.send_message(text.TextComponent_text("Hello from Python!"))
|
|
return 1
|
|
|
|
register_plugin(MyPlugin)
|