mirror of
https://github.com/ZareMate/kubejs.git
synced 2026-11-12 14:20:29 +00:00
fix: fixed saving issues
This commit is contained in:
+118
-93
@@ -12,21 +12,21 @@
|
||||
*/
|
||||
|
||||
// Dependencies: LuckPerms
|
||||
(function () {
|
||||
var DAILY_QUESTS_FILE = "kubejs/data/dailyquests/players.json";
|
||||
var DAILY_QUESTS_CONFIG = "config/dailyquests.json";
|
||||
|
||||
var DAILY_QUESTS_FILE = "kubejs/data/dailyquests/players.json";
|
||||
var DAILY_QUESTS_CONFIG = "config/dailyquests.json";
|
||||
var data = null;
|
||||
var config = null;
|
||||
var lastResetCheckTick = 0;
|
||||
|
||||
var data = null;
|
||||
var config = null;
|
||||
var lastResetCheckTick = 0;
|
||||
|
||||
var LuckPermsApiProvider = Java.loadClass(
|
||||
var LuckPermsApiProvider = Java.loadClass(
|
||||
"net.luckperms.api.LuckPermsProvider",
|
||||
);
|
||||
);
|
||||
|
||||
var luckPermsApi = null;
|
||||
var luckPermsApi = null;
|
||||
|
||||
function getDefaultConfig() {
|
||||
function getDefaultConfig() {
|
||||
return {
|
||||
resetCheckInterval: 20,
|
||||
questPermissionReroll: "dailyquests.command.reroll",
|
||||
@@ -218,9 +218,9 @@ function getDefaultConfig() {
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function loadConfig() {
|
||||
function loadConfig() {
|
||||
var defaults = getDefaultConfig();
|
||||
|
||||
try {
|
||||
@@ -307,9 +307,9 @@ function loadConfig() {
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getLuckPerms() {
|
||||
function getLuckPerms() {
|
||||
if (luckPermsApi) {
|
||||
return luckPermsApi;
|
||||
}
|
||||
@@ -325,9 +325,9 @@ function getLuckPerms() {
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function hasPermission(player, permission) {
|
||||
function hasPermission(player, permission) {
|
||||
var api = getLuckPerms();
|
||||
|
||||
if (!api || !player) {
|
||||
@@ -349,13 +349,13 @@ function hasPermission(player, permission) {
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function pad2(value) {
|
||||
function pad2(value) {
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
}
|
||||
|
||||
function getToday() {
|
||||
function getToday() {
|
||||
var now = new Date();
|
||||
|
||||
return (
|
||||
@@ -365,9 +365,9 @@ function getToday() {
|
||||
"-" +
|
||||
pad2(now.getDate())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function getResetCountdown() {
|
||||
function getResetCountdown() {
|
||||
var now = new Date();
|
||||
var nextMidnight = new Date(now);
|
||||
|
||||
@@ -394,16 +394,16 @@ function getResetCountdown() {
|
||||
}
|
||||
|
||||
return seconds + "s";
|
||||
}
|
||||
}
|
||||
|
||||
function createEmptyData() {
|
||||
function createEmptyData() {
|
||||
return {
|
||||
lastReset: getToday(),
|
||||
players: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function loadData() {
|
||||
function loadData() {
|
||||
try {
|
||||
var loaded = JsonIO.read(DAILY_QUESTS_FILE);
|
||||
|
||||
@@ -426,9 +426,9 @@ function loadData() {
|
||||
data = createEmptyData();
|
||||
saveData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function saveData() {
|
||||
function saveData() {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
@@ -436,11 +436,13 @@ function saveData() {
|
||||
try {
|
||||
JsonIO.write(DAILY_QUESTS_FILE, data);
|
||||
} catch (error) {
|
||||
console.error("[DailyQuests] Failed to save data: " + String(error));
|
||||
console.error(
|
||||
"[DailyQuests] Failed to save data: " + String(error),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function randomQuest(category) {
|
||||
function randomQuest(category) {
|
||||
var pool = config.quests[category];
|
||||
|
||||
if (!Array.isArray(pool) || pool.length === 0) {
|
||||
@@ -448,9 +450,9 @@ function randomQuest(category) {
|
||||
}
|
||||
|
||||
return pool[Math.floor(Math.random() * pool.length)];
|
||||
}
|
||||
}
|
||||
|
||||
function getQuestById(id) {
|
||||
function getQuestById(id) {
|
||||
if (!id) {
|
||||
return null;
|
||||
}
|
||||
@@ -468,9 +470,9 @@ function getQuestById(id) {
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function getQuestReward(quest) {
|
||||
function getQuestReward(quest) {
|
||||
if (!quest) {
|
||||
return null;
|
||||
}
|
||||
@@ -484,13 +486,13 @@ function getQuestReward(quest) {
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function getPlayerUuid(player) {
|
||||
function getPlayerUuid(player) {
|
||||
return String(player.uuid);
|
||||
}
|
||||
}
|
||||
|
||||
function createPlayerData(player) {
|
||||
function createPlayerData(player) {
|
||||
var easy = randomQuest("easy");
|
||||
var medium = randomQuest("medium");
|
||||
var hard = randomQuest("hard");
|
||||
@@ -504,9 +506,9 @@ function createPlayerData(player) {
|
||||
mediumClaimed: false,
|
||||
hardClaimed: false,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function createOfflinePlayerData(name) {
|
||||
function createOfflinePlayerData(name) {
|
||||
var easy = randomQuest("easy");
|
||||
var medium = randomQuest("medium");
|
||||
var hard = randomQuest("hard");
|
||||
@@ -520,9 +522,9 @@ function createOfflinePlayerData(name) {
|
||||
mediumClaimed: false,
|
||||
hardClaimed: false,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function repairPlayerData(player, playerData) {
|
||||
function repairPlayerData(player, playerData) {
|
||||
var changed = false;
|
||||
|
||||
if (!playerData.name) {
|
||||
@@ -565,9 +567,9 @@ function repairPlayerData(player, playerData) {
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
}
|
||||
|
||||
function getPlayerData(player) {
|
||||
function getPlayerData(player) {
|
||||
var uuid = getPlayerUuid(player);
|
||||
|
||||
if (!data.players[uuid]) {
|
||||
@@ -589,9 +591,9 @@ function getPlayerData(player) {
|
||||
}
|
||||
|
||||
return playerData;
|
||||
}
|
||||
}
|
||||
|
||||
function countItem(player, itemId) {
|
||||
function countItem(player, itemId) {
|
||||
var total = 0;
|
||||
|
||||
try {
|
||||
@@ -617,15 +619,17 @@ function countItem(player, itemId) {
|
||||
total += stack.count;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[DailyQuests] Inventory count error: " + String(error));
|
||||
console.error(
|
||||
"[DailyQuests] Inventory count error: " + String(error),
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
}
|
||||
|
||||
function removeItems(player, itemId, amount) {
|
||||
function removeItems(player, itemId, amount) {
|
||||
var remaining = amount;
|
||||
|
||||
try {
|
||||
@@ -667,9 +671,9 @@ function removeItems(player, itemId, amount) {
|
||||
}
|
||||
|
||||
return remaining <= 0;
|
||||
}
|
||||
}
|
||||
|
||||
function giveReward(player, reward) {
|
||||
function giveReward(player, reward) {
|
||||
if (
|
||||
!reward ||
|
||||
!reward.item ||
|
||||
@@ -688,21 +692,21 @@ function giveReward(player, reward) {
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getProgress(player, quest) {
|
||||
function getProgress(player, quest) {
|
||||
if (!quest) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Math.min(countItem(player, quest.item), quest.amount);
|
||||
}
|
||||
}
|
||||
|
||||
function separator(player) {
|
||||
function separator(player) {
|
||||
player.tell(Text.of("───────────────────────────────────").gray());
|
||||
}
|
||||
}
|
||||
|
||||
function getCategoryColor(category) {
|
||||
function getCategoryColor(category) {
|
||||
if (category === "medium") {
|
||||
return "yellow";
|
||||
}
|
||||
@@ -712,9 +716,9 @@ function getCategoryColor(category) {
|
||||
}
|
||||
|
||||
return "green";
|
||||
}
|
||||
}
|
||||
|
||||
function tellQuest(player, category, quest, claimed) {
|
||||
function tellQuest(player, category, quest, claimed) {
|
||||
if (!quest) {
|
||||
player.tell(Text.of("Quest data is unavailable.").red());
|
||||
|
||||
@@ -726,7 +730,8 @@ function tellQuest(player, category, quest, claimed) {
|
||||
var progress = getProgress(player, quest);
|
||||
|
||||
var itemName =
|
||||
quest.itemName || quest.description.replace(/^Collect\s+\d+\s+/i, "");
|
||||
quest.itemName ||
|
||||
quest.description.replace(/^Collect\s+\d+\s+/i, "");
|
||||
|
||||
var rewardName = reward && reward.name ? reward.name : reward.item;
|
||||
|
||||
@@ -765,9 +770,9 @@ function tellQuest(player, category, quest, claimed) {
|
||||
}
|
||||
|
||||
player.tell("");
|
||||
}
|
||||
}
|
||||
|
||||
function openDailyQuests(player) {
|
||||
function openDailyQuests(player) {
|
||||
if (!player) {
|
||||
return;
|
||||
}
|
||||
@@ -800,17 +805,23 @@ function openDailyQuests(player) {
|
||||
|
||||
tellQuest(player, "hard", hardQuest, playerData.hardClaimed);
|
||||
|
||||
player.tell(Text.of("[ REFRESH ]").aqua().clickRunCommand("/dailyquests"));
|
||||
player.tell(
|
||||
Text.of("[ REFRESH ]").aqua().clickRunCommand("/dailyquests"),
|
||||
);
|
||||
|
||||
separator(player);
|
||||
}
|
||||
}
|
||||
|
||||
function claimQuest(player, category) {
|
||||
function claimQuest(player, category) {
|
||||
if (!player) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (category !== "easy" && category !== "medium" && category !== "hard") {
|
||||
if (
|
||||
category !== "easy" &&
|
||||
category !== "medium" &&
|
||||
category !== "hard"
|
||||
) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -848,7 +859,9 @@ function claimQuest(player, category) {
|
||||
|
||||
if (!reward) {
|
||||
player.tell(
|
||||
Text.of("This quest has an invalid reward configuration.").red(),
|
||||
Text.of(
|
||||
"This quest has an invalid reward configuration.",
|
||||
).red(),
|
||||
);
|
||||
|
||||
return 0;
|
||||
@@ -861,7 +874,10 @@ function claimQuest(player, category) {
|
||||
|
||||
player.tell(
|
||||
Text.of(
|
||||
"Required: " + quest.amount + " | You have: " + currentAmount,
|
||||
"Required: " +
|
||||
quest.amount +
|
||||
" | You have: " +
|
||||
currentAmount,
|
||||
).gray(),
|
||||
);
|
||||
|
||||
@@ -870,7 +886,9 @@ function claimQuest(player, category) {
|
||||
|
||||
if (countItem(player, quest.item) < quest.amount) {
|
||||
player.tell(
|
||||
Text.of("Your inventory changed. The claim was cancelled.").red(),
|
||||
Text.of(
|
||||
"Your inventory changed. The claim was cancelled.",
|
||||
).red(),
|
||||
);
|
||||
|
||||
return 0;
|
||||
@@ -913,9 +931,9 @@ function claimQuest(player, category) {
|
||||
openDailyQuests(player);
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function findOnlinePlayer(server, name) {
|
||||
function findOnlinePlayer(server, name) {
|
||||
var target = String(name).toLowerCase();
|
||||
|
||||
var players = server.players;
|
||||
@@ -929,9 +947,9 @@ function findOnlinePlayer(server, name) {
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function findSavedPlayer(name) {
|
||||
function findSavedPlayer(name) {
|
||||
var target = String(name).toLowerCase();
|
||||
|
||||
for (var uuid in data.players) {
|
||||
@@ -950,9 +968,9 @@ function findSavedPlayer(name) {
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function rerollPlayer(server, name) {
|
||||
function rerollPlayer(server, name) {
|
||||
checkDailyReset(server);
|
||||
|
||||
var onlinePlayer = findOnlinePlayer(server, name);
|
||||
@@ -981,14 +999,16 @@ function rerollPlayer(server, name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
data.players[savedPlayer.uuid] = createOfflinePlayerData(savedPlayer.name);
|
||||
data.players[savedPlayer.uuid] = createOfflinePlayerData(
|
||||
savedPlayer.name,
|
||||
);
|
||||
|
||||
saveData();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function resetDailyQuests(server) {
|
||||
function resetDailyQuests(server) {
|
||||
var today = getToday();
|
||||
|
||||
console.log("[DailyQuests] Resetting daily quests for " + today);
|
||||
@@ -1015,9 +1035,9 @@ function resetDailyQuests(server) {
|
||||
}
|
||||
|
||||
console.log("[DailyQuests] Daily reset complete.");
|
||||
}
|
||||
}
|
||||
|
||||
function checkDailyReset(server) {
|
||||
function checkDailyReset(server) {
|
||||
if (!data) {
|
||||
loadData();
|
||||
}
|
||||
@@ -1027,9 +1047,9 @@ function checkDailyReset(server) {
|
||||
if (data.lastReset !== today) {
|
||||
resetDailyQuests(server);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ServerEvents.commandRegistry(function (event) {
|
||||
ServerEvents.commandRegistry(function (event) {
|
||||
var Commands = event.commands;
|
||||
|
||||
var Arguments = event.arguments;
|
||||
@@ -1055,7 +1075,8 @@ ServerEvents.commandRegistry(function (event) {
|
||||
return 1;
|
||||
} catch (error) {
|
||||
console.error(
|
||||
"[DailyQuests] /dailyquests error: " + String(error),
|
||||
"[DailyQuests] /dailyquests error: " +
|
||||
String(error),
|
||||
);
|
||||
|
||||
ctx.source.sendFailure(
|
||||
@@ -1104,7 +1125,10 @@ ServerEvents.commandRegistry(function (event) {
|
||||
Arguments.PLAYER.create(event),
|
||||
).executes((ctx) => {
|
||||
try {
|
||||
var target = Arguments.PLAYER.getResult(ctx, "player");
|
||||
var target = Arguments.PLAYER.getResult(
|
||||
ctx,
|
||||
"player",
|
||||
);
|
||||
|
||||
if (!target) {
|
||||
ctx.source.sendFailure(
|
||||
@@ -1156,9 +1180,9 @@ ServerEvents.commandRegistry(function (event) {
|
||||
}),
|
||||
),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
PlayerEvents.loggedIn(function (event) {
|
||||
PlayerEvents.loggedIn(function (event) {
|
||||
try {
|
||||
checkDailyReset(event.server);
|
||||
|
||||
@@ -1172,9 +1196,9 @@ PlayerEvents.loggedIn(function (event) {
|
||||
).red(),
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
ServerEvents.tick(function (event) {
|
||||
ServerEvents.tick(function (event) {
|
||||
try {
|
||||
var currentTick = event.server.tickCount;
|
||||
|
||||
@@ -1188,9 +1212,10 @@ ServerEvents.tick(function (event) {
|
||||
} catch (error) {
|
||||
console.error("[DailyQuests] Tick error: " + String(error));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
loadConfig();
|
||||
loadData();
|
||||
loadConfig();
|
||||
loadData();
|
||||
|
||||
console.log("[DailyQuests] Loaded successfully.");
|
||||
console.log("[DailyQuests] Loaded successfully.");
|
||||
})();
|
||||
|
||||
+65
-52
@@ -12,22 +12,23 @@
|
||||
*/
|
||||
|
||||
// Dependencies: LuckPerms, KubeJSHTTP
|
||||
(function () {
|
||||
var DISCORD_WEBHOOK_URL =
|
||||
"https://discord.com/api/webhooks/1544442801247494226/A-1JQpkeJ2jFFik63uEWPIV0Vd-fOcJV9KoySseGu8LO5SpkxZ23okWXxd-IMkD_tQDP";
|
||||
|
||||
var DISCORD_WEBHOOK_URL = "REPLACE_ME";
|
||||
var MULTIACCOUNT_PERMISSION_CHECKIP = "multiaccount.command.checkip";
|
||||
var MULTIACCOUNT_PERMISSION_ALERT = "multiaccount.alert";
|
||||
|
||||
var MULTIACCOUNT_PERMISSION_CHECKIP = "multiaccount.command.checkip";
|
||||
var MULTIACCOUNT_PERMISSION_ALERT = "multiaccount.alert";
|
||||
|
||||
var LuckPermsApiProvider = Java.loadClass(
|
||||
var LuckPermsApiProvider = Java.loadClass(
|
||||
"net.luckperms.api.LuckPermsProvider",
|
||||
);
|
||||
);
|
||||
|
||||
var HttpAPI = Java.loadClass("com.awizo.KubeJSHTTP.HttpAPI");
|
||||
var HttpAPI = Java.loadClass("com.awizo.KubeJSHTTP.HttpAPI");
|
||||
|
||||
var luckPermsApi = null;
|
||||
var playerIPMap = new Map();
|
||||
var luckPermsApi = null;
|
||||
var playerIPMap = new Map();
|
||||
|
||||
function getLuckPerms() {
|
||||
function getLuckPerms() {
|
||||
if (luckPermsApi) {
|
||||
return luckPermsApi;
|
||||
}
|
||||
@@ -35,15 +36,17 @@ function getLuckPerms() {
|
||||
try {
|
||||
luckPermsApi = LuckPermsApiProvider.get();
|
||||
|
||||
console.log("[Multi-Account] luckPermsApi API loaded successfully!");
|
||||
console.log(
|
||||
"[Multi-Account] luckPermsApi API loaded successfully!",
|
||||
);
|
||||
|
||||
return luckPermsApi;
|
||||
} catch (error) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function hasPermission(player, permission) {
|
||||
function hasPermission(player, permission) {
|
||||
var api = getLuckPerms();
|
||||
|
||||
if (!api || !player) {
|
||||
@@ -70,9 +73,9 @@ function hasPermission(player, permission) {
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getPlayerIP(player) {
|
||||
function getPlayerIP(player) {
|
||||
try {
|
||||
var ip = player.ipAddress;
|
||||
|
||||
@@ -99,16 +102,16 @@ function getPlayerIP(player) {
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function sendPlayerNotification(player, otherPlayers) {
|
||||
function sendPlayerNotification(player, otherPlayers) {
|
||||
player.tell(
|
||||
"§c[ALERT] §fMulti-account detected! Other accounts on your IP: §e" +
|
||||
otherPlayers.join(", "),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function notifyStaff(server, playerName, otherPlayers) {
|
||||
function notifyStaff(server, playerName, otherPlayers) {
|
||||
var message =
|
||||
"§c[ADMIN] §fPlayer §6" +
|
||||
playerName +
|
||||
@@ -120,9 +123,9 @@ function notifyStaff(server, playerName, otherPlayers) {
|
||||
player.tell(message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function sendDiscordNotification(player, otherPlayers) {
|
||||
function sendDiscordNotification(player, otherPlayers) {
|
||||
var playerName =
|
||||
player && typeof player.getName === "function"
|
||||
? player.getName().getString()
|
||||
@@ -147,18 +150,18 @@ function sendDiscordNotification(player, otherPlayers) {
|
||||
":S>",
|
||||
color: 3447003,
|
||||
footer: {
|
||||
text: "Multi-Account Watch",
|
||||
text: "Sputnik watch",
|
||||
},
|
||||
},
|
||||
],
|
||||
}),
|
||||
);
|
||||
} catch (e) {
|
||||
console.error("[Multi-Account Watch] Failed to send webhook: " + e);
|
||||
console.error("[SputnikWatch] Failed to send webhook: " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function rebuildPlayerIPMap(server) {
|
||||
function rebuildPlayerIPMap(server) {
|
||||
playerIPMap.clear();
|
||||
|
||||
server.players.forEach((player) => {
|
||||
@@ -181,9 +184,9 @@ function rebuildPlayerIPMap(server) {
|
||||
playerIPMap.size +
|
||||
" IP(s).",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function sendCheckIPWebhook(player, groups) {
|
||||
function sendCheckIPWebhook(player, groups) {
|
||||
var playerName =
|
||||
player && typeof player.getName === "function"
|
||||
? player.getName().getString()
|
||||
@@ -217,7 +220,7 @@ function sendCheckIPWebhook(player, groups) {
|
||||
":S>",
|
||||
color: 3447003,
|
||||
footer: {
|
||||
text: "Multi-Account watch",
|
||||
text: "Sputnik watch",
|
||||
},
|
||||
},
|
||||
],
|
||||
@@ -226,11 +229,13 @@ function sendCheckIPWebhook(player, groups) {
|
||||
|
||||
console.log("[Multi-Account] /checkip results sent to Discord.");
|
||||
} catch (e) {
|
||||
console.error("[Multi-Account Watch] Failed to send /checkip webhook: " + e);
|
||||
console.error(
|
||||
"[SputnikWatch] Failed to send /checkip webhook: " + e,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkMultiAccount(server, player) {
|
||||
function checkMultiAccount(server, player) {
|
||||
var name = player.username;
|
||||
var ip = getPlayerIP(player);
|
||||
|
||||
@@ -264,9 +269,9 @@ function checkMultiAccount(server, player) {
|
||||
}
|
||||
|
||||
players.add(name);
|
||||
}
|
||||
}
|
||||
|
||||
function removePlayer(name) {
|
||||
function removePlayer(name) {
|
||||
for (var [ip, players] of playerIPMap) {
|
||||
if (!players.delete(name)) {
|
||||
continue;
|
||||
@@ -286,9 +291,9 @@ function removePlayer(name) {
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PlayerEvents.loggedIn((event) => {
|
||||
PlayerEvents.loggedIn((event) => {
|
||||
var player = event.player;
|
||||
var server = event.server;
|
||||
|
||||
@@ -302,17 +307,17 @@ PlayerEvents.loggedIn((event) => {
|
||||
server.schedule(10, () => {
|
||||
checkMultiAccount(server, player);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
PlayerEvents.loggedOut((event) => {
|
||||
PlayerEvents.loggedOut((event) => {
|
||||
var name = event.player.username;
|
||||
|
||||
console.log("[Multi-Account] " + name + " left the server");
|
||||
|
||||
removePlayer(name);
|
||||
});
|
||||
});
|
||||
|
||||
ServerEvents.commandRegistry((event) => {
|
||||
ServerEvents.commandRegistry((event) => {
|
||||
const { commands: Commands } = event;
|
||||
|
||||
event.register(
|
||||
@@ -336,7 +341,10 @@ ServerEvents.commandRegistry((event) => {
|
||||
|
||||
rebuildPlayerIPMap(server);
|
||||
|
||||
source.sendSuccess(Text.of("§6Players sharing an IP:"), false);
|
||||
source.sendSuccess(
|
||||
Text.of("§6Players sharing an IP:"),
|
||||
false,
|
||||
);
|
||||
|
||||
for (var players of playerIPMap.values()) {
|
||||
if (players.size <= 1) {
|
||||
@@ -350,7 +358,9 @@ ServerEvents.commandRegistry((event) => {
|
||||
groups.push(playerList);
|
||||
|
||||
source.sendSuccess(
|
||||
Text.of(`§7Group ${group}: §e${playerList.join(", ")}`),
|
||||
Text.of(
|
||||
`§7Group ${group}: §e${playerList.join(", ")}`,
|
||||
),
|
||||
false,
|
||||
);
|
||||
|
||||
@@ -369,23 +379,26 @@ ServerEvents.commandRegistry((event) => {
|
||||
return 1;
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
console.log("[Multi-Account] Script loaded successfully!");
|
||||
console.log("[Multi-Account] Script loaded successfully!");
|
||||
|
||||
console.log(
|
||||
"[Multi-Account] /checkip permission: " + MULTIACCOUNT_PERMISSION_CHECKIP,
|
||||
);
|
||||
console.log(
|
||||
"[Multi-Account] /checkip permission: " +
|
||||
MULTIACCOUNT_PERMISSION_CHECKIP,
|
||||
);
|
||||
|
||||
console.log(
|
||||
"[Multi-Account] Chat alert permission: " + MULTIACCOUNT_PERMISSION_ALERT,
|
||||
);
|
||||
console.log(
|
||||
"[Multi-Account] Chat alert permission: " +
|
||||
MULTIACCOUNT_PERMISSION_ALERT,
|
||||
);
|
||||
|
||||
console.log("[Multi-Account] Commands: /checkip");
|
||||
console.log("[Multi-Account] Commands: /checkip");
|
||||
|
||||
console.log(
|
||||
console.log(
|
||||
"[Multi-Account] Webhook: " +
|
||||
(DISCORD_WEBHOOK_URL !== "REPLACE_ME"
|
||||
? "✓ Configured"
|
||||
: "✗ Not configured"),
|
||||
);
|
||||
);
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user