hytopia
Version:
The HYTOPIA SDK makes it easy for developers to create massively multiplayer games using JavaScript or TypeScript.
118 lines (60 loc) • 2.33 kB
Markdown
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) > [server](./server.md) > [ChatManager](./server.chatmanager.md)
## ChatManager class
Manages chat and commands in a world.
**Signature:**
```typescript
export default class ChatManager extends EventRouter
```
**Extends:** [EventRouter](./server.eventrouter.md)
## Remarks
The ChatManager is created internally as a singleton for each [World](./server.world.md) instance in a game server. The ChatManager allows you to broadcast messages, send messages to specific players, and register commands that can be used in chat to execute game logic.
<h2>Events</h2>
This class is an EventRouter, and instances of it emit events with payloads listed under [ChatEventPayloads](./server.chateventpayloads.md)
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `ChatManager` class.
## Example
```typescript
world.chatManager.registerCommand('/kick', (player, args, message) => {
const admins = [ 'arkdev', 'testuser123' ];
if (admins.includes(player.username)) {
const targetUsername = args[0];
const targetPlayer = world.playerManager.getConnectedPlayerByUsername(targetUsername);
if (targetPlayer) {
targetPlayer.disconnect();
}
}
});
```
## Methods
<table><thead><tr><th>
Method
</th><th>
Modifiers
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[registerCommand(command, callback)](./server.chatmanager.registercommand.md)
</td><td>
</td><td>
Register a command and its callback.
</td></tr>
<tr><td>
[sendBroadcastMessage(message, color)](./server.chatmanager.sendbroadcastmessage.md)
</td><td>
</td><td>
Send a system broadcast message to all players in the world.
</td></tr>
<tr><td>
[sendPlayerMessage(player, message, color)](./server.chatmanager.sendplayermessage.md)
</td><td>
</td><td>
Send a system message to a specific player, only visible to them.
</td></tr>
<tr><td>
[unregisterCommand(command)](./server.chatmanager.unregistercommand.md)
</td><td>
</td><td>
Unregister a command.
</td></tr>
</tbody></table>