here is the code
import { world } from "@minecraft/server";
import { expiresTime } from "../../main/Functions/expiresTime.js";
import { DynamicDB } from "../../main/Functions/database.js";
let db = new DynamicDB("Banlist", world);
if (!db.get("Banlist")) {
db.set("Banlist", {
enable: false,
banlist: []
});
db.save();
}
world.afterEvents.playerSpawn.subscribe((data) => {
let player = data.player;
let playerName = player.name.toLowerCase();
checkAndRemoveExpiredBans()
let bans = db.get("Banlist") || [];
let bannedPlayer = bans.find(ban => ban.name.toLowerCase() === playerName);
if (bannedPlayer) {
if (bannedPlayer.ban_length === "Never") {
let kickReason = `§》§l\n§cYou are permanently banned from this server!\n§7Reason:§f ${bannedPlayer.ban_reason}`;
player.runCommandAsync(`kick ${player.name} ${kickReason}`);
} else {
let currentTime = Date.now();
let remainingTimeMilliseconds = Math.max(0, bannedPlayer.ban_length - (currentTime - bannedPlayer.banned_day));
let remainingTimeFormatted = expiresTime(remainingTimeMilliseconds);
let kickReason = `§》§l\n§cYou are temporarily banned for§f ${remainingTimeFormatted} §cfrom this server!\n§7Reason:§f ${bannedPlayer.ban_reason}`;
player.runCommandAsync(`kick "${player.name}" ${kickReason}`);
}
}
});
function checkAndRemoveExpiredBans() {
let banList = db.get("Banlist") || [];
let currentTime = Date.now();
let updatedBanList = banList.filter(ban => {
if (ban.ban_length === "Never") {
return true;
}
let remainingTimeMilliseconds = Math.max(0, ban.ban_length - (currentTime - ban.banned_day));
return remainingTimeMilliseconds > 0;
});
db.set("Banlist", updatedBanList);
db.save();
}