Despawnitem.txt

// LiteLoader-AIDS automatic generated
/// <reference path="c:\Users\YeJi\Documents/dts/HelperLib-master/src/index.d.ts"/>

ll.registerPlugin(
/* name */ "DespawnItem",
/* introduction */ "DespawnItem",
/* version */ [0,0,3],
/* otherInformation */ {"author":"PHEyeji"}
);

// 初始化数据库和配置文件
let db = new KVDatabase("./plugins/DespawnItem/data/");
let conf = new JsonConfigFile("./plugins/DespawnItem/config.json");

// 服务器启动完成时的监听器
mc.listen("onServerStarted", () => {
// 初始化配置文件中的消失时间,默认为30秒
conf.init("time", 30);
// 创建新的指令用于修改掉落物消失时间
let cmd = mc.newCommand("despawnitem", "修改掉落物消失时间", PermType.GameMasters);
cmd.mandatory("Time", ParamType.Int);
cmd.overload(["Time"]);
cmd.setCallback((cmd, ori, out, res) => {
let time = res["Time"];
let result = conf.set("time", time);
if (result) ori.player.sendText("设置成功: " + time);
});
cmd.setup();
});

// 定时检查并处理掉落物的消失逻辑
setInterval(() => {
let maxtime = conf.get("time");
mc.getAllEntities().forEach((e) => {
if (!e.isItemEntity()) return; // 忽略非掉落物实体

let uuid = e.uniqueId;
let time = db.get(uuid) || 0; // 获取或初始化计时

if (time >= maxtime) {
e.despawn(); // 消失时间到,移除实体
db.delete(uuid); // 从数据库删除记录
} else {
db.set(uuid, time + 1); // 更新时间计数
}
});
}, 1000);


1 Download (1.7 KB)