|
@@ -113,6 +113,7 @@ command.register("stopadventure", "Stops an adventure");
|
|
|
command.register("story", "Teleports to story-spawn");
|
|
|
command.register("teleport", "Teleports a player to a player");
|
|
|
command.register("tempban", "Bans a player temporarly");
|
|
|
+command.register("tempfly", "Let a player temporarly fly");
|
|
|
command.register("ticket", "Ticket-Commands");
|
|
|
command.register("time", "Time-Commands");
|
|
|
command.register("tip", "Tip-Commands");
|
|
@@ -181,6 +182,7 @@ prefix_datatools = "§6DataTools";
|
|
|
prefix_human = "§6Human";
|
|
|
prefix_plot = "§dPlots";
|
|
|
prefix_party = "§5Party";
|
|
|
+prefix_skill = "§2Skill";
|
|
|
|
|
|
party_ids = getScriptVar("party_ids");
|
|
|
if(party_ids == null) {
|
|
@@ -252,7 +254,7 @@ for(i = 0; i < size; i++) {
|
|
|
p = list.getIndex(online_list, i);
|
|
|
if(showcoords.get(p)) {
|
|
|
coords_loop_active = true;
|
|
|
- sgoto(30, "coordsloop");
|
|
|
+ sgoto(10, "coordsloop");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -424,6 +426,7 @@ inv.setItem(jailmenu, 8, ironbars);
|
|
|
|
|
|
consoleCommands = set.new();
|
|
|
set.add(consoleCommands, "ban");
|
|
|
+set.add(consoleCommands, "tempfly");
|
|
|
set.add(consoleCommands, "silentban");
|
|
|
set.add(consoleCommands, "tempban");
|
|
|
set.add(consoleCommands, "unban");
|
|
@@ -466,6 +469,7 @@ event.load("block_break");
|
|
|
event.load("block_click");
|
|
|
event.load("player_login");
|
|
|
event.load("player_logout");
|
|
|
+event.load("player_data_tick");
|
|
|
|
|
|
msg("dev", "§bCommands §rloaded.");
|
|
|
@wait
|
|
@@ -634,7 +638,7 @@ if(event == "missing_command") {
|
|
|
if(event == "player_login") {
|
|
|
if(showCoords.get(player)) {
|
|
|
if(!coords_loop_active) {
|
|
|
- sgoto(30, "coordsloop");
|
|
|
+ sgoto(10, "coordsloop");
|
|
|
}
|
|
|
}
|
|
|
goto("wait");
|
|
@@ -691,7 +695,50 @@ if(event == "inv_click") {
|
|
|
inv.setItem(inv, inv_slot, read.item("minecraft:air"));
|
|
|
inv.update(player);
|
|
|
}
|
|
|
- //settings
|
|
|
+ if(inv_name == "Skills") {
|
|
|
+ if(item.getType(item) == "minecraft:air") {
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ skill_name = item.getName(item);
|
|
|
+ tech_name = skill.getTechName(skill_name);
|
|
|
+ //Toggle skill
|
|
|
+ if(skill.isToggleable(skill_name)) {
|
|
|
+ if(skill.isActivated(player, tech_name)) {
|
|
|
+ skill.setActivated(player, tech_name, false);
|
|
|
+ } else {
|
|
|
+ skill.setActivated(player, tech_name, true);
|
|
|
+ }
|
|
|
+ inv.setItem(inv, inv_slot, skill.getShopItem(player, skill_name));
|
|
|
+ inv.update(player);
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ //Activate skill
|
|
|
+ if(skill.isActive(skill_name)) {
|
|
|
+ world_name = world.getName(loc.getWorld(entity.getLocation(player)));
|
|
|
+ if(!isSurvWorldName(world_name)) {
|
|
|
+ msg.prefix(player, prefix_skill, "You won't use this in this world.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(tech_name == "skill.fly10min") {
|
|
|
+ duration = data.getTimer(player, "fly");
|
|
|
+ if(duration > 0) {
|
|
|
+ msg.prefix(player, prefix_skill, "Skill already active.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ fly_amount = skill.getAmount(player, "skill.fly10min");
|
|
|
+ if(fly_amount > 0) {
|
|
|
+ status.addTimed(player, 50, 12000, "Fly");
|
|
|
+ data.setTimer(player, "fly", 12000);
|
|
|
+ player.setFly(player, true);
|
|
|
+ new_fly_amount = fly_amount - 1;
|
|
|
+ skill.setAmount(player, "skill.fly10min", new_fly_amount);
|
|
|
+ msg.prefix(player, prefix_skill, concat("Used Fly 10min. New amount: ", text.number(new_fly_amount)));
|
|
|
+ }
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
if(inv_name == "§8Settings") {
|
|
|
if(inv_slot == 0) {
|
|
|
new_value = !player.getAutoCloseDoor(player);
|
|
@@ -709,7 +756,7 @@ if(event == "inv_click") {
|
|
|
inv.setItem(inv, inv_slot, read.item("minecraft:compass", 1, "§fShow Coords", new_value));
|
|
|
if(new_value) {
|
|
|
if(!coords_loop_active) {
|
|
|
- sgoto(30, "coordsloop");
|
|
|
+ sgoto(10, "coordsloop");
|
|
|
}
|
|
|
} else {
|
|
|
display.remove(player, 30);
|
|
@@ -747,9 +794,20 @@ 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.open(inv, player, "§8Settings");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ if(key == 2) {
|
|
|
+ skill.showAll(player);
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
goto("wait");
|
|
|
}
|
|
|
+if(event == "player_data_tick") {
|
|
|
+ if(var == "fly") {
|
|
|
+ tpBottom(player);
|
|
|
+ player.setFly(player, false);
|
|
|
+ }
|
|
|
+}
|
|
|
goto("wait");
|
|
|
|
|
|
@skills
|
|
@@ -1376,25 +1434,43 @@ goto("wait");
|
|
|
|
|
|
@voxel
|
|
|
if(size < 1) {
|
|
|
+ @voxelhelp
|
|
|
msg.prefix(player, prefix_commands, "/voxel <radius:1-5>");
|
|
|
+ msg.prefix(player, prefix_commands, "/voxel block");
|
|
|
goto("wait");
|
|
|
}
|
|
|
-radius = list.getIndex(args, 0);
|
|
|
-if(!isDouble(radius)) {
|
|
|
- msg.prefix(player, prefix_commands, "§rZahl erwartet");
|
|
|
+arg0 = list.getIndex(args, 0);
|
|
|
+if(isDouble(arg0)) {
|
|
|
+ radius = arg0;
|
|
|
+ if(radius < 1) {
|
|
|
+ radius = 1;
|
|
|
+ }
|
|
|
+ if(radius > 5) {
|
|
|
+ radius = 5;
|
|
|
+ }
|
|
|
+ script = script.get("Voxel");
|
|
|
+ map = script.getVar(script, "radius_per_player");
|
|
|
+ map.add(map, player.getUuid(player), radius);
|
|
|
+ script.setVar(script, "radius_per_player", map);
|
|
|
+ msg.prefix(player, prefix_commands, concat("Set radius to ", text.number(radius), "."));
|
|
|
goto("wait");
|
|
|
}
|
|
|
-if(radius < 1) {
|
|
|
- radius = 1;
|
|
|
-}
|
|
|
-if(radius > 5) {
|
|
|
- radius = 5;
|
|
|
+if(arg0 == "block") {
|
|
|
+ item = entity.getEquip(player, "hand");
|
|
|
+ item_type = item.getType(item);
|
|
|
+ if(item_type == "minecraft:air") {
|
|
|
+ msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand.");
|
|
|
+ goto("wait");
|
|
|
+ }
|
|
|
+ state = block.newState(item_type);
|
|
|
+ script = script.get("Voxel");
|
|
|
+ map = script.getVar(script, "state_per_player");
|
|
|
+ map.add(map, player.getUuid(player), state);
|
|
|
+ script.setVar(script, "state_per_player", map);
|
|
|
+ msg.prefix(player, prefix_commands, concat("Set block to ", item_type, "."));
|
|
|
+ goto("wait");
|
|
|
}
|
|
|
-map = script.getVar(script.get("Voxel"), "radius_per_player");
|
|
|
-map.add(map, player.getUuid(player), radius);
|
|
|
-script.setVar(script.get("Voxel"), "radius_per_player", map);
|
|
|
-msg.prefix(player, prefix_commands, concat("Set radius to ", text.number(radius), "."));
|
|
|
-goto("wait");
|
|
|
+goto("voxelhelp");
|
|
|
|
|
|
@setservermessage
|
|
|
if(size < 1) {
|
|
@@ -1646,7 +1722,7 @@ for(i = 0; i < size; i++) {
|
|
|
}
|
|
|
if(size > 0) {
|
|
|
coords_loop_active = true;
|
|
|
- sgoto(30, "coordsloop");
|
|
|
+ sgoto(10, "coordsloop");
|
|
|
} else {
|
|
|
coords_loop_active = false;
|
|
|
}
|
|
@@ -2464,7 +2540,7 @@ if(arg0 == "ai") {
|
|
|
script.startNamed("Ai", "system/ai", "utils/u_general");
|
|
|
}
|
|
|
elseif(arg0 == "commands") {
|
|
|
- script = script.startNamed("Commands", "startcommands");
|
|
|
+ script = script.startNamed("Commands", "system/commands", "utils/u_general", "utils/u_games");
|
|
|
if(script == null) {
|
|
|
snuvi.debug("Old commands script still active due to error in new script");
|
|
|
goto("wait");
|
|
@@ -5818,6 +5894,39 @@ player.setSaturation(affectedplayer, 5);
|
|
|
msg.prefix(affectedplayer, prefix_commands, "Dein Hunger wurde gestillt.");
|
|
|
goto("wait");
|
|
|
|
|
|
+@tempfly
|
|
|
+if(size < 2) {
|
|
|
+ msg.prefix(sender, prefix_commands, "/tempfly <player> <sec>");
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
+p_name = list.getIndex(args, 0);
|
|
|
+if(!checkIfEverOnline(p_name)) {
|
|
|
+ msg.prefix(sender, prefix_commands, "This player has never been online.");
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
+p = read.player(p_name);
|
|
|
+if(p == null) {
|
|
|
+ msg.prefix(sender, prefix_commands, "This player is not online.");
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
+p_name = player.getName(player.getUuid(p_name));
|
|
|
+if(player.hasMinigame(p)) {
|
|
|
+ msg(player, "This player can't fly now.");
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
+sec = list.getIndex(args, 1);
|
|
|
+if(!isDouble(sec) || sec < 0) {
|
|
|
+ msg.prefix(sender, prefix_commands, "Positive number expected.");
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
+msg.prefix(sender, prefix_commands, concat(p_name, " can now fly for ", text.number(sec), " seconds."));
|
|
|
+msg.prefix(p, prefix_commands, concat("You can now fly for ", text.number(sec), " seconds."));
|
|
|
+player.setFly(p, true);
|
|
|
+duration = sec * 20;
|
|
|
+data.setTimer(p, "fly", duration);
|
|
|
+status.addTimed(player, 50, duration, "Fly");
|
|
|
+goto("wait");
|
|
|
+
|
|
|
@fly
|
|
|
if(size > 2) {
|
|
|
msg.prefix(player, prefix_commands, "/fly [player] [on/off]");
|
|
@@ -5835,6 +5944,14 @@ if(size >= 1) {
|
|
|
goto("wait");
|
|
|
}
|
|
|
}
|
|
|
+if(player.hasMinigame(affectedplayer)) {
|
|
|
+ if(size == 2) {
|
|
|
+ msg(player, "This player can't fly now.");
|
|
|
+ } else {
|
|
|
+ msg(player, "You can't fly now.");
|
|
|
+ }
|
|
|
+ goto("wait");
|
|
|
+}
|
|
|
if(size == 2) {
|
|
|
boolean = list.getIndex(args, 1);
|
|
|
if(boolean == "on") {
|
|
@@ -7614,6 +7731,7 @@ function setCommandHelps() {
|
|
|
|
|
|
help = command.newHelp("voxel", "voxel");
|
|
|
command.addHelpChild(help, command.newHelpInt("radius", 1, 5));
|
|
|
+ command.addHelpChild(help, command.newHelpLiteral("block"));
|
|
|
command.addHelp(help);
|
|
|
|
|
|
help = command.newHelp("help", "help");
|
|
@@ -7626,6 +7744,12 @@ function setCommandHelps() {
|
|
|
command.addHelp(help);
|
|
|
addCommandAlias(help, "suicide", "kill");
|
|
|
|
|
|
+ help = command.newHelp("tempfly", "tempfly");
|
|
|
+ helpArg0 = command.newHelpSpecial("Player", "player");
|
|
|
+ command.addHelpChild(helpArg0, command.newHelpInt("seconds", 1, 10000));
|
|
|
+ command.addHelpChild(help, helpArg0);
|
|
|
+ command.addHelp(help);
|
|
|
+
|
|
|
help = command.newHelp("tempban", "tempban");
|
|
|
helpArg0 = command.newHelpSpecial("Player", "player");
|
|
|
helpArg1 = command.newHelpInt("days", 1, 100);
|
|
@@ -8767,4 +8891,15 @@ if(list.getSize(plot_list) == 0) {
|
|
|
list.add(check_for_plot_list, player_uuid);
|
|
|
sgoto(100, "checkForPlot");
|
|
|
}
|
|
|
-goto("wait");
|
|
|
+goto("wait");
|
|
|
+
|
|
|
+function tpBottom(player) {
|
|
|
+ player_loc = entity.getLocation(player);
|
|
|
+ y = loc.getY(player_loc);
|
|
|
+ while(block.isAir(player_loc)) {
|
|
|
+ loc.setY(player_loc, y);
|
|
|
+ y--;
|
|
|
+ }
|
|
|
+ loc.addY(player_loc, 1);
|
|
|
+ entity.teleport(player, player_loc);
|
|
|
+}
|