change(kubejs): updated KubeJS scripts
This commit is contained in:
parent
ee585b9e8b
commit
a9f874e58d
6 changed files with 150 additions and 101 deletions
|
|
@ -1,72 +0,0 @@
|
|||
// Creates and configures the Creative dimension
|
||||
|
||||
/*
|
||||
const config = global.config;
|
||||
const hexToRgb = global.hexToRgb;
|
||||
|
||||
/////////////////
|
||||
/// DIMENSION ///
|
||||
/////////////////
|
||||
// Defines the Creative dimension
|
||||
ServerEvents.highPriorityData((event) => {
|
||||
event.addJson("retards:dimension/creative.json", {
|
||||
type: "minecraft:overworld",
|
||||
generator: {
|
||||
type: "minecraft:flat",
|
||||
settings: {
|
||||
biome: "minecraft:plains",
|
||||
lakes: false,
|
||||
features: false,
|
||||
layers: Object.entries(config.creative.layers).map(
|
||||
([block, count]) => ({
|
||||
block: block,
|
||||
height: count,
|
||||
}),
|
||||
),
|
||||
structures: {},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
//////////////
|
||||
/// PORTAL ///
|
||||
//////////////
|
||||
// Defines the Creative portal
|
||||
/*
|
||||
ServerEvents.highPriorityData((event) => {
|
||||
const portal = config.creative;
|
||||
const color = hexToRgb(portal.color);
|
||||
event.addJson("retards:portals/creative.json", {
|
||||
block: portal.material,
|
||||
dim: "retards:creative",
|
||||
r: color.r,
|
||||
g: color.g,
|
||||
b: color.b,
|
||||
ignitionType: "FLUID",
|
||||
ignitionSource: portal.fluid,
|
||||
});
|
||||
});
|
||||
|
||||
//////////////
|
||||
/// DIMINV ///
|
||||
//////////////
|
||||
// Applies Dimensional Inventories to the Creative dimension
|
||||
PlayerEvents.loggedIn((event) => {
|
||||
const data = event.server.persistentData;
|
||||
if (!data.creativeInitialized) {
|
||||
data.creativeInitialized = true;
|
||||
event.server.runCommandSilent("diminv pool creative create");
|
||||
event.server.runCommandSilent(
|
||||
"diminv pool creative dimension retards:creative assign",
|
||||
);
|
||||
event.server.runCommandSilent("diminv pool creative gameMode creative");
|
||||
event.server.runCommandSilent(
|
||||
"diminv pool creative progressAdvancements false",
|
||||
);
|
||||
event.server.runCommandSilent(
|
||||
"diminv pool creative incrementStatistics false",
|
||||
);
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
|
@ -17,6 +17,7 @@ PlayerEvents.respawned((event) => {
|
|||
const player = event.player;
|
||||
|
||||
const ticket = tickets[player.uuid];
|
||||
|
||||
if (ticket != null) player.give(Item.of(ticket, 1));
|
||||
|
||||
tickets[player.uuid] = null;
|
||||
|
|
|
|||
71
kubejs/server_scripts/rsapi-commands.js
Normal file
71
kubejs/server_scripts/rsapi-commands.js
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
ServerEvents.commandRegistry((event) => {
|
||||
const { commands: Commands, arguments: Arguments } = event;
|
||||
|
||||
// /rsapi [<player>]
|
||||
function playerInventory(player) {
|
||||
const result = [];
|
||||
|
||||
function pushItem(pos, item) {
|
||||
if (item.isEmpty()) return;
|
||||
let nbtData = {};
|
||||
try {
|
||||
if (item.nbt) {
|
||||
nbtData = JSON.parse(item.nbt.toString());
|
||||
}
|
||||
} catch (e) {
|
||||
nbtData = {};
|
||||
}
|
||||
result.push([pos, item.id, item.count, nbtData]);
|
||||
}
|
||||
|
||||
// Main inventory (27 slots)
|
||||
player.inventory.items.forEach((item, i) => {
|
||||
pushItem(["inventory", i], item);
|
||||
});
|
||||
|
||||
// Hotbar (9 slots)
|
||||
// player.inventory.hotbar.forEach((item, i) => {
|
||||
// pushItem(["hotbar", i], item);
|
||||
// });
|
||||
|
||||
console.log(result);
|
||||
return 1;
|
||||
|
||||
// Armor
|
||||
// pushItem(["armor", "head"], player.headArmorItem);
|
||||
// pushItem(["armor", "chest"], player.chestArmorItem);
|
||||
// pushItem(["armor", "legs"], player.legsArmorItem);
|
||||
// pushItem(["armor", "feet"], player.feetArmorItem);
|
||||
|
||||
// Offhand
|
||||
// pushItem(["offhand", 0], player.offHandItem);
|
||||
|
||||
// Trinkets (if present)
|
||||
if (player.trinkets) {
|
||||
player.trinkets.groups.forEach((group) => {
|
||||
group.slots.forEach((slot) => {
|
||||
slot.items.forEach((item, index) => {
|
||||
pushItem(["trinkets", group.id, slot.id, index], item);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(result));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// /rsapi
|
||||
event.register(
|
||||
Commands.literal("rsapi")
|
||||
.requires((src) => src.hasPermission(2))
|
||||
.executes((ctx) => playerInventory(ctx.source.player))
|
||||
.then(
|
||||
// /rsapi [<player>]
|
||||
Commands.argument("target", Arguments.PLAYER.create(event)).executes(
|
||||
(ctx) => playerInventory(Arguments.PLAYER.getResult(ctx, "target")),
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
78
kubejs/server_scripts/rsapi-events.js
Normal file
78
kubejs/server_scripts/rsapi-events.js
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
var _hooks = {};
|
||||
|
||||
function rsapi(event, id, data) {
|
||||
console.log(`rsapi:${id}:${JSON.stringify(data)}`);
|
||||
if (_hooks[id]) _hooks[id](event, data);
|
||||
}
|
||||
|
||||
const RSEvent = {
|
||||
on: (id, func) => {
|
||||
_hooks[id] = func;
|
||||
},
|
||||
};
|
||||
|
||||
function getData(event) {
|
||||
return {
|
||||
username: event.player ? String(event.player.username) : null,
|
||||
message: event.message ? String(event.message) : null,
|
||||
input: event.input ? String(event.input) : null,
|
||||
};
|
||||
}
|
||||
|
||||
///////////////////
|
||||
/// === API === ///
|
||||
///////////////////
|
||||
|
||||
// rsapi:event.playerJoined:"Player"
|
||||
PlayerEvents.loggedIn((event) => {
|
||||
const { username } = getData(event);
|
||||
rsapi(event, "event.playerJoined", username);
|
||||
});
|
||||
|
||||
// rsapi:event.playerLeft:"Player"
|
||||
PlayerEvents.loggedOut((event) => {
|
||||
const { username } = getData(event);
|
||||
rsapi(event, "event.playerLeft", username);
|
||||
});
|
||||
|
||||
// rsapi:event.playerChat:["Player","Message"]
|
||||
PlayerEvents.chat((event) => {
|
||||
const { username, message } = getData(event);
|
||||
rsapi(event, "event.playerChat", [username, message]);
|
||||
});
|
||||
|
||||
// rsapi:event.serverChat:"Message"
|
||||
ServerEvents.command("say", (event) => {
|
||||
const { input } = getData(event);
|
||||
rsapi(
|
||||
event,
|
||||
"event.serverChat",
|
||||
input.startsWith("say ") ? input.slice(4) : input,
|
||||
);
|
||||
});
|
||||
|
||||
// rsapi:event.playerDied:"Player"
|
||||
EntityEvents.death("player", (event) => {
|
||||
const { username } = getData(event);
|
||||
rsapi(event, "event.playerDied", username);
|
||||
});
|
||||
|
||||
/////////////////////
|
||||
/// === HOOKS === ///
|
||||
/////////////////////
|
||||
|
||||
RSEvent.on("event.playerJoined", (event, username) => {
|
||||
function title(player, message) {
|
||||
event.server.runCommandSilent("title @a times 20 200 20");
|
||||
event.server.runCommandSilent(
|
||||
"title " + player + ' title ["' + message + '"]',
|
||||
);
|
||||
}
|
||||
|
||||
if (username === "Sbebas_s") title(username, "MCFLURRY!!!!");
|
||||
else if (username === "Mark917") title(username, "CUCARACHA");
|
||||
else if (username === "Anthony_7") title(username, "onion rings");
|
||||
else if (username === "Tren_boy") title(username, "Kebab");
|
||||
else if (username === "Cheruz") title(username, "Basta\ngiocare\nnegro");
|
||||
else title(username, "Welcome");
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue