Version bump to 0.5.4
Mods added: - Borderless Window KubeJS Server Scripts added: - ClearLag.js
This commit is contained in:
parent
23862bc4e6
commit
c20d988d1c
4 changed files with 140 additions and 2 deletions
|
@ -63,6 +63,10 @@ hash = "84f6d2ec82b50341634868cb6c1abec87d01a637ef9e35df4ad2e5ece7dce442"
|
|||
file = "kubejs/server_scripts/cardboard_box_blacklist.js"
|
||||
hash = "fc4faf74ae1bad06020a187ba3c699b259eab7da780bff3c48916c520aef910f"
|
||||
|
||||
[[files]]
|
||||
file = "kubejs/server_scripts/clearlag.js"
|
||||
hash = "1a405c6cff718d67f7fe5303bf16df5ed5946d3cfaffd31dab7a9875171c0532"
|
||||
|
||||
[[files]]
|
||||
file = "kubejs/server_scripts/test.js"
|
||||
hash = "698d489a6bec11eafe725433e11c9d1733313c6c617834ca216c92a3c6c5acfd"
|
||||
|
@ -147,6 +151,11 @@ file = "mods/bookshelf.pw.toml"
|
|||
hash = "a8beef77c7ca4f31b9b85f4f123f2f461814b249551720b4f75c197e2aca68fc"
|
||||
metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "mods/borderless.pw.toml"
|
||||
hash = "a14e9890eca705a0f01d1825bd1b26501a0b99db4f112296382819171441e87d"
|
||||
metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "mods/builtin-servers.pw.toml"
|
||||
hash = "40398fcc68b7ec1bc36582dce0e04a3cc7bdbb58a641bc28fe0b72de80d805f2"
|
||||
|
|
116
src/kubejs/server_scripts/clearlag.js
Normal file
116
src/kubejs/server_scripts/clearlag.js
Normal file
|
@ -0,0 +1,116 @@
|
|||
let cleaningTime = 1200 * 30;
|
||||
let timerCheck = 1200;
|
||||
let timerOn = true;
|
||||
|
||||
let round = 0;
|
||||
let lastClearLagResult = Utils.newList();
|
||||
let lastTotalClearLagResult = Utils.newCountingMap();
|
||||
|
||||
let blacklist = [
|
||||
'sophisticatedbackpacks:backpack',
|
||||
'sophisticatedbackpacks:iron_backpack',
|
||||
'sophisticatedbackpacks:gold_backpack',
|
||||
'sophisticatedbackpacks:diamond_backpack',
|
||||
'sophisticatedbackpacks:netherite_backpack'
|
||||
];
|
||||
let clearLag =(server, reset) => {
|
||||
let itemList = server.getEntities().filter(entity => entity.type.equals('minecraft:item'));
|
||||
let lastResult = Utils.newCountingMap();
|
||||
|
||||
lastClearLagResult.clear();
|
||||
lastTotalClearLagResult.clear();
|
||||
|
||||
itemList.forEach(items => {
|
||||
if(!blacklist.includes(items.getFullNBT().Item.id)) {
|
||||
var key = items.name;
|
||||
lastResult.add(key, items.item.count);
|
||||
lastTotalClearLagResult.add(key, items.item.count);
|
||||
items.kill();
|
||||
}
|
||||
});
|
||||
|
||||
lastClearLagResult.addAll(lastResult.entries);
|
||||
lastClearLagResult.sort(null);
|
||||
|
||||
server.tell([Text.green('[ClearLag] ' ), `${lastTotalClearLagResult.totalCount}`, ' Removed items.']);
|
||||
if(reset) round = 0;
|
||||
}
|
||||
let timeSchedule = (server) => {
|
||||
if(timerOn) {
|
||||
server.tell([Text.green('[ClearLag]'),' ClearLag is turned on!']);
|
||||
server.scheduleInTicks(timerCheck, callback => {
|
||||
let currentTime = timerCheck*++round;
|
||||
let nextItems = server.getEntities().filter(entity => entity.type.equals('minecraft:item')).length;
|
||||
if(cleaningTime < currentTime) {
|
||||
clearLag(server, true);
|
||||
if(timerOn) {
|
||||
server.tell([Text.green('[ClearLag]'),' ClearLag is turned off!']);
|
||||
timerOnChanged = false;
|
||||
}
|
||||
}
|
||||
if (timerCheckChange) {
|
||||
timerCheckChange = false;
|
||||
round = 0;
|
||||
server.tell([Text.green('[ClearLag]'),' TimerCheck got updated to ', `${timerCheck/1200}`, '!']);
|
||||
}else if (cleaningTimeChange) {
|
||||
cleaningTimeChange = false;
|
||||
round = 0;
|
||||
server.tell([Text.green('[ClearLag]'),' Timer got updated to ', `${cleaningTime/1200}`, '!']);
|
||||
} else if ((currentTime+timerCheck) / 1200 > 1)
|
||||
server.tell([Text.green('[ClearLag]'), ' Removing ', `${nextItems}`, ' items in ', `${(cleaningTime - currentTime) / 1200}`, ' minutes!']);
|
||||
if(timerOn) callback.reschedule();
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
ServerEvents.loaded(event => {
|
||||
timeSchedule(event.server);
|
||||
});
|
||||
|
||||
let cleaningTimeChange = false;
|
||||
let timerCheckChange = false;
|
||||
|
||||
ServerEvents.commandRegistry(event => {
|
||||
const {commands: Commands, arguments: Arguments} = event;
|
||||
event.register(
|
||||
Commands.literal('clearlag')
|
||||
.then(Commands.literal('clear').executes(ctx => {
|
||||
let server = ctx.source.getServer();
|
||||
clearLag(server, false);
|
||||
return 1;
|
||||
}))
|
||||
.then(Commands.literal('result').executes(ctx => {
|
||||
let server = ctx.source.getServer();
|
||||
server.tell([Text.green('[ClearLag]'), ' Report:']);
|
||||
lastClearLagResult.forEach(results => {
|
||||
server.tell(['[ ', results.key, ': ', results.value, ' ]'])
|
||||
});
|
||||
return 1;
|
||||
}))
|
||||
.then(Commands.literal('interval').then(Commands.argument('integer', Arguments.INTEGER.create(event))).executes(ctx => {
|
||||
let server = ctx.source.getServer();
|
||||
const time = Arguments.INTEGER.getResult(ctx, 'integer') * 1200;
|
||||
timerCheckChange = true;
|
||||
timerCheck = time;
|
||||
server.tell([Text.green('[ClearLag]'), ' Interval set to ', time, ' minute'])
|
||||
return 1;
|
||||
}))
|
||||
.then(Commands.literal('timer').then(Commands.argument('integer', Arguments.INTEGER.create(event)).executes(ctx => {
|
||||
let server = ctx.source.getServer();
|
||||
const time = Arguments.INTEGER.getResult(ctx, 'integer') * 1200;
|
||||
cleaningTimeChange = true
|
||||
cleaningTime = time;
|
||||
server.tell([Text.green('[ClearLag]'), ' Timer set to ', time, ' minute'])
|
||||
return 1;
|
||||
})))
|
||||
.then(Commands.literal('timerOn').then(Commands.argument('boolean', Arguments.BOOLEAN.create(event)).executes(ctx => {
|
||||
let server = ctx.source.getServer();
|
||||
const timeOn = Arguments.BOOLEAN.getResult(ctx, 'boolean');
|
||||
if(timerOn === timeOn) return 1;
|
||||
timerOn = timeOn;
|
||||
if(timerOn) timeSchedule(server);
|
||||
server.tell([Text.green('[ClearLag]'), ' ClearLag is ', timerOn])
|
||||
return 1;
|
||||
})))
|
||||
)
|
||||
});
|
13
src/mods/borderless.pw.toml
Normal file
13
src/mods/borderless.pw.toml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name = "Borderless Window"
|
||||
filename = "BorderlessWindow-1.20-1.6.0.jar"
|
||||
side = "both"
|
||||
|
||||
[download]
|
||||
hash-format = "sha1"
|
||||
hash = "2dc2dca0371065bf384b6486827451da441b5471"
|
||||
mode = "metadata:curseforge"
|
||||
|
||||
[update]
|
||||
[update.curseforge]
|
||||
file-id = 4575494
|
||||
project-id = 378979
|
|
@ -1,12 +1,12 @@
|
|||
name = "GalacticFactory"
|
||||
author = "GalacticFactory"
|
||||
version = "0.5.3"
|
||||
version = "0.5.4"
|
||||
pack-format = "packwiz:1.1.0"
|
||||
|
||||
[index]
|
||||
file = "index.toml"
|
||||
hash-format = "sha256"
|
||||
hash = "06011add3d8e67ceae1ccc0977eff6c2b159289dd21a4b1f10674229e3154185"
|
||||
hash = "6b36668b7d9488e4deef16b5236df690cf653b8f561971b6404af56de1606296"
|
||||
|
||||
[versions]
|
||||
forge = "47.2.0"
|
||||
|
|
Reference in a new issue