|
@@ -44,6 +44,7 @@ command.add("infopoint11");
|
|
|
command.add("help");
|
|
|
command.add("butcher");
|
|
|
command.add("yeet");
|
|
|
+command.add("kill");
|
|
|
|
|
|
alias_map = map.new();
|
|
|
command_list = list.new();
|
|
@@ -184,6 +185,7 @@ command.registerAlias("hub", "leave");
|
|
|
command.registerAlias("fuckit", "giveup");
|
|
|
command.registerAlias("ram", "memory");
|
|
|
command.registerAlias("thor", "lightning");
|
|
|
+command.registerAlias("kill", "suicide");
|
|
|
|
|
|
composter_par = particle.get("composter");
|
|
|
wall_signs_tag = block.getTag("minecraft:wall_signs");
|
|
@@ -383,7 +385,7 @@ inv.setItem(skip_night_inv, 2, read.item("km:cross_red", 1, "§fNo"));
|
|
|
skip_night_inv_id = inv.getId(skip_night_inv);
|
|
|
|
|
|
vote_inv = inv.new("222222222");
|
|
|
-inv.setItem(vote_inv, 0, read.item("km:coin_gold", 1, "§fMoneyBooster", "Doubles incoming money for 10 minutes.", "Cost: 6 VP"));
|
|
|
+inv.setItem(vote_inv, 0, read.item("km:coin_gold", 1, "§fMoney Booster", "Doubles incoming money for 10 minutes.", "Cost: 6 VP"));
|
|
|
vote_inv_id = inv.getId(vote_inv);
|
|
|
|
|
|
ha_tool = read.item("km:guild_block", 1, "§cHawkeye Tool", "Hawkeye Tool");
|
|
@@ -405,7 +407,7 @@ set.add(consoleCommands, "unban");
|
|
|
|
|
|
databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS friends (player_id INT NOT NULL, friend_id INT NOT NULL, time BIGINT NOT NULL, PRIMARY KEY (player_id, friend_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
|
|
|
databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS logoutdata (player_id INT NOT NULL PRIMARY KEY, logouttime BIGINT, FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
|
|
|
-databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS tipps (tipp_key VARCHAR(20) PRIMARY KEY, tipp_value VARCHAR(255));"));
|
|
|
+databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS tipps (tipp_key VARCHAR(20) PRIMARY KEY, tipp_value VARCHAR(255), tipp_loop BOOLEAN NOT NULL DEFAULT true);"));
|
|
|
databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS plotranks (plot_id INT NOT NULL, player_id INT NOT NULL, rank VARCHAR(10), PRIMARY KEY (plot_id, player_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
|
|
|
databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS homes (player_id INT NOT NULL, name VARCHAR(20) NOT NULL, world_name VARCHAR(20) NOT NULL, x DOUBLE NOT NULL, y DOUBLE NOT NULL, z DOUBLE NOT NULL, yaw DOUBLE NOT NULL, pitch DOUBLE NOT NULL, PRIMARY KEY (player_id, name), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
|
|
|
|
|
@@ -634,7 +636,7 @@ if(event == "player_logout") {
|
|
|
goto("wait");
|
|
|
}
|
|
|
setScriptVar("player", player);
|
|
|
- script.callEvent("quest_term", script);
|
|
|
+ modTimer.scriptCallEvent("quest_term", script);
|
|
|
quest.term(script, player);
|
|
|
}
|
|
|
if(player.isInParty(player)) {
|
|
@@ -692,7 +694,7 @@ if(event == "inv_click") {
|
|
|
goto("wait");
|
|
|
}
|
|
|
player.setVotePoints(player, vp - 6);
|
|
|
- msg("online", "§6§k#§rMoneyBooster activated!!!§6§k#");
|
|
|
+ msg("online", "§6§k#§rMoney Booster activated!!!§6§k#");
|
|
|
money.setBoostFactor(2);
|
|
|
sgoto(12000, "resetMoneyBoost");
|
|
|
}
|
|
@@ -714,8 +716,8 @@ if(event == "inv_click") {
|
|
|
}
|
|
|
set.add(skip_night_set, player_uuid);
|
|
|
if(!skip_night_started) {
|
|
|
- world.addTimedStatus(world, 49, 600, "Skip night?");
|
|
|
- sendMessageToWorld(world, "[§6Commands§r] Skip night? Vote within 15 seconds.");
|
|
|
+ world.addTimedStatus(world, 49, 300, "Skip night?");
|
|
|
+ msg.survival("[§6Commands§r] Skip night? Vote within 15 seconds.");
|
|
|
skip_night_counter = 15;
|
|
|
skip_night_yes = 0;
|
|
|
skip_night_no = 0;
|
|
@@ -934,6 +936,11 @@ if(event == "inv_click") {
|
|
|
player.setNoPetDamage(player, new_value);
|
|
|
inv.setItem(inv, inv_slot, read.item("minecraft:bone", 1, "§fNo Pet Damage", new_value));
|
|
|
}
|
|
|
+ elseif(inv_slot == 6) {
|
|
|
+ new_value = !player.getTipLoop(player);
|
|
|
+ player.setTipLoop(player, new_value);
|
|
|
+ inv.setItem(inv, inv_slot, read.item("minecraft:oak_sign", 1, "§fShow tip loop", new_value));
|
|
|
+ }
|
|
|
inv.update(player);
|
|
|
}
|
|
|
goto("wait");
|
|
@@ -956,6 +963,7 @@ if(event == "function_key") {
|
|
|
inv.setItem(inv, 3, read.item("minecraft:oak_stairs", 1, "§fStair-Sitting", player.hasSittingActivated(player)));
|
|
|
inv.setItem(inv, 4, read.item("minecraft:iron_sword", 1, "§fPvP", hasPvpOn(player)));
|
|
|
inv.setItem(inv, 5, read.item("minecraft:bone", 1, "§fNo Pet Damage", player.getNoPetDamage(player)));
|
|
|
+ inv.setItem(inv, 6, read.item("minecraft:oak_sign", 1, "§fShow tip loop", player.getTipLoop(player)));
|
|
|
inv.open(inv, player, "§8Settings");
|
|
|
goto("wait");
|
|
|
}
|
|
@@ -1013,17 +1021,18 @@ goto("wait");
|
|
|
@skip_night_loop
|
|
|
skip_night_counter--;
|
|
|
if(skip_night_counter == 0) {
|
|
|
- world = world.getOverWorld();
|
|
|
- sendMessageToWorld(world, "[§6Commands§r] Skip night results:");
|
|
|
- sendMessageToWorld(world, concat("§e - §rYes: §e", text.number(skip_night_yes)));
|
|
|
- sendMessageToWorld(world, concat("§e - §rNo: §e", text.number(skip_night_no)));
|
|
|
- sendMessageToWorld(world, concat("§e - §rI don't care: §e", text.number(skip_night_no_care)));
|
|
|
+ msg.survival("[§6Commands§r] Skip night results:");
|
|
|
+ msg.survival(concat("§e - §rYes: §e", text.number(skip_night_yes)));
|
|
|
+ msg.survival(concat("§e - §rNo: §e", text.number(skip_night_no)));
|
|
|
+ msg.survival(concat("§e - §rI don't care: §e", text.number(skip_night_no_care)));
|
|
|
if(skip_night_yes > skip_night_no) {
|
|
|
+ world = world.getOverWorld();
|
|
|
world.setTime(world, 0);
|
|
|
}
|
|
|
set.clear(skip_night_set);
|
|
|
last_skip_night = time.getMillis();
|
|
|
sgoto(8400, "reset_skip_night");
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
sgoto(20, "skip_night_loop");
|
|
|
goto("wait");
|
|
@@ -1455,7 +1464,7 @@ t = math.roundComma((t - t_old) / 5000 * 20, 2); //Umwandlung 5000ms -> 1s -> 20
|
|
|
p = player.get(p_uuid);
|
|
|
if(p != null) {
|
|
|
msg.prefix(p, prefix_commands, "Expected: 20 ticks/sec");
|
|
|
- msg.prefix(p, prefix_commands, concat("Measured: ", t, " ticks/sec"));
|
|
|
+ msg.prefix(p, prefix_commands, concat("Measured: ", text.number(t), " ticks/sec"));
|
|
|
}
|
|
|
goto("wait");
|
|
|
|
|
@@ -1587,10 +1596,30 @@ goto("wait");
|
|
|
if(size == 0) {
|
|
|
@quest_syntax
|
|
|
msg.prefix(player, prefix_quest, "/quest ...");
|
|
|
+ msg(player, "§5 - see §rSee all active quests");
|
|
|
msg(player, "§5 - term <player> §rTerminates a player's quest");
|
|
|
goto("wait");
|
|
|
}
|
|
|
arg0 = text.toLowerCase(list.getIndex(args, 0));
|
|
|
+if(arg0 == "see") {
|
|
|
+ if(size != 1) {
|
|
|
+ msg.prefix(player, prefix_quest, "/quest see");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ quest_map = quest.getIds();
|
|
|
+ iter = map.iterator(quest_map);
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ element = next(iter);
|
|
|
+ key = map.getKey(element);
|
|
|
+ value = map.getValue(element);
|
|
|
+ script = script.getFromId(value);
|
|
|
+ if(script == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ msg(player, player.getName(key), " ", value);
|
|
|
+ }
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
if(arg0 == "term") {
|
|
|
if(size != 2) {
|
|
|
msg.prefix(player, prefix_quest, "/quest term <player>");
|
|
@@ -1618,7 +1647,7 @@ if(arg0 == "term") {
|
|
|
goto("wait");
|
|
|
}
|
|
|
setScriptVar("player", p);
|
|
|
- script.callEvent("quest_term", script);
|
|
|
+ modTimer.scriptCallEvent("quest_term", script);
|
|
|
quest.term(script, player);
|
|
|
msg.prefix(player, prefix_quest, "Player's quest terminated.");
|
|
|
goto("wait");
|
|
@@ -2200,7 +2229,7 @@ while(hasNext(iter)) {
|
|
|
a[0] = yaw;
|
|
|
a[1] = counter;
|
|
|
map.add(afk_checker_map, uuid, a);
|
|
|
- if(counter == 3) {
|
|
|
+ if(counter == 5) {
|
|
|
nickname = player.getNickname(p);
|
|
|
if(player.isAfk(p)) {
|
|
|
continue;
|
|
@@ -2318,6 +2347,7 @@ if(nickname == "remove") {
|
|
|
msg.prefix(player, prefix_commands, concat("Your nickname was changed to ", nickname, "§r."));
|
|
|
}
|
|
|
player.setTabName(player);
|
|
|
+player.setHeadName(player);
|
|
|
goto("wait");
|
|
|
|
|
|
@iteminfo
|
|
@@ -2748,25 +2778,30 @@ if(size == 0) {
|
|
|
msg(player, "§e - list §rList all tips");
|
|
|
msg(player, "§e - add <tip> <text> §rAdds a tip");
|
|
|
msg(player, "§e - remove <tip> §rRemoves a tip");
|
|
|
+ msg(player, "§e - loop <tip> <boolean> §rTrue shows on tip loop");
|
|
|
msg(player, "§e - <tip> [player] §rSends a tip to all/a player");
|
|
|
goto("wait");
|
|
|
}
|
|
|
arg0 = text.toLowerCase(list.getIndex(args, 0));
|
|
|
if(arg0 == "list") {
|
|
|
msg(player, "§r--==§eTipps§r==--");
|
|
|
- counter = 0;
|
|
|
- getTippsListStatement = databank.prepare("SELECT * FROM tipps;");
|
|
|
- result = databank.execute(getTippsListStatement);
|
|
|
- while(databank.next(result)) {
|
|
|
- tipp_key = databank.getString(result, 1);
|
|
|
- tipp_value = databank.getString(result, 2);
|
|
|
- msg(player, concat("§e", tipp_key, "§r : ", tipp_value));
|
|
|
- counter++;
|
|
|
- }
|
|
|
- databank.close(result);
|
|
|
- databank.close(getTippsListStatement);
|
|
|
- if(counter == 0) {
|
|
|
+ list = tip.getAll();
|
|
|
+ if(list.getSize(list) == 0) {
|
|
|
msg.prefix(player, prefix_tips, "No tips available.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ iter = iterator(list);
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ a = next(iter);
|
|
|
+ tipp_key = a[0];
|
|
|
+ tipp_value = a[1];
|
|
|
+ tipp_loop = a[2];
|
|
|
+ if(tipp_loop) {
|
|
|
+ tipp_loop = concat("§a", tipp_loop);
|
|
|
+ } else {
|
|
|
+ tipp_loop = concat("§c", tipp_loop);
|
|
|
+ }
|
|
|
+ msg(player, concat(" ", tipp_loop, " §e", tipp_key, "§r : ", tipp_value));
|
|
|
}
|
|
|
goto("wait");
|
|
|
}
|
|
@@ -2782,15 +2817,37 @@ if(arg0 == "add") {
|
|
|
msg.prefix(player, prefix_tips, "Tip added.");
|
|
|
goto("wait");
|
|
|
}
|
|
|
+if(arg0 == "loop") {
|
|
|
+ if(size != 3) {
|
|
|
+ msg.prefix(player, prefix_commands, "/tip loop <tip> <boolean>");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ tipp_key = list.getIndex(args, 1);
|
|
|
+ tipp_value = tipp.get(tipp_key);
|
|
|
+ if(tipp_value == null) {
|
|
|
+ msg.prefix(player, prefix_tips, "This tip does not exist.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ boolean = list.getIndex(args, 2);
|
|
|
+ if(text.class(boolean) != "Boolean") {
|
|
|
+ msg.prefix(player, prefix_tips, "True or false expected.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(boolean) {
|
|
|
+ tip.setLoop(tipp_key, boolean);
|
|
|
+ } else {
|
|
|
+ tip.setLoop(tipp_key, boolean);
|
|
|
+ }
|
|
|
+ msg.prefix(player, prefix_tips, "Tip settings changed.");
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
if(arg0 == "remove") {
|
|
|
if(size != 2) {
|
|
|
msg.prefix(player, prefix_commands, "/tip remove <name>");
|
|
|
goto("wait");
|
|
|
}
|
|
|
tipp_key = list.getIndex(args, 1);
|
|
|
- removeTippStatement = databank.prepare("DELETE FROM tipps WHERE tipp_key = ?;");
|
|
|
- databank.setString(removeTippStatement, 1, tipp_key);
|
|
|
- databank.workerExecute(removeTippStatement);
|
|
|
+ tip.remove(tipp_key);
|
|
|
msg.prefix(player, prefix_tips, "Tip removed.");
|
|
|
goto("wait");
|
|
|
}
|
|
@@ -2800,26 +2857,6 @@ if(tipp_value == null) {
|
|
|
msg.prefix(player, prefix_tips, "This tip does not exist.");
|
|
|
goto("wait");
|
|
|
}
|
|
|
-link = false;
|
|
|
-if(text.contains(tipp_value, "https://")) {
|
|
|
- link = true;
|
|
|
- https_index = text.indexOf(tipp_value, "https://", 0);
|
|
|
- space_index = text.indexOf(tipp_value, " ", https_index);
|
|
|
- length = text.length(tipp_value);
|
|
|
- if(https_index == 0) {
|
|
|
- msg_before = "";
|
|
|
- } else {
|
|
|
- msg_before = text.subString(tipp_value, 0, https_index);
|
|
|
- }
|
|
|
- if(space_index == -1) {
|
|
|
- msg_link = text.subString(tipp_value, https_index, length);
|
|
|
- msg_after = "";
|
|
|
- } else {
|
|
|
- msg_link = text.subString(tipp_value, https_index, space_index);
|
|
|
- msg_after = text.subString(tipp_value, space_index, length);
|
|
|
- }
|
|
|
- msg_link = text.link(msg_link, msg_link);
|
|
|
-}
|
|
|
if(size == 1) {
|
|
|
p = "online";
|
|
|
} else {
|
|
@@ -2831,11 +2868,15 @@ if(size == 1) {
|
|
|
p = read.player(p_name);
|
|
|
msg.prefix(player, prefix_tips, concat("Tip sent to §7", p_name, "§r."));
|
|
|
}
|
|
|
-if(link) {
|
|
|
+if(text.contains(tipp_value, "https://")) {
|
|
|
+ a = text.getLinkMessage(tipp_value);
|
|
|
+ msg_before = a[0];
|
|
|
+ msg_link = a[1];
|
|
|
+ msg_after = a[2];
|
|
|
msg(p, concat("§r[", prefix_tips, "§r] "), msg_before, msg_link, msg_after);
|
|
|
-} else {
|
|
|
- msg(p, concat("§r[", prefix_tips, "§r] ", tipp_value));
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
+msg(p, concat("§r[", prefix_tips, "§r] ", tipp_value));
|
|
|
goto("wait");
|
|
|
|
|
|
@help
|
|
@@ -3019,6 +3060,7 @@ if(size != 1) {
|
|
|
goto("wait");
|
|
|
}
|
|
|
arg0 = text.toLowerCase(list.getIndex(args, 0));
|
|
|
+modTimer(-500);
|
|
|
if(arg0 == "ai") {
|
|
|
script = script.get("Ai");
|
|
|
if(script != null) {
|
|
@@ -6104,8 +6146,7 @@ if(size == 0) {
|
|
|
goto("wait");
|
|
|
}
|
|
|
message = text.concatList(args, " ", 0, size - 1);
|
|
|
-msg("online", text.hover("[§cServer§r]", "The center of Wusiness"), " ", text.replace(message, "&", "§"));
|
|
|
-msg("SERVER", "[§cServer§r] ", text.replace(message, "&", "§"));
|
|
|
+msg.server(message);
|
|
|
goto("wait");
|
|
|
|
|
|
@warp
|
|
@@ -7644,7 +7685,7 @@ if(script == null) {
|
|
|
goto("wait");
|
|
|
}
|
|
|
setScriptVar("player", player);
|
|
|
-script.callEvent("quest_term", script);
|
|
|
+modTimer.scriptCallEvent("quest_term", script);
|
|
|
quest.term(script, player);
|
|
|
msg.prefix(player, prefix_quest, "Quest termed.");
|
|
|
goto("wait");
|
|
@@ -7670,7 +7711,7 @@ goto("wait");
|
|
|
|
|
|
function minigame.hub(script, player) {
|
|
|
script.setVar(script, "player", player);
|
|
|
- script.callEvent("player_giveup", script);
|
|
|
+ modTimer.scriptCallEvent("player_giveup", script);
|
|
|
}
|
|
|
|
|
|
@jail
|
|
@@ -7756,6 +7797,39 @@ function rank.add(index, tech_rank, chat_rank) {
|
|
|
$rank_array[index, 1] = chat_rank;
|
|
|
}
|
|
|
|
|
|
+//--------------------------------------------------
|
|
|
+//Tip-Utils
|
|
|
+//--------------------------------------------------
|
|
|
+
|
|
|
+function tip.setLoop(tipp_key, boolean) {
|
|
|
+ stmt = databank.prepare("UPDATE tipps SET tipp_loop = ? WHERE tipp_key = ?;");
|
|
|
+ databank.setBool(stmt, 1, boolean);
|
|
|
+ databank.setString(stmt, 2, tipp_key);
|
|
|
+ databank.workerExecute(stmt);
|
|
|
+}
|
|
|
+
|
|
|
+function tip.remove(tipp_key) {
|
|
|
+ stmt = databank.prepare("DELETE FROM tipps WHERE tipp_key = ?;");
|
|
|
+ databank.setString(stmt, 1, tipp_key);
|
|
|
+ databank.workerExecute(stmt);
|
|
|
+}
|
|
|
+
|
|
|
+function tip.getAll() {
|
|
|
+ list = list.new();
|
|
|
+ smt = databank.prepare("SELECT * FROM tipps;");
|
|
|
+ result = databank.execute(smt);
|
|
|
+ while(databank.next(result)) {
|
|
|
+ a = array.new(3);
|
|
|
+ a[0] = databank.getString(result, 1);
|
|
|
+ a[1] = databank.getString(result, 2);
|
|
|
+ a[2] = databank.getBool(result, 3);
|
|
|
+ list.add(list, a);
|
|
|
+ }
|
|
|
+ databank.close(smt);
|
|
|
+ databank.close(result);
|
|
|
+ return list;
|
|
|
+}
|
|
|
+
|
|
|
//--------------------------------------------------
|
|
|
//Databank-Utils
|
|
|
//--------------------------------------------------
|
|
@@ -8290,6 +8364,7 @@ function setCommandHelps() {
|
|
|
help = command.newHelp("suicide", "suicide");
|
|
|
command.addHelpChild(help, command.newHelpSpecial("Player", "player", "kill.other"));
|
|
|
command.addHelp(help);
|
|
|
+ commandhelp.addAlias(help, "kill", "suicide");
|
|
|
|
|
|
help = command.newHelp("tempfly", "tempfly");
|
|
|
helpArg0 = command.newHelpSpecial("Player", "player");
|
|
@@ -8759,6 +8834,8 @@ function setCommandHelps() {
|
|
|
command.addHelp(help);
|
|
|
|
|
|
help = command.newHelp("quest", "quest");
|
|
|
+ //quest see
|
|
|
+ command.addHelpChild(help, command.newHelpLiteral("see"));
|
|
|
//quest term <player>
|
|
|
helpArg0 = command.newHelpLiteral("term");
|
|
|
command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
|
|
@@ -8960,6 +9037,12 @@ function setCommandHelps() {
|
|
|
helpArg0 = command.newHelpString("tip", false);
|
|
|
command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
|
|
|
command.addHelpChild(help, helpArg0);
|
|
|
+ //tipp loop <tip> <boolean>
|
|
|
+ helpArg0 = command.newHelpLiteral("loop");
|
|
|
+ helpArg1 = command.newHelpString("tip", false);
|
|
|
+ command.addHelpChild(helpArg1, command.newHelpBool("wusi"));
|
|
|
+ command.addHelpChild(helpArg0, helpArg1);
|
|
|
+ command.addHelpChild(help, helpArg0);
|
|
|
command.addHelp(help);
|
|
|
|
|
|
help = command.newHelp("ticket", "ticket");
|
|
@@ -9615,4 +9698,4 @@ function hawkeye.getAmountOfAll() {
|
|
|
databank.close(result);
|
|
|
databank.close(stmt);
|
|
|
return amount;
|
|
|
-}
|
|
|
+}
|