initial commit

This commit is contained in:
Jeremy Baxter 2025-05-02 12:40:32 +12:00
commit f55f51fec3
3 changed files with 91 additions and 0 deletions

11
.editorconfig Normal file
View file

@ -0,0 +1,11 @@
root = true
[*]
end_of_line = lf
indent_style = tab
indent_size = 4
insert_final_newline = true
[*.{json,md}]
indent_style = space
indent_size = 2

29
manifest.json Normal file
View file

@ -0,0 +1,29 @@
{
"format_version": 2,
"header": {
"description": "Update a Discord channel with messages from Minecraft",
"name": "consensus",
"uuid": "6e44dfed-cd30-4ea7-9c29-35dd9e8ca3f8",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 30]
},
"modules": [
{
"description": "JavaScript source",
"type": "script",
"uuid": "5ceeafd7-fb35-457a-bad1-24c2f45240f8",
"version": [1, 0, 0],
"entry": "scripts/main.js"
}
],
"dependencies": [
{
"module_name": "@minecraft/server",
"version": "1.17.0-beta"
},
{
"module_name": "@minecraft/server-net",
"version": "1.0.0-beta"
}
]
}

51
scripts/main.js Normal file
View file

@ -0,0 +1,51 @@
import {
world,
system
} from "@minecraft/server";
import {
http,
HttpRequest,
HttpHeader,
HttpRequestMethod
} from "@minecraft/server-net";
// CHANGE THIS TO YOUR WEBHOOK URL!
const webhookUrl = ":webhook:";
async function makeMessage(author, message) {
const req = new HttpRequest(webhookUrl);
req.body = JSON.stringify({
username: author,
content: message
});
req.method = HttpRequestMethod.Post;
req.headers = [
new HttpHeader("Accept", "application/json"),
new HttpHeader("Content-Type", "application/json"),
];
await http.request(req);
}
world.beforeEvents.chatSend.subscribe((e) => {
e.cancel = true;
system.run(() => {
world.sendMessage(`${e.sender.name}: ${e.message}`);
makeMessage(e.sender.name, e.message);
});
});
world.afterEvents.playerJoin.subscribe((e) => {
e.cancel = true;
system.run(() => {
makeMessage("Server", `> ${e.playerName} joins`);
});
});
world.afterEvents.playerLeave.subscribe((e) => {
e.cancel = true;
system.run(() => {
makeMessage("Server", `> ${e.playerName} leaves`);
});
});