跳到主要内容

起源管理

首次加入时随机分配起源​

// kubejs/server_scripts/origins.js
PlayerEvents.loggedIn(event => {
let player = event.player;
let holder = OriginsJS.getHolder(player);

if (holder && !holder.hasAllOrigins()) {
let origins = [
"origins:human",
"origins:enderian",
"origins:phantom",
"origins:avian"
];
let randomOrigin = origins[Math.floor(Math.random() * origins.length)];
holder.setOrigin("origins:origin", randomOrigin);
player.tell("Your origin is: " + randomOrigin);
}
});

聊天时查询起源​

PlayerEvents.chat(event => {
let holder = OriginsJS.getHolder(event.player);
if (holder) {
let originId = holder.getOriginId("origins:origin");
event.player.tell("Current origin: " + (originId || "none"));
}
});

清除并重新分配​

let holder = OriginsJS.getHolder(player);
if (holder) {
holder.clearOrigin("origins:origin");
holder.setOrigin("origins:origin", "origins:human");
}

提示​

  • 始终对 OriginsJS.getHolder() 做空值检查 —— 对非生物实体它会返回 null。
  • 起源更改会立即生效。
  • 用 hasAllOrigins() 判断玩家是否已经选择过起源。