diff --git a/.docs/pterodactyl/setup.md b/.docs/pterodactyl/setup.md index 7d5cfaf..19015dd 100644 --- a/.docs/pterodactyl/setup.md +++ b/.docs/pterodactyl/setup.md @@ -129,11 +129,14 @@ The cog uses a tellraw command to send messages to Minecraft from Discord. To ch Available placeholders: -- `.$U` - replaced with display name -- `.$M` - replaced with message contents -- `.$C` - replaced with top role color (hex) +- `.$C` - replaced with hex color of user's top colored role +- `.$D` - replaced with user's discriminator (will usually be 0, you shouldn't use this) +- `.$M` - replaced with message content +- `.$N` - replaced with author's display name (or guild nickname, if set) +- `.$I` - replaced with the author's ID +- `.$U` - replaced with the author's username (NOT display name, you should usually use `.$N`) Default: ```json -tellraw @a ["",{"text":".$U ","color":".$C"},{"text":" (DISCORD): ","color":"blue"},{"text":".$M","color":"white"}] +tellraw @a ["",{"text":".$D ","color":".$C"},{"text":" (DISCORD): ","color":"blue"},{"text":".$M","color":"white"}] ``` diff --git a/pterodactyl/config.py b/pterodactyl/config.py index 2474e0e..d377614 100644 --- a/pterodactyl/config.py +++ b/pterodactyl/config.py @@ -15,7 +15,7 @@ def register_config(config_obj: Config) -> None: join_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]: ([^<\n]+) joined the game$", leave_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]: ([^<\n]+) left the game$", achievement_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]: (.*) has (made the advancement|completed the challenge) \[(.*)\]$", - chat_command='tellraw @a ["",{"text":".$U ","color":".$C"},{"text":" (DISCORD): ","color":"blue"},{"text":".$M","color":"white"}]', + chat_command='tellraw @a ["",{"text":".$D ","color":".$C"},{"text":" (DISCORD): ","color":"blue"},{"text":".$M","color":"white"}]', api_endpoint="minecraft", chat_channel=None, startup_msg='Server started!', diff --git a/pterodactyl/pterodactyl.py b/pterodactyl/pterodactyl.py index 8bd49a6..bb8f1d5 100644 --- a/pterodactyl/pterodactyl.py +++ b/pterodactyl/pterodactyl.py @@ -71,7 +71,7 @@ class Pterodactyl(commands.Cog): channel = self.bot.get_channel(await config.console_channel()) if channel: await channel.send(f"Received chat message from {message.author.id}: {message.content[:1900]}") - msg = json.dumps({"event": "send command", "args": [await self.get_chat_command(message.author.display_name, message.content, message.author.color)]}) + msg = json.dumps({"event": "send command", "args": [await self.get_chat_command(message)]}) logger.debug("Sending chat message to server:\n%s", msg) try: await self.websocket.send(msg) @@ -81,12 +81,15 @@ class Pterodactyl(commands.Cog): self.retry_counter = 0 self.task = self.get_task() - async def get_chat_command(self, username: str, message: str, color: discord.Color) -> str: + async def get_chat_command(self, message: discord.Message) -> str: command: str = await config.chat_command() placeholders = { - "U": username, - "M": message, - "C": str(color) + "C": str(message.author.color), + "D": message.author.discriminator, + "M": message.content, + "N": message.author.display_name, + "I": str(message.author.id), + "U": message.author.name, } for key, value in placeholders.items(): command = command.replace('$.' + key, value)