error_counter = 0; last_error_message = null; @on_error error_counter++; if(error_counter > 1) { msg.dev("Error Handler activated"); if(last_error_message == error_message) { msg.dev("Same error again"); term(); } last_error_message = error_message; if(event == "custom_command") { msg.dev(string.concat("Command ", command, " failed.")); set.add(failed_cmds, command); goto("wait"); } msg.dev("Restarting script..."); error_counter++; if(error_counter >= 5) { msg.dev("Script terminated. Endless loop."); term(); } } waitfor(5); //Verhindert Endlos-Schleife durch "/start commands" command.clear(); //--- Register commands not shown on /help here --- //Games command.add("nextplayer"); command.add("invstats"); command.add("topinvstats"); command.add("removeinvstats"); command.add("sfstats"); command.add("topsfstats"); command.add("removesfstats"); command.add("questanswer"); command.add("infopoint1"); command.add("infopoint2"); command.add("infopoint3"); command.add("infopoint4"); command.add("infopoint5"); command.add("infopoint6"); command.add("infopoint7"); command.add("infopoint8"); command.add("infopoint9"); command.add("infopoint10"); command.add("infopoint11"); command.add("infopoint12"); //Overwrite vanilla command.add("butcher"); //--- Register commands shown on /help here --- alias_map = map.new(); command_list = list.new(); command_map = map.new(); command.register("afk", "Toggles afk"); command.register("allsounds", "Plays all sounds"); command.register("answer", "Answers the last private message"); command.register("armorstand", "Armorstand commands"); command.register("ass", "Armor Stand Signs"); command.register("back", "Teleports to the last position"); command.register("ban", "Bans a player"); command.register("block", "Block commands"); //command.register("clan", "Clan-Commands"); command.register("color", "Shows all colors"); command.register("comeback", "Teleports to your death location"); command.register("copyisland", "Copyisland-Commands"); command.register("creative", "Teleports to creative-spawn"); command.register("customitems", "Shows all custom items"); command.register("databank", "Databank-Commands"); command.register("datatools", "Datatools-Commands"); command.register("dev", "Dev-Commands"); command.register("enchant", "Enchants an item in your hand"); command.register("enderchest", "Shows enderchests"); command.register("error", "Error-Logger"); command.register("feed", "Fills hunger bar"); command.register("fly", "Toggles fly"); command.register("friend", "Friend-Commands"); command.register("game", "marvs minigame shit"); command.register("gamemode", "Change gamemode"); command.register("gamerule", "Manage gamerules"); command.register("games", "Teleports to games-spawn"); command.register("minigames", "Teleports to games-spawn"); command.register("giveup", "Giveup a quest"); command.register("grow", "Grow seeds"); command.register("hat", "Be fame with a new hat"); command.register("head", "Gives you the head of a player"); command.register("heal", "Heals, fills hunger bar and remove effects"); command.register("help", "Shows this help"); command.register("home", "Manage your homes"); command.register("icon", "Shows all icons"); command.register("live", "Toggles Live-Mode"); command.register("lag", "Executes a lag test"); command.register("leave", "Leaves a minigame"); command.register("loginrequests", "Lists the last login requests"); command.register("human", "Human-Commands"); command.register("inv", "Inv-Commands"); command.register("iteminfo", "Returns information about an item"); command.register("jail", "Sends a player to jail"); command.register("joinme", "Sends a party invitation to all online players"); command.register("jumpto", "Jumps to a block in sight"); command.register("kick", "Kicks a player"); command.register("lastseen", "Shows the last players online"); command.register("lightning", "Summons a lightning_bolt"); command.register("list", "List all players online"); command.register("mail", "Mail-Commands"); command.register("mailbox", "Mailbox-Commands"); command.register("memory", "Returns RAM-usage"); command.register("msg", "Send a private message"); command.register("mute", "Mutes a player"); command.register("news", "Send Push-News to all players"); command.register("nickname", "Set a nickname"); command.register("nowb", "Sends no 'is back' message if afk"); command.register("party", "Party-Commands"); command.register("perm", "Manage permissions"); command.register("playtime", "Shows your playtime"); command.register("plot", "Plot-Commands"); command.register("potion", "Adds a potion effects to an item"); command.register("pvp", "Toggles pvp"); command.register("quest", "Quest-Commands"); command.register("rank", "Shows your available ranks"); command.register("repair", "Repairs your item in mainhand"); command.register("ride", "Rides an entity"); command.register("say", "[Server] chat message"); command.register("script", "Script-Commands"); command.register("settings", "Opens settings menu"); command.register("seen", "Returns the last date the player was online"); //command.register("senditem", "Sends an itemstack to another player"); command.register("setmessage", "Set your join/leave-message"); command.register("setrank", ""); command.register("setservermessage", "Sets the server-message in the serverlist"); command.register("setspawn", "Changes a spawn"); command.register("shop", "Shop-Commands"); command.register("sign", "Edit a sign"); command.register("silentjoin", "Toggles your silentjoins"); command.register("skills", "Shows all skills"); command.register("skipnight", "Skips the night"); command.register("spawn", "Teleports to spawn"); command.register("speed", "Sets your speed"); command.register("sponsor", "See what a sponsor can do"); command.register("start", "Starts a script"); command.register("startgame", "Reduces start-countdown for a minigame"); command.register("stats", "Statistics-Commands"); //command.register("stopadventure", "Stops an adventure"); command.register("suicide", "Kill yourself"); command.register("support", "Creates a ticket for support"); command.register("stop", "Stops the server organized"); 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"); command.register("top", "Teleports to to highest point at the current position"); command.register("tp", "Teleport command"); command.register("tpa", "Sends a teleport request to a player"); command.register("tpahere", "Sends a teleport request to a player"); command.register("tpaccept", "Accepts a teleport request"); command.register("tpaccepthere", "Accepts a teleport request"); command.register("tppos", "Teleports to coordinates"); command.register("unban", "Unbans a player"); command.register("unjail", "Releases a player from jail"); command.register("unmute", "Unmutes a player"); command.register("user", "Returns infos about a user"); command.register("vanish", "Vanishes a player"); command.register("var", "Reads variables from a scripts"); command.register("vote", "Show vote links"); command.register("voteshop", "Show vote rewars"); command.register("warn", "Warns a player"); command.register("warp", "Warp-Commands"); command.register("weather", "Weather-Commands"); command.register("world", "World-Commands"); command.registerAlias("as", "armorstand"); command.registerAlias("h", "home"); command.registerAlias("skull", "head"); command.registerAlias("r", "answer"); command.registerAlias("pardon", "unban"); command.registerAlias("j", "jumpto"); command.registerAlias("mimimi", "help"); command.registerAlias("ci", "copyisland"); command.registerAlias("mem", "memory"); command.registerAlias("ram", "memory"); command.registerAlias("colour", "color"); command.registerAlias("gm", "gamemode"); command.registerAlias("p", "plot"); command.registerAlias("dt", "datatools"); command.registerAlias("l", "leave"); command.registerAlias("hub", "leave"); command.registerAlias("v", "vanish"); command.registerAlias("fuckit", "giveup"); command.registerAlias("thor", "lightning"); composter_par = particle.get("COMPOSTER"); wall_signs_tag = block.getTag("minecraft:wall_signs"); beds_tag = block.getTag("minecraft:beds"); chest_tag = block.getTag("km:container"); all_signs_tag = block.getTag("minecraft:all_signs"); sign_tag = block.getTag("minecraft:signs"); //dirt_tag = block.getTag("minecraft:dirt"); prefix_shop = "§6Shop"; prefix_clan = "§2Clan"; prefix_tips = "§eTips"; prefix_lock = "§eLock"; prefix_commands = "§6Commands"; prefix_vote = "§dVote"; prefix_friends = "§5Friends"; prefix_world = "§bWorld"; prefix_jail = "§5Jail"; prefix_quest = "§dQuest"; prefix_perms = "§6Perms"; prefix_datatools = "§6DataTools"; prefix_human = "§6Human"; prefix_plot = "§dPlots"; prefix_party = "§5Party"; prefix_skill = "§2Skill"; initPlotFlags(); initAllSounds(); allsounds_list = getAllSounds(); allsounds_indizes = map.new(); allsounds_uuids = list.new(); allsounds_uuids_cross_check = list.new(); party_ids = getScriptVar("party_ids"); if(party_ids == null) { party_ids = map.new(); setScriptVar("party_ids", map.new()); //Player, partyid } party_lists = getScriptVar("party_lists"); if(party_lists == null) { party_lists = map.new(); setScriptVar("party_lists", map.new()); //partyid, Liste mit Players aller Partymitglieder } party_ranks = getScriptVar("party_ranks"); if(party_ranks == null) { party_ranks = map.new(); setScriptVar("party_ranks", map.new()); //Player, "leader"/"mod"/"player" } party_counter = getScriptVar("party_counter"); if(party_counter == null) { party_counter = 0; setScriptVar("party_counter", party_counter); //Player, partyid } delkeytime = list.new(); //Alle Zeitpunkte zum Löschen der Einladungen (Vergleichsliste) delkeytimes = map.new(); //Player_uuid, Liste mit Zeitpunkten zum Löschen der Einladungen deluuid = list.new(); //Alle Player_uuids zum Löschen der Einladungen party_invitations = map.new(); //Player_uuid, Liste mit Player_uuids aller Einlader party_invite_ids = map.new(); //Player_uuid, partyid sign_copy_map = map.new(); list = getScriptVar("block_commands_list"); if(list == null) { list = list.new(); setScriptVar("block_commands_list", list); } live_set = getScriptVar("live_set"); if(live_set == null) { live_set = set.new(); setScriptVar("live_set", live_set); } else { //Register all Live-Players again iter = iterator(live_set); while(hasNext(iter)) { player = player.get(next(iter)); if(player != null) { player.setLive(player, true); } } } afk_loop_active = false; afk_map = getScriptVar("afk_map"); if(afk_map == null) { afk_map = map.new(); setScriptVar("afk_map", afk_map); } else { //Alle Spieler, die AFK waren, wieder als AFK registrieren iter = map.iterator(afk_map); while(hasNext(iter)) { element = next(iter); player = player.get(map.getKey(element)); if(player != null) { player.setAfk(player, true); afk_loop_active = true; } } } if(afk_loop_active) { sgoto(30, "afk_loop"); } setScriptVar("ha_data_lists", map.new()); setScriptVar("ha_undo_lists", map.new()); money.setBoostFactor(1); sgoto(200, "sb_title_loop"); sgoto(100, "coordsloop"); sgoto(1200, "afk_checker_loop"); sgoto(1200, "minute_loop"); logo = read.item("{id:\"minecraft:brown_banner\",Count:1b,tag:{BlockEntityTag:{Patterns:[{Pattern:\"bs\",Color:15},{Pattern:\"ts\",Color:15},{Pattern:\"bo\",Color:12},{Pattern:\"cs\",Color:12},{Pattern:\"mr\",Color:15},{Pattern:\"mc\",Color:14}]}}}"); lag_list = list.new(); clan_invitations = list.new(); friend_requests = map.new(); lock_chests = map.new(); chatbuffer = map.new(); tpa_request = list.new(); answer_map = map.new(); plotpos1 = map.new(); plotpos2 = map.new(); invseeids = set.new(); fields = set.new(); vanish_set = set.new(); failed_cmds = set.new(); skip_night_set = set.new(); afk_checker_map = map.new(); butcher_set = set.new(); set.add(butcher_set, "zombie"); set.add(butcher_set, "zombie_villager"); set.add(butcher_set, "husk"); set.add(butcher_set, "skeleton"); set.add(butcher_set, "creeper"); set.add(butcher_set, "enderman"); set.add(butcher_set, "pillager"); set.add(butcher_set, "spider"); set.add(butcher_set, "phantom"); set.add(butcher_set, "witch"); set.add(butcher_set, "stray"); set.add(butcher_set, "drowned"); set.add(butcher_set, "wither"); set.add(butcher_set, "silverfish"); set.add(butcher_set, "zombified_piglin"); set.add(butcher_set, "cod"); set.add(butcher_set, "guardian"); attribut_set = set.new(); set.add(attribut_set, "GENERIC_ARMOR"); set.add(attribut_set, "GENERIC_ARMOR_TOUGHNESS"); set.add(attribut_set, "GENERIC_ATTACK_DAMAGE"); set.add(attribut_set, "GENERIC_ATTACK_KNOCKBACK"); set.add(attribut_set, "GENERIC_ATTACK_SPEED"); set.add(attribut_set, "GENERIC_FLYING_SPEED"); set.add(attribut_set, "GENERIC_FOLLOW_RANGE"); set.add(attribut_set, "GENERIC_KNOCKBACK_RESISTANCE"); set.add(attribut_set, "GENERIC_LUCK"); set.add(attribut_set, "GENERIC_MAX_HEALTH"); set.add(attribut_set, "GENERIC_MOVEMENT_SPEED"); set.add(attribut_set, "HORSE_JUMP_STRENGTH"); set.add(attribut_set, "ZOMBIE_SPAWN_REINFORCEMENTS"); operation_set = set.new(); set.add(operation_set, "ADD_NUMBER"); set.add(operation_set, "ADD_SCALAR"); set.add(operation_set, "MULTIPLY_SCALAR_1"); not_blocked_cmd = set.new(); set.add(not_blocked_cmd, "leave"); set.add(not_blocked_cmd, "ban"); set.add(not_blocked_cmd, "kick"); set.add(not_blocked_cmd, "warn"); set.add(not_blocked_cmd, "tempban"); set.add(not_blocked_cmd, "mute"); set.add(not_blocked_cmd, "unmute"); set.add(not_blocked_cmd, "unban"); set.add(not_blocked_cmd, "tip"); set.add(not_blocked_cmd, "var"); set.add(not_blocked_cmd, "quest"); set.add(not_blocked_cmd, "msg"); set.add(not_blocked_cmd, "help"); rank_array = array.new(28, 2); //Playtime rank.add(0, "rank.owner", "4Owner"); rank.add(1, "rank.admin", "cAdmin"); rank.add(2, "rank.moderator", "9Moderator"); rank.add(3, "rank.supporter", "bSupporter"); rank.add(4, "rank.dev", "5Developer"); rank.add(5, "rank.builder", "5Builder"); rank.add(6, "rank.vip", "dVIP"); rank.add(7, "rank.influencer", "dInfluencer"); rank.add(8, "rank.sponsor", "dSponsor"); rank.add(9, "rank.legend", "2Legend"); rank.add(10, "rank.pioneer", "2Pioneer"); rank.add(11, "rank.lord", "2Lord"); rank.add(12, "rank.altruist", "2Altruist"); rank.add(13, "rank.major", "2Major"); rank.add(14, "rank.frequenter", "6Frequenter"); rank.add(15, "rank.explorer", "6Explorer"); rank.add(16, "rank.chief", "6Chief"); rank.add(17, "rank.friend", "6Friend"); rank.add(18, "rank.colonizer", "6Colonizer"); rank.add(19, "rank.newcomer", "eNewcomer"); rank.add(20, "rank.adventurer", "eAdventurer"); rank.add(21, "rank.commander", "eCommander"); rank.add(22, "rank.volunteer", "eVolunteer"); rank.add(23, "rank.settler", "eSettler"); rank.add(24, "rank.user", "3User"); rank.add(25, "rank.challenger", "5Challenger"); rank.add(26, "rank.mobhunter", "6Mobhunter"); rank.add(27, "rank.collector", "2Collector"); setScriptVar("ranks", rank_array); month_array = array.new(12, 2); month.register(0, "Jan", 31); month.register(1, "Feb", 28); month.register(2, "Mar", 31); month.register(3, "Apr", 30); month.register(4, "May", 31); month.register(5, "Jun", 30); month.register(6, "Jul", 31); month.register(7, "Aug", 31); month.register(8, "Sep", 30); month.register(9, "Oct", 31); month.register(10, "Nov", 30); month.register(11, "Dec", 31); jailed_list = list.new(); ironbars = item.create("minecraft:iron_bars", 1, "§r", null); jailmenu = inv.new("00000000", text.new("§8Jail")); inv.setItem(jailmenu, 0, ironbars); inv.setItem(jailmenu, 1, ironbars); inv.setItem(jailmenu, 2, ironbars); inv.setItem(jailmenu, 3, ironbars); inv.setItem(jailmenu, 4, ironbars); inv.setItem(jailmenu, 5, ironbars); inv.setItem(jailmenu, 6, ironbars); inv.setItem(jailmenu, 7, ironbars); inv.setItem(jailmenu, 8, ironbars); skip_night_inv = inv.new("002020200", text.new("Skip Night?")); inv.setItem(skip_night_inv, 2, item.custom.create("CHECK_GREEN", 1, "§fYes", null)); inv.setItem(skip_night_inv, 4, item.create("clay_ball", 1, "§fI don´t care", null)); inv.setItem(skip_night_inv, 6, item.custom.create("CROSS_RED", 1, "§fNo", null)); skip_night_inv_id = inv.getId(skip_night_inv); vote_inv = inv.new("222222222", text.new("§8Voteshop")); lore_list = list.new(); list.add(lore_list, text.new("§fCost: §e6 VP")); list.add(lore_list, text.new("§5Doubles incoming money for 10 minutes.")); list.add(lore_list, text.new("§5Effects quests, minigames and mobarena.")); inv.setItem(vote_inv, 0, item.custom.create("GOLD_COIN", 1, "§aMoney Booster", lore_list)); lore_list = list.new(); list.add(lore_list, text.new("§fCost: §e2 VP")); list.add(lore_list, text.new("§5Rickroles every player on the server.")); inv.setItem(vote_inv, 1, item.create("JUKEBOX", 1, "§aRick is in the house", lore_list)); updateVoteInv(); lore_list = list.new(); list.add(lore_list, text.new("§fCost: §e2 VP")); list.add(lore_list, text.new("§5Be a kiddie and enjoy it.")); inv.setItem(vote_inv, 3, item.create("JUKEBOX", 1, "§aBi Ba Bobby Car", lore_list)); lore_list = list.new(); list.add(lore_list, text.new("§fCost: §e1 VP")); list.add(lore_list, text.new("§5Plays a creeper sound for each player.")); inv.setItem(vote_inv, 4, item.create("JUKEBOX", 1, "§aFalse Alarm", lore_list)); lore_list = list.new(); list.add(lore_list, text.new("§fCost: §e1 VP")); list.add(lore_list, text.new("§5Opens your enderchest.")); inv.setItem(vote_inv, 5, item.create("ENDER_CHEST", 1, "§aMobile Enderchest", lore_list)); lore_list = list.new(); list.add(lore_list, text.new("§fCost: §e7 VP")); list.add(lore_list, text.new("§5A sapphire for your armor.")); list.add(lore_list, text.new("§5To use at jewelry smith.")); inv.setItem(vote_inv, 6, item.custom.create("SAPPHIRE", 1, "§aSapphire", lore_list)); vote_inv_id = inv.getId(vote_inv); consoleCommands = set.new(); set.add(consoleCommands, "ban"); set.add(consoleCommands, "help"); set.add(consoleCommands, "kick"); set.add(consoleCommands, "lastseen"); set.add(consoleCommands, "list"); set.add(consoleCommands, "memory"); set.add(consoleCommands, "mute"); set.add(consoleCommands, "say"); set.add(consoleCommands, "start"); set.add(consoleCommands, "tempban"); set.add(consoleCommands, "tempfly"); set.add(consoleCommands, "unban"); set.add(consoleCommands, "unmute"); set.add(consoleCommands, "user"); set.add(consoleCommands, "warn"); set.add(consoleCommands, "world"); 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) ); ")); databank.workerExecute(databank.prepare(" CREATE TABLE IF NOT EXISTS new_plotranks ( plot_id INT NOT NULL, player_id INT NOT NULL, rank VARCHAR(10), PRIMARY KEY (plot_id, player_id) ); ")); databank.workerExecute(databank.prepare(" CREATE TABLE IF NOT EXISTS new_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) ); ")); databank.workerExecute(databank.prepare(" CREATE TABLE IF NOT EXISTS votes ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL, player_id INT, time BIGINT NOT NULL ); ")); databank.workerExecute(databank.prepare(" CREATE TABLE IF NOT EXISTS newbies ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, player_id INT NOT NULL, time BIGINT NOT NULL ); ")); //plot ranks cachen plot_ranks_map = map.new(); stmt = databank.prepare("SELECT plot_id, player_id, rank FROM new_plotranks"); result = databank.execute(stmt); while(databank.next(result)) { plot_id = databank.getInt(result, 1); player_id = databank.getInt(result, 2); rank = databank.getString(result, 3); map = map.get(plot_ranks_map, plot_id); if(map == null) { map = map.new(); } map.add(map, player_id, rank); map.add(plot_ranks_map, plot_id, map); } databank.close(result); databank.close(stmt); setScriptVar("plot_ranks", plot_ranks_map); last_skip_night = 0; skip_night_started = false; jail_loop_active = false; actual_move_id = map.new(); //Key: player_uuid, Value: move_id. Diese Map speichert das aktuell betretene Plot eines Spielers. plot_move_ids_list = list.new(); //Speichert Array mit plot_id und move_id check_for_plot_list = list.new(); plot.registerMoveEvents(world.getOverworld()); plot.registerMoveEvents(world.getTheNether()); plot.registerMoveEvents(world.getTheEnd()); plot.registerMoveEvents(world.getCreative()); RickRollSounds = getRickRollSounds(); RickRollSoundDists = getRickRollSoundDists(); rick_sounds_amount = list.getSize(RickRollSoundDists); bobbyCarSounds = getBobbyCarSounds(); bobbyCarSoundDists = getBobbyCarSoundDists(); bcar_sounds_amount = list.getSize(bobbyCarSoundDists); item_flags = getItemFlags(); sound_category_master = sound.getCategory("MASTER"); sound_flute = sound.get("BLOCK_NOTE_BLOCK_FLUTE"); sound_harp = sound.get("BLOCK_NOTE_BLOCK_HARP"); sound_pling = sound.get("BLOCK_NOTE_BLOCK_PLING"); creeper_primed = sound.get("ENTITY_CREEPER_PRIMED"); event.load("player_move"); event.load("snuvi_click"); event.load("inv_close"); event.load("missing_perm"); event.load("missing_command"); event.load("command"); event.load("custom_command"); event.load("block_click"); event.load("player_quit"); event.load("vote"); msg("dev", text.new("§bCommands §rloaded.")); @wait wait(); if(event == "command") { if(string.startsWith(permission, "worldedit", 0)) { if(perm.has("creative.we", player)) { world_name = world.getName(loc.getWorld(entity.getLocation(player))); if(!world.isCreativeName(world_name)) { cancel = true; msg.prefix(player, prefix_commands, "You are not in the creative world."); goto("wait"); } } } goto("wait"); } if(event == "custom_command") { //Permission-Check command = string.toLowerCase(command); command = map.getOrDefault(alias_map, command, command); size = list.getSize(args); if(isPlayer(sender)) { player = sender; } else { if(!set.contains(consoleCommands, command)) { msg.string(sender, "Sorry. Not a console command yet. Go and tell marvinius."); goto("wait"); } player = null; } if(!perm.has(command, sender)) { perm.no(command, sender); goto("wait"); } if(set.contains(failed_cmds, command)) { msg.prefix(sender, prefix_commands, "§cCommand temporarly deactivated due to failure."); goto("wait"); } if(player.isCommandBlocked(sender)) { if(!set.contains(not_blocked_cmd, command)) { msg.prefix(sender, prefix_commands, "The most important rule in competition: Sabotage!"); goto("wait"); } } ignoreGoto(command); goto("wait"); } if(event == "vote") { now_time = time.getMillis(); vote.register(name, now_time); p_uuid = player.getUuid(name); if(p_uuid != null) { p_id = player.getId(p_uuid); player.addVotePoints(p_id, 1); if(from == "minecraft-server.eu") { msg("online", text.merge(text.new(string.getPrefix(prefix_vote)), text.new(string.concat(" §b", name, "§r has voted! ")), string.getLinkText("[§bminecraft-server.eu§r]", "https://minecraft-server.eu/vote/index/2227F"))); } else { msg("online", text.merge(text.new(string.getPrefix(prefix_vote)), text.new(string.concat(" §b", name, "§r has voted! ")), string.getLinkText("[§bminecraft-server-list.com§r]", "https://minecraft-server-list.com/server/478200/vote/"))); } last_vote_time = player.getLastVoteTime(p_id); new_streak = player.getVoteStreak(p_id); if(last_vote_time == 0) { new_streak++; } elseif(isFollowingDay(last_vote_time, now_time)) { new_streak++; } elseif(!isSameDay(last_vote_time, now_time)) { new_streak = 1; } if(new_streak % 7 == 0) { msg.online(prefix_vote, string.concat(player.getName(p_uuid), " reached a votestreak of 7 and gets an additional votepoint.")); player.addVotePoints(p_id, 1); } player.setVoteStreak(p_id, new_streak); player.setLastVoteTime(p_id, now_time); } goto("wait"); } if(event == "player_move") { player_uuid = player.getUuid(player); last_move_id = map.getOrDefault(actual_move_id, player_uuid, null); if(last_move_id == id) { goto("wait"); } player_loc = entity.getLocation(player); new_plot_id = plot.getPlotIdFromMoveId(id); new_plot = plot.getFromId(new_plot_id, loc.getWorld(player_loc)); if(new_plot == null) { goto("wait"); } high_plot_id = plot.getHighestId(player_loc); if(new_plot_id < high_plot_id) { goto("wait"); } if(plot.isCity(new_plot)) { color_code = "§c"; } else { color_code = "§e"; } title.send(player, text.new(""), text.new(string.concat("You entered ", color_code, plot.getName(new_plot), "."))); map.add(actual_move_id, player_uuid, id); list.add(check_for_plot_list, player_uuid); sgoto(100, "checkForPlot"); goto("wait"); } if(event == "block_click") { if(block == null) { goto("wait"); } world_name = world.getName(loc.getWorld(entity.getLocation(player))); if(action == "RIGHT_CLICK_BLOCK" && !world.isSurvName(world_name) && block.hasTag(block, beds_tag)) { cancel = true; goto("wait"); } if(player.hasBypass(player)) { goto("wait"); } if(block.hasTag(block, chest_tag)) { block_loc = block.getLocation(block); if(plot.check(block_loc, player, 16, true)) { cancel = false; goto("wait"); } player_id = player.getId(player); player_uuid = player.getUuid(player); list = plot.get(block_loc); if(list.getSize(list) > 0) { iter = iterator(list); access = false; while(hasNext(iter)) { plot = next(iter); canOpenChests = plot.canOpenChests(plot, player_id); if(plot.isSub(plot)) { if(canOpenChests) { cancel = false; goto("wait"); } cancel = true; msg.prefix(player, prefix_plot, "This chest is locked for you."); goto("wait"); } if(canOpenChests) { access = true; cancel = false; } } if(!access && !plot.hasBlock(block_loc)) { if(!world.isGamesName(world_name)) { msg.prefix(player, prefix_plot, "This chest is locked for you."); } } } goto("wait"); } if(action == "RIGHT_CLICK_BLOCK" && block.hasTag(block, sign_tag)) { line0 = sign.getString(block, "FRONT", 0); if(line0 != "§3[§bFree Plot§3]") { goto("wait"); } price = read.number(string.removeFormat(sign.getString(block, "FRONT", 1))); if(price == null || !isDouble(price) || price < 0) { msg.prefix(player, prefix_plot, "Positive number expected."); goto("wait"); } p_id = read.number(sign.getString(block, "FRONT", 3)); if(p_id == null || !isDouble(p_id)) { msg.prefix(player, prefix_plot, "Invalid city owner."); goto("wait"); } if(player.getNameFromId(p_id) == null) { msg.prefix(player, prefix_plot, "Invalid city owner."); goto("wait"); } if(!hasEnoughMoney(player, price)) { msg.prefix(player, prefix_plot, string.concat("You´ll need §6", string.number(price), "§r snuvis for this.")); goto("wait"); } block_loc = block.getLocation(block); plot_list = plot.get(block_loc); iter = iterator(plot_list); while(hasNext(iter)) { plot = next(iter); if(plot.isFree(plot)) { break; } } if(!plot.isFree(plot)) { msg.prefix(player, prefix_plot, "You aren´t on a free plot."); goto("wait"); } //Plot claimen money.sub(player, price); money.add(p_id, price); plot.setSub(plot, true); plot.setLeader(plot, player.getId(player)); player_name = player.getName(player); plot.addPlayer(plot, player_name); plot.setName(plot, string.concat("Plot of ", player_name)); msg.prefix(player, prefix_plot, string.concat("Plot claimed. Spent §6", string.number(price), "§r snuvis.")); goto("wait"); } goto("wait"); } if(event == "missing_command") { msg.prefix(sender, prefix_commands, string.concat("No command ", command)); goto("wait"); } if(event == "player_quit") { map.remove(afk_checker_map, uuid); player.setAfk(player, false); list.remove(jailed_list, player.getUuid(player)); if(player.hasQuest(player)) { script_id = quest.getFromPlayer(player); script = script.getFromId(script_id); if(script == null) { msg.dev("Player logged out with corrupt quest"); quest.removePlayer(player); //in case of corrupt quest goto("wait"); } setScriptVar("player", player); modTimer.scriptCallEvent("quest_term", script); quest.term(script, player); } if(player.isInParty(player)) { party.kickPlayer(player, "logout"); } goto("wait"); } if(event == "missing_perm") { perm.no(command, sender); msg.prefix(sender, prefix_perms, string.concat("Missing Perm: §c", perm)); goto("wait"); } if(event == "snuvi_click") { inv_id = inv.getId(inv); item = inv.getItem(inv, inv_slot); if(item == null) { goto("wait"); } title_string = string.text(inv_title); if(string.startsWith(title_string, "Mailbox", 0)) { item.removeFlag(item, "HIDE_DESTROYS"); if(click == "SHIFT_LEFT") { //Clone item player.safeGiveItem(player, item); goto("wait"); } //Take item player.safeGiveItem(player, item); inv.setItem(inv, inv_slot, item.create("BLACK_STAINED_GLASS_PANE", 1, "", null)); split_array = string.split(" ", title_string); p_name = split_array[2]; p_uuid = player.getUuid(p_name); if(p_uuid == null) { inv.close(player); msg.prefix(player, prefix_commands, "Mailbox closed. Unknown player."); goto("wait"); } p_id = player.getId(p_uuid); mailbox.removeItem(p_id, inv_slot); goto("wait"); } if(string.startsWith(title_string, "Customitems", 0)) { item = inv.getItem(inv, inv_slot); if(item != null) { player.safeGiveItem(player, item); } goto("wait"); } if(set.contains(invseeids, inv_id)) { if(!perm.has("inv.see.plus", player)) { perm.no("inv.see.plus", player); goto("wait"); } split_array = string.split(" ", title_string); p_name = split_array[2]; p = read.player(p_name); if(p == null) { inv.close(player); msg.prefix(player, prefix_commands, "This player is no longer online. Use /inv to load and overwrite an inventory of a offline player."); goto("wait"); } item.removeFlag(item, "HIDE_DESTROYS"); if(click == "SHIFT_LEFT") { //Clone item player.safeGiveItem(player, item); goto("wait"); } //Transmit item player.removeItem(p, item); player.safeGiveItem(player, item); inv.setItem(inv, inv_slot, item.create("BLACK_STAINED_GLASS_PANE", 1, "", null)); goto("wait"); } if(inv_id == vote_inv_id) { if(inv_slot == 0) { if(money.getBoostFactor() > 1) { msg.prefix(player, prefix_commands, "Boost already active."); goto("wait"); } vp = player.getVotePoints(player); if(vp < 6) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } player.setVotePoints(player, vp - 6); msg.online(prefix_vote, string.concat(player.getName(player), " activated §dMoney Booster§r.")); money.setBoostFactor(2); online_list = players.toList(); iter = iterator(online_list); while(hasNext(iter)) { p = next(iter); sb.add(p, 5, "§6Money Booster +100%"); } sgoto(12000, "resetMoneyBoost"); goto("wait"); } if(inv_slot == 1) { vp = player.getVotePoints(player); if(vp < 2) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } msg.online(prefix_vote, string.concat(player.getName(player), " activated §dRick is in the house§r.")); player.setVotePoints(player, vp - 2); rickIndex = 0; goto("RickRole_play"); } if(inv_slot == 2) { vp = player.getVotePoints(player); if(vp < 1) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } player.setVotePoints(player, vp - 1); increaseHomeBoost(); msg.online(prefix_vote, string.concat(player.getName(player), " spend their votepoints to §dMore Homes§r.")); goto("wait"); } if(inv_slot == 3) { vp = player.getVotePoints(player); if(vp < 2) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } msg.online(prefix_vote, string.concat(player.getName(player), " activated §dBi Ba Bobby Car§r.")); player.setVotePoints(player, vp - 2); bobbycarIndex = 0; goto("bobbycar_play"); } if(inv_slot == 4) { vp = player.getVotePoints(player); if(vp < 1) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } msg.online(prefix_vote, string.concat(player.getName(player), " activated §dFalse Alarm§r.")); player.setVotePoints(player, vp - 1); iter = iterator(players.toList()); while(hasNext(iter)) { sound.spawnForPlayer(next(iter), creeper_primed, sound_category_master); } goto("wait"); } if(inv_slot == 5) { vp = player.getVotePoints(player); if(vp < 1) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } player.setVotePoints(player, vp - 1); inv.open(player.getEnderInv(player), player); goto("wait"); } if(inv_slot == 6) { vp = player.getVotePoints(player); if(vp < 7) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } msg.online(prefix_vote, string.concat(player.getName(player), " spend their votepoints to §dSapphire§r.")); player.setVotePoints(player, vp - 7); player.giveItem(player, item.getSapphire()); goto("wait"); } goto("wait"); } if(inv_id == skip_night_inv_id) { world = world.getOverWorld(); world_time = world.getTime(world); while(world_time >= 24000) { world_time -= 24000; } if(world_time <= 12500) { goto("wait"); } player_uuid = player.getUuid(player); if(set.contains(skip_night_set, player_uuid)) { msg.prefix(player, prefix_commands, "Already voted."); goto("wait"); } if(!skip_night_started) { skip_night_yes_list = list.new(); world.addTimedStatus(world, 49, 300, "Skip night?"); msg("online", text.merge(text.new(string.getPrefix(prefix_commands)), text.new(" Skip night? Vote within 15 seconds. "), string.getClickText("[§cClick§r]", "/skipnight"))); skip_night_counter = 15; skip_night_yes = 0; skip_night_no = 0; skip_night_no_care = 0; skip_night_started = true; sgoto(20, "skip_night_loop"); } if(inv_slot == 2) { skip_night_yes++; inv.close(player); set.add(skip_night_set, player_uuid); list.add(skip_night_yes_list, player_uuid); goto("wait"); } if(inv_slot == 4) { skip_night_no_care++; inv.close(player); set.add(skip_night_set, player_uuid); goto("wait"); } if(inv_slot == 6) { skip_night_no++; inv.close(player); set.add(skip_night_set, player_uuid); goto("wait"); } goto("wait"); } if(title_string == "Skills") { if(item == null) { goto("wait"); } skill_name = string.removeFormat(string.text(item.getName(item))); if(skill_name == "") { goto("wait"); } tech_name = skill.getTechName(skill_name); //Toggle skills if(skill.isToggleable(tech_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.getSettingsItem(player, tech_name)); goto("wait"); } //Activate skill if(skill.isActive(tech_name)) { player_loc = entity.getLocation(player); world_name = world.getName(loc.getWorld(player_loc)); if(!world.isSurvName(world_name)) { msg.prefix(player, prefix_skill, "You can´t use this in this world."); goto("wait"); } goto("wait"); if(tech_name == "skill.fire_arrow") { duration = data.getTimer(player, tech_name); if(duration > 0) { msg.prefix(player, prefix_skill, "Skill already active."); goto("wait"); } amount = skill.getAmount(player, tech_name); if(amount > 0) { status.addTimed(player, 54, 1200, skill_name); data.setTimer(player, tech_name, 1200); new_amount = amount - 1; skill.setAmount(player, tech_name, new_amount); msg.prefix(player, prefix_skill, string.concat("Used ", skill_name, ". New amount: ", string.number(new_amount))); } 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"); } amount = skill.getAmount(player, "skill.fly10min"); if(amount > 0) { status.addTimed(player, 50, 12000, "Fly"); data.setTimer(player, "fly", 12000); player.setFly(player, true); new_amount = amount - 1; skill.setAmount(player, "skill.fly10min", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Fly 10min. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.grow") { amount = skill.getAmount(player, "skill.grow"); if(amount > 0) { grow(player_loc, 5); particle.spawnCircle(loc.mod(entity.getLocation(player), 0, 0.8, 0), composter_par, 50, 5, 1, 0, 0, 0.2, 0); new_amount = amount - 1; skill.setAmount(player, "skill.grow", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Grow. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.haste") { amount = skill.getAmount(player, "skill.haste"); if(amount > 0) { entity.addEffect(player, "haste", 2400, 0); new_amount = amount - 1; skill.setAmount(player, "skill.haste", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Haste. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.speed") { amount = skill.getAmount(player, "skill.speed"); if(amount > 0) { entity.addEffect(player, "speed", 2400, 0); new_amount = amount - 1; skill.setAmount(player, "skill.speed", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Speed. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.jump_boost") { amount = skill.getAmount(player, "skill.jump_boost"); if(amount > 0) { entity.addEffect(player, "jump_boost", 2400, 1); new_amount = amount - 1; skill.setAmount(player, "skill.jump_boost", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Jump Boost. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.dolphin") { amount = skill.getAmount(player, "skill.dolphin"); if(amount > 0) { entity.addEffect(player, "dolphins_grace", 1200, 0); new_amount = amount - 1; skill.setAmount(player, "skill.dolphin", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Dolphin. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.block_up") { duration = data.getTimer(player, "block_up"); if(duration > 0) { msg.prefix(player, prefix_skill, "Skill already active."); goto("wait"); } amount = skill.getAmount(player, "skill.block_up"); if(amount > 0) { status.addTimed(player, 51, 1200, "Block Up"); data.setTimer(player, "block_up", 1200); new_amount = amount - 1; skill.setAmount(player, "skill.block_up", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Block Up. New amount: ", string.number(new_amount))); } goto("wait"); } if(tech_name == "skill.block_down") { duration = data.getTimer(player, "block_down"); if(duration > 0) { msg.prefix(player, prefix_skill, "Skill already active."); goto("wait"); } amount = skill.getAmount(player, "skill.block_down"); if(amount > 0) { status.addTimed(player, 52, 1200, "Block Down"); data.setTimer(player, "block_down", 1200); new_amount = amount - 1; skill.setAmount(player, "skill.block_down", new_amount); msg.prefix(player, prefix_skill, string.concat("Used Block Down. New amount: ", string.number(new_amount))); } goto("wait"); } } goto("wait"); } if(title_string == "§8Settings") { if(inv_slot == 0) { new_value = !player.getAutoCloseDoor(player); player.setAutoCloseDoor(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:oak_door", 1, "§fAutomatic Doors", item.createLore(new_value))); } elseif(inv_slot == 1) { new_value = !player.doesAcceptTpaRequests(player); player.acceptTpaRequests(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", item.createLore(new_value))); } elseif(inv_slot == 2) { new_value = !player.getShowcoords(player); player.setShowcoords(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:compass", 1, "§fShow Coords", item.createLore(new_value))); if(!new_value) { sb.remove(player, 2); sb.remove(player, 3); } } elseif(inv_slot == 3) { new_value = !player.hasSittingActivated(player); player.activateSitting(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:oak_stairs", 1, "§fStair-Sitting", item.createLore(new_value))); } elseif(inv_slot == 4) { new_value = !hasPvpOn(player); setPvp(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:iron_sword", 1, "§fPvP", item.createLore(new_value))); } elseif(inv_slot == 5) { new_value = !player.getNoPetDamage(player); player.setNoPetDamage(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:bone", 1, "§fNo Pet Damage", item.createLore(new_value))); } elseif(inv_slot == 6) { new_value = !player.getTipLoop(player); player.setTipLoop(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:oak_sign", 1, "§fShow tip loop", item.createLore(new_value))); } elseif(inv_slot == 7) { new_value = !player.usesCustomMessage(player); player.activateCustomMessage(player, new_value); inv.setItem(inv, inv_slot, item.create("minecraft:oak_sign", 1, "§fUse custom messages", item.createLore(new_value))); } } goto("wait"); } if(event == "inv_close") { if(set.contains(invseeids, inv_id)) { set.remove(invseeids, inv_id); } goto("wait"); } goto("wait"); @block if(size == 0) { @blockhelp msg.prefix(player, prefix_plot, "/block ..."); msg.string(player, "§d - info §rPrints info about a block"); msg.string(player, "§d - public §rMakes a block public"); msg.string(player, "§d - remove §rRemoves a block from public list"); if(perm.has("block.fix", player)) { msg.string(player, "§d - fix §rRemoves all air blocks from public list"); } goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "info") { block = player.getTargetBlock(player, 5); if(block == null) { msg.prefix(player, prefix_commands, "No block in sight."); goto("wait"); } target_loc = block.getLocation(block); msg.string(player, string.getSpacer()); x = string.number(loc.getX(target_loc)); y = string.number(loc.getY(target_loc)); z = string.number(loc.getZ(target_loc)); msg.string(player, string.concat("§6W §r", world.getName(loc.getWorld(target_loc)))); msg.string(player, string.concat("§6X §r", x, " §6Y §r", y, " §6Z §r", z)); msg.string(player, string.concat("§6Type: §r", block.getType(block))); msg.string(player, string.concat("§6Public: §r", plot.hasBlock(target_loc))); msg.string(player, string.concat("§6Data: §r", block.getData(block))); goto("wait"); } if(arg0 == "public") { if(size != 1) { msg.prefix(player, prefix_commands, "/block public"); goto("wait"); } block = player.getTargetBlock(player, 5); if(block == null) { msg.prefix(player, prefix_commands, "No block in sight."); goto("wait"); } location = block.getLocation(block); plot.addBlock(location); msg.prefix(player, prefix_commands, "Block whitelisted for interaction."); plot.saveBlocks(loc.getWorld(location)); goto("wait"); } if(arg0 == "remove") { if(size != 1) { msg.prefix(player, prefix_commands, "/block remove"); goto("wait"); } block = player.getTargetBlock(player, 5); if(block == null) { msg.prefix(player, prefix_commands, "No block in sight."); goto("wait"); } location = block.getLocation(block); plot.removeBlock(location); msg.prefix(player, prefix_commands, "Block no longer whitelisted for interaction."); plot.saveBlocks(loc.getWorld(location)); goto("wait"); } if(arg0 == "fix") { if(!perm.has("block.fix", player)) { perm.no("block.fix", player); goto("wait"); } //temp_list verhindern concurrent modification temp_list = list.new(); world = world.getOverWorld(); c = 0; iter = plot.blockIterator(world); while(hasNext(iter)) { pos = next(iter); x = plot.position.getX(pos); y = plot.position.getY(pos); z = plot.position.getZ(pos); loc = loc.new(world, x, y, z); block = block.get(loc); if(block.isAir(block)) { c++; list.add(temp_list, loc); } } iter = iterator(temp_list); while(hasNext(iter)) { plot.removeBlock(next(iter)); } msg.prefix(player, prefix_commands, string.concat("Removed ", string.number(c), " blocks.")); goto("wait"); } goto("blockhelp"); @settings inv = inv.new("222222222", text.new("§8Settings")); inv.setItem(inv, 0, item.create("minecraft:oak_door", 1, "§fAutomatic Doors", item.createLore(player.getAutoCloseDoor(player)))); inv.setItem(inv, 1, item.create("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", item.createLore(player.doesAcceptTpaRequests(player)))); inv.setItem(inv, 2, item.create("minecraft:compass", 1, "§fShow Coords", item.createLore(player.getShowcoords(player)))); inv.setItem(inv, 3, item.create("minecraft:oak_stairs", 1, "§fStair-Sitting", item.createLore(player.hasSittingActivated(player)))); inv.setItem(inv, 4, item.create("minecraft:iron_sword", 1, "§fPvP", item.createLore(hasPvpOn(player)))); inv.setItem(inv, 5, item.create("minecraft:bone", 1, "§fNo Pet Damage", item.createLore(player.getNoPetDamage(player)))); inv.setItem(inv, 6, item.create("minecraft:oak_sign", 1, "§fShow tip loop", item.createLore(player.getTipLoop(player)))); inv.setItem(inv, 7, item.create("minecraft:oak_sign", 1, "§fUse custom messages", item.createLore(player.usesCustomMessage(player)))); inv.open(inv, player); goto("wait"); @loginrequests if(size < 2) { msg.prefix(sender, prefix_commands, "/loginrequests [result]"); goto("wait"); } amount = list.getIndex(args, 1); if(!isDouble(amount) || amount < 0) { msg.prefix(player, prefix_shop, "Positive number expected."); goto("wait"); } result = null; if(size == 3) { result = list.getIndex(args, 2); if(result != "ALLOWED" && result != "KICK_FULL" && result != "KICK_BANNED" && result != "KICK_WHITELIST" && result != "KICK_OTHER") { msg.prefix(player, prefix_shop, "No valid result."); goto("wait"); } } p_name = list.getIndex(args, 0); if(p_name == "all") { list = loginrequests.getAll(amount, result); } else { p_uuid = player.getUuid(p_name); if(p_uuid == null) { msg.prefix(player, prefix_tips, "This player has never been online."); goto("wait"); } p_id = player.getId(p_uuid); list = loginrequests.getPlayer(p_id, amount, result); } table = table.new("§b", 10, 11, 10); msg.string(player, table.getStart(table)); msg.string(player, table.get(table, "Player", "Time", "Result")); msg.string(player, table.getMiddle(table)); iter = iterator(list); while(hasNext(iter)) { a = next(iter); msg.string(player, table.get(table, player.getNameFromId(a[0]), time.getString(a[1]), a[2])); } msg.string(player, table.getEnd(table)); goto("wait"); @shop if(size == 0) { @shop_help msg.prefix(player, prefix_shop, "/shop ..."); msg.string(player, "§6 - create §rCreates a shop"); msg.string(player, "§6 - buy §rSet buy settings"); msg.string(player, "§6 - sell §rSet sell settings"); msg.string(player, "§6 - remove §rRemove settings"); if(perm.has("shop.owner", player)) { msg.string(player, "§6 - owner §rSet shop owner"); } goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "create") { if(size != 1) { msg.prefix(player, prefix_shop, "§6/shop create"); goto("wait"); } sign_block = player.getTargetBlock(player, 5, false, false); if(!block.isWallSign(sign_block)) { msg.prefix(player, prefix_shop, "Look at a wall sign."); goto("wait"); } chest_block = block.mod(sign_block, 0, -1, 0); if(!block.isChest(chest_block)) { msg.prefix(player, prefix_shop, "No chest under sign."); goto("wait"); } if(sign.getString(sign_block, "FRONT", 0) != "") { msg.prefix(player, prefix_shop, "Sign is not empty."); goto("wait"); } sign_loc = block.getLocation(sign_block); sign.setString(sign_block, "FRONT", 0, "[Shop]"); sign.setString(sign_block, "FRONT", 3, string.number(player.getId(player))); block.signSetWaxed(sign_block, true); msg.prefix(player, prefix_shop, "Created Shop."); goto("wait"); } if(arg0 == "buy" || arg0 == "sell") { if(size != 3) { msg.prefix(player, prefix_shop, string.concat("§6/shop ", arg0, " ")); goto("wait"); } amount = list.getIndex(args, 1); price = list.getIndex(args, 2); if(!isDouble(amount) || !isDouble(price)) { msg.prefix(player, prefix_shop, "Number expected."); goto("wait"); } amount = math.round(amount); if(amount < 0) { msg.prefix(player, prefix_shop, "Positive number expected."); goto("wait"); } if(price < 0) { msg.prefix(player, prefix_shop, "Positive number expected."); goto("wait"); } if(price > 266304) { msg.prefix(player, prefix_shop, string.concat("Maximum ", money.getString(266304), " allowed.")); goto("wait"); } sign_block = player.getTargetBlock(player, 5, false, false); if(!block.isWallSign(sign_block)) { msg.prefix(player, prefix_shop, "Look at a wall sign."); goto("wait"); } chest_block = block.mod(sign_block, 0, -1, 0); if(!block.isChest(chest_block)) { msg.prefix(player, prefix_shop, "No chest under sign."); goto("wait"); } if(!shop.isOwner(player, sign_block)) { msg.prefix(player, prefix_shop, "You are not the owner."); goto("wait"); } if(arg0 == "buy") { sign.setString(sign_block, "FRONT", 1, string.concat("Buy ", string.number(amount), " for ", string.number(price))); } else { sign.setString(sign_block, "FRONT", 2, string.concat("Sell ", string.number(amount), " for ", string.number(price))); } msg.prefix(player, prefix_shop, "Price set."); goto("wait"); } if(arg0 == "remove") { if(size != 2) { msg.prefix(player, prefix_shop, "§6/shop remove "); goto("wait"); } sign_block = player.getTargetBlock(player, 5, false, false); if(!block.isWallSign(sign_block)) { msg.prefix(player, prefix_shop, "Look at a wall sign."); goto("wait"); } chest_block = block.mod(sign_block, 0, -1, 0); if(!block.isChest(chest_block)) { msg.prefix(player, prefix_shop, "No chest under sign."); goto("wait"); } if(!shop.isOwner(player, sign_block)) { msg.prefix(player, prefix_shop, "You are not the owner."); goto("wait"); } arg1 = string.toLowerCase(list.getIndex(args, 1)); if(arg1 == "buy") { sign.setString(sign_block, "FRONT", 1, ""); } elseif(arg1 == "sell") { sign.setString(sign_block, "FRONT", 2, ""); } else { msg.prefix(player, prefix_shop, "§6/shop remove "); goto("wait"); } msg.prefix(player, prefix_shop, "Price removed."); goto("wait"); } if(arg0 == "owner") { if(!perm.has("shop.owner", player)) { perm.no("shop.owner", player); goto("wait"); } if(size != 2) { msg.prefix(player, prefix_shop, "§6/shop owner "); goto("wait"); } p_name = list.getIndex(args, 1); p_uuid = player.getUuid(p_name); if(p_uuid == null) { msg.prefix(player, prefix_shop, "This player has never been online."); goto("wait"); } sign_block = player.getTargetBlock(player, 5, false, false); if(!block.isWallSign(sign_block)) { msg.prefix(player, prefix_shop, "Look at a wall sign."); goto("wait"); } sign.setString(sign_block, "FRONT", 3, string.number(player.getId(p_uuid))); goto("wait"); } goto("shop_help"); @mailbox location = entity.getLocation(player); world_name = world.getName(loc.getWorld(entity.getLocation(player))); if(!world.isSurvName(world_name)) { msg.prefix(player, prefix_commands, "You can´t use this command in this world."); goto("wait"); } if(player.isOnAdventure(player) && !perm.has("mailbox.other", player)) { msg.prefix(player, prefix_commands, "You can´t use the mailbox while on adventure."); goto("wait"); } if(size == 0) { msg.prefix(player, prefix_commands, "/mailbox..."); if(perm.has("mailbox.other", player)) { msg.string(player, "§6 - show [player] §rOpens a mailbox of a player."); } else { msg.string(player, "§6 - show §rOpens your mailbox."); } msg.string(player, "§6 - send §rSends the item in your hand to a mailbox of a player."); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "send") { if(size != 2) { msg.prefix(player, prefix_commands, "/mailbox send "); goto("wait"); } item = living.getHand(player); if(item.isAir(item)) { msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand."); goto("wait"); } to_name = list.getIndex(args, 1); if(!checkIfEverOnline(to_name)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } to_player_id = player.getId(player.getUuid(to_name)); if(!mailbox.sendItem(to_player_id, item)) { msg.prefix(player, prefix_commands, "No free space in mailbox."); goto("wait"); } living.setEquip(player, read.slot("HAND"), null); msg.send(player, to_name, prefix_commands, string.concat(player.getName(player), " sent you items to your mailbox."), true); msg.prefix(player, prefix_commands, "Item sent to player."); goto("wait"); } if(arg0 == "show") { if(size == 1) { player_id = player.getId(player); mailbox.show(player, player_id, false); mailbox.clear(player_id); goto("wait"); } if(size == 2) { if(!perm.has("mailbox.other", player)) { perm.no("mailbox.other", player); goto("wait"); } from_name = list.getIndex(args, 1); if(!checkIfEverOnline(from_name)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } from_player_id = player.getId(player.getUuid(from_name)); mailbox.show(player, from_player_id, true); goto("wait"); } if(perm.has("mailbox.other", player)) { msg.prefix(player, prefix_commands, "/mailbox show [player]"); } else { msg.prefix(player, prefix_commands, "/mailbox show"); } } goto("wait"); @RickRole_play if(rickIndex < rick_sounds_amount) { pitch = list.getIndex(RickRollSounds, rickIndex); PlayVoteSound(pitch); ticks = 2 + list.getIndex(RickRollSoundDists, rickIndex); sgoto(ticks, "RickRole_play"); } rickIndex++; goto("wait"); @bobbycar_play if(bobbycarIndex < bcar_sounds_amount) { pitch = list.getIndex(bobbyCarSounds, bobbycarIndex); PlayVoteSound(pitch); ticks = list.getIndex(bobbyCarSoundDists, bobbycarIndex); sgoto(ticks, "bobbycar_play"); } bobbycarIndex++; goto("wait"); function PlayVoteSound(pitch) { iter = iterator(players.toList()); while(hasNext(iter)) { online_player = next(iter); if(online_player == null) { continue; } sound.spawnForPlayer(online_player, $sound_flute, $sound_category_master, 1, pitch); sound.spawnForPlayer(online_player, $sound_harp, $sound_category_master, 1, pitch); sound.spawnForPlayer(online_player, $sound_pling, $sound_category_master, 1, pitch); } } @resetMoneyBoost money.setBoostFactor(1); online_list = players.toList(); iter = iterator(online_list); while(hasNext(iter)) { p = next(iter); sb.remove(p, 5); } goto("wait"); @skip_night_loop skip_night_counter--; if(skip_night_counter == 0) { msg.online(prefix_commands, "Skip night results:"); msg("online", text.new(string.concat("§e - §rYes: §e", string.number(skip_night_yes)))); msg("online", text.new(string.concat("§e - §rNo: §e", string.number(skip_night_no)))); msg("online", text.new(string.concat("§e - §rI don´t care: §e", string.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(); iter = iterator(skip_night_yes_list); while(hasNext(iter)) { p = player.get(next(iter)); if(p != null) { player.resetSleep(p); } } sgoto(8400, "reset_skip_night"); goto("wait"); } sgoto(20, "skip_night_loop"); goto("wait"); @reset_skip_night skip_night_started = false; goto("wait"); @skills //skills [player] if(size == 0) { skill.showAll(player, player); goto("wait"); } if(!perm.has("skills.other", player)) { perm.no("skills.other", player); goto("wait"); } p_name = list.getIndex(args, 0); p_uuid = player.getUuid(p_name); if(p_uuid == null) { msg.prefix(player, prefix_tips, "This player has never been online."); goto("wait"); } from_p_id = player.getId(p_uuid); skill.showAll(from_p_id, player); goto("wait"); @infopoint1 msg.string(player, string.getSpacer()); msg.prefix(player, "§eSurvival", "§aEnjoy classic survival extended by our plugin."); goto("wait"); @infopoint2 msg.string(player, string.getSpacer()); msg.prefix(player, "§eAdventure", "§aSearching for a new challenge? Get teleported thousands of blocks away in the wildness with no inventory and find your way back to spawn."); goto("wait"); @infopoint3 msg.string(player, string.getSpacer()); msg.prefix(player, "§ePlots", "§aClaim land and protect your buildings against other players. Use /plot to create and manage your plots."); goto("wait"); @infopoint4 msg.string(player, string.getSpacer()); msg.prefix(player, "§eClans", "§aAs a well-known player on our server you can create your own community. By now as a clan you can only create cities."); goto("wait"); @infopoint5 msg.string(player, string.getSpacer()); msg.prefix(player, "§eCities", "§aAs a plot owner you can raise your plots to big cities. Create sub-plots and sell them to other players."); goto("wait"); @infopoint6 msg.string(player, string.getSpacer()); msg.prefix(player, "§eShops", "§aUse our admin-shop to trade, or create an own shop with /shop. We might do a YT-tutorial on this."); goto("wait"); @infopoint7 msg.string(player, string.getSpacer()); msg.prefix(player, "§eMinigames", "§aWe offer a range of different single- and multiplayer games."); goto("wait"); @infopoint8 msg.string(player, string.getSpacer()); msg.prefix(player, "§eQuests", "§aYou are nice and helpful? There are lots of tasks to do in the villages."); goto("wait"); @infopoint9 msg.string(player, string.getSpacer()); msg.prefix(player, "§eRanking", "§aWanna rise in rank and be the best player in every branch? Look at our ranks."); goto("wait"); @infopoint10 msg.string(player, string.getSpacer()); msg.prefix(player, "§eRules", "§aWe have no rules, except to be respectful. Look at our jokes instead."); goto("wait"); @infopoint11 msg.string(player, string.getSpacer()); msg.prefix(player, "§eNote", "§aEverything is self-coded. Worldedit is the only external mod we use."); goto("wait"); @infopoint12 msg.string(player, string.getSpacer()); msg.prefix(player, "§eNote", "§aBe Creative in our creative world."); goto("wait"); @party if(size == 0) { @partyhelp msg.prefix(player, prefix_party, "/party ..."); msg.string(player, "§5 - invite §rInvite a player"); msg.string(player, "§5 - invite friends §rInvites all online friends"); msg.string(player, "§5 - accept §rAccept an invitation"); msg.string(player, "§5 - deny §rDeny an invitation"); msg.string(player, "§5 - kick §rKick a player"); msg.string(player, "§5 - leave §rLeave the party"); msg.string(player, "§5 - promote §rPromote a player"); msg.string(player, "§5 - demote §rDemote a player"); msg.string(player, "§5 - disband §rDisband a party"); msg.string(player, "§5 - list §rParty information"); msg.string(player, "§5 - §rSends a party message"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "list") { if(size != 1) { msg.prefix(player, prefix_party, "§5/party list"); } else { if(!player.isInParty(player)) { msg.prefix(player, prefix_party, "You are not in a party."); goto("wait"); } list = party.getList(player.getPartyId(player)); width = 1; if(list.getSize(list) > 9) { width = 2; } table = table.new("§5", width, 13, 7); msg.string(player, table.getStart(table)); msg.string(player, table.get(table, "§d#", "§d§lName", "§d§lRole")); msg.string(player, table.getMiddle(table)); iter = iterator(list); c = 0; while(hasNext(iter)) { c++; p = player.get(next(iter)); msg.string(player, table.get(table, string.number(c), player.getName(p), player.getPartyRank(p))); } msg.string(player, table.getEnd(table)); } goto("wait"); } if(arg0 == "leave") { if(size != 1) { msg.prefix(player, prefix_party, "§5/party leave"); } else { if(!player.isInParty(player)) { msg.prefix(player, prefix_party, "You are not in a party."); goto("wait"); } party.kickPlayer(player, "leave"); } goto("wait"); } if(arg0 == "disband") { if(size != 1) { msg.prefix(player, prefix_party, "§5/party disband"); } else { if(!player.isInParty(player)) { msg.prefix(player, prefix_party, "You are not in a party."); goto("wait"); } if(!player.isPartyLeader(player)) { msg.prefix(player, prefix_party, "You are not the party leader."); goto("wait"); } party.delete(player.getPartyId(player)); } goto("wait"); } if(arg0 == "kick") { if(size != 2) { msg.prefix(player, prefix_party, "§5/party kick "); } else { if(!player.isInParty(player)) { msg.prefix(player, prefix_party, "You are not in a party."); goto("wait"); } if(!player.isPartyLeaderOrMod(player)) { msg.prefix(player, prefix_party, "You are not leader or moderator of the party."); goto("wait"); } pname = list.getIndex(args, 1); if(!checkIfEverOnline(pname)) { msg.prefix(player, prefix_party, "This player has never been online."); goto("wait"); } p = read.player(pname); if(p == null) { msg.prefix(player, prefix_party, "This player is not online."); goto("wait"); } if(player == p) { msg.prefix(player, prefix_party, "You can´t apply that to yourself."); goto("wait"); } if(!party.same(p, player)) { msg.prefix(player, prefix_party, "This player is not in your party."); goto("wait"); } ownrank = player.getPartyRank(player); if(ownrank == "Moderator") { if(player.isPartyLeaderOrMod(p)) { msg.prefix(player, prefix_party, "You can´t kick this player."); goto("wait"); } } party.kickPlayer(p, "kick"); } goto("wait"); } if(arg0 == "promote" || arg0 == "demote") { if(size != 2) { msg.prefix(player, prefix_party, string.concat("§5/party ", arg0, " ")); } else { pname = list.getIndex(args, 1); if(!player.isInParty(player)) { msg.prefix(player, prefix_party, "You are not in a party."); goto("wait"); } if(!player.isPartyLeader(player)) { msg.prefix(player, prefix_party, "You are not the party leader."); goto("wait"); } if(!checkIfEverOnline(pname)) { msg.prefix(player, prefix_party, "This player has never been online."); goto("wait"); } p = read.player(pname); if(p == null) { msg.prefix(player, prefix_party, "This player is not online."); goto("wait"); } if(player == p) { msg.prefix(player, prefix_party, "You can´t apply that to yourself."); goto("wait"); } if(!party.same(p, player)) { msg.prefix(player, prefix_party, "This player is not in your party."); goto("wait"); } partyid = player.getPartyId(player); rank = player.getPartyRank(p); if(arg0 == "promote") { if(rank == "Player") { player.setPartyRank(p, "Moderator"); party.sendMessage(partyid, string.concat("§r", pname, " is now Moderator.")); } elseif(rank == "Moderator") { player.setPartyRank(p, "Leader"); player.setPartyRank(player, "Moderator"); //Ex-Leader degradieren party.sendMessage(partyid, string.concat("§r", pname, " is now Leader.")); } } elseif(arg0 == "demote") { if(rank == "Moderator") { player.setPartyRank(p, "Player"); party.sendMessage(partyid, string.concat("§r", pname, " is no longer Moderator.")); } else { msg.prefix(player, prefix_party, "This player cannot be demoted."); } } } goto("wait"); } if(arg0 == "invite") { if(size != 2) { msg.prefix(player, prefix_party, "§5/party invite "); } else { arg1 = list.getIndex(args, 1); if(arg1 == "friends") { player_id = player.getId(player); friends = friend.getListOnline(player_id); iter = iterator(friends); while(hasNext(iter)) { f_name = next(iter); f = read.player(f_name); party.invitePlayer(player, f); } msg.prefix(player, prefix_party, "All online friends invited."); goto("wait"); } p_name = arg1; if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_party, "This player has never been online."); goto("wait"); } p = read.player(p_name); temp = party.invitePlayer(player, p); if(temp == "inviteeNotOnline") { msg.prefix(player, prefix_party, "This player is not online."); } elseif(temp == "inviterEqualsInvitee") { msg.prefix(player, prefix_party, "You can´t apply that to yourself."); } elseif(temp == "inviterNotPermitted") { msg.prefix(player, prefix_party, "You are not leader or moderator of the party."); } elseif(temp == "inviteeAlreadyInParty") { msg.prefix(player, prefix_party, "This player is already in your party."); } elseif(temp == "inviteeAlreadyInvited") { msg.prefix(player, prefix_party, "This player already has an invitation from you."); } else { msg.prefix(player, prefix_party, "Invitation sent."); } } goto("wait"); } if(arg0 == "accept") { if(size != 2) { msg.prefix(player, prefix_party, "§5/party accept "); } else { if(player.isInParty(player)) { msg.prefix(player, prefix_party, "You are already in a party."); goto("wait"); } pname = list.getIndex(args, 1); if(!checkIfEverOnline(pname)) { msg.prefix(player, prefix_party, "This player has never been online."); goto("wait"); } p = read.player(pname); if(p == null) { msg.prefix(player, prefix_party, "This player is no longer online."); goto("wait"); } player_uuid = player.getUuid(player); p_uuid = player.getUuid(p); list = map.get(party_invitations, player_uuid); if(list == null || !list.contains(list, p_uuid)) { msg.prefix(player, prefix_party, "This invitation is invalid."); goto("wait"); } if(player.isInParty(p)) { //wenn einlader bereits in party partyid = player.getPartyId(p); if(map.get(party_invite_ids, p_uuid) == partyid) { //wenn partyid noch die gleiche ist wie bei einladung party.addPlayer(partyid, player); player.setPartyRank(player, "Player"); } else { msg.prefix(player, prefix_party, "This player is already in another party."); goto("wait"); } } else { partyid = map.get(party_invite_ids, p_uuid); party.setList(partyid, list.new()); party.addPlayer(partyid, p); party.addPlayer(partyid, player); player.setPartyRank(p, "Leader"); player.setPartyRank(player, "Player"); msg.prefix(p, prefix_party, "The party was created."); } list.clear(list); //Einladungs-Liste von oben party.sendMessage(partyid, string.concat("§r", player.getName(player), " joined the party.")); } goto("wait"); } if(arg0 == "deny") { if(size != 2) { msg.prefix(player, prefix_party, "§5/party deny "); } else { player_uuid = player.getUuid(player); list = map.get(party_invitations, player_uuid); if(list != null) { pname = list.getIndex(args, 1); p = read.player(pname); if(p == null) { msg.prefix(player, prefix_party, "This player is no longer online."); goto("wait"); } p_uuid = player.getUuid(p); if(list == null || !list.contains(list, p_uuid)) { msg.prefix(player, prefix_party, "This invitation is invalid."); goto("wait"); } index = list.getIndexOf(list, p_uuid); list.remove(list, p_uuid); keytimes = map.get(delkeytimes, player_uuid); list.removeIndex(keytimes, index); p = read.player(pname); if(p != null) { msg.prefix(p, prefix_party, string.concat("§r", player.getName(player), " has denied your invitation.")); } msg.prefix(player, prefix_party, string.concat("Invitation from ", pname, " denied.")); } } goto("wait"); } if(player.isInParty(player)) { message = string.concat(player.getName(player), " §1| §r", string.concatList(args, " ", 0, list.getSize(args) - 1)); party.sendMessage(player.getPartyId(player), message); goto("wait"); } goto("partyhelp"); @setmessage if(size == 0) { @setmessagehelp msg.prefix(player, prefix_commands, "/setmessage ..."); msg.string(player, "§e- join §rSets your join message"); msg.string(player, "§e- leave §rSets your leave message"); msg.string(player, "§e- death §rSets your death message"); msg.string(player, "§e- info §rShows you set messages"); if(perm.has("setmessage.delete", player)) { msg.string(player, "§e- delete §rDeletes a players messages"); } goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "info") { if(player.usesCustomMessage(player)) { msg.prefix(player, prefix_commands, "Custom messages are activated."); } else { msg.prefix(player, prefix_commands, "Custom messages are deactivated. /settings"); } fullname = player.getFullName(player); message = player.getJoinMessage(player); if(message == null) { msg.prefix(player, prefix_commands, "No join message set."); } else { msg.prefix(player, prefix_commands, string.concat("§a§l> §r", fullname, " §9", message)); } message = player.getLeaveMessage(player); if(message == null) { msg.prefix(player, prefix_commands, "No leave message set."); } else { msg.prefix(player, prefix_commands, string.concat("§c§l> §r", fullname, " §9", message)); } message = player.getDeathMessage(player); if(message == null) { msg.prefix(player, prefix_commands, "No death message set."); } else { msg.prefix(player, prefix_commands, string.concat("§0§lx §r", fullname, " §9", message)); } goto("wait"); } if(arg0 == "join") { if(size < 2) { goto("setmessagehelp"); } message = string.concatList(args, " ", 1, size - 1); player.setJoinMessage(player, message); msg.prefix(player, prefix_commands, "Join message set."); goto("wait"); } if(arg0 == "leave") { if(size < 2) { goto("setmessagehelp"); } message = string.concatList(args, " ", 1, size - 1); player.setLeaveMessage(player, message); msg.prefix(player, prefix_commands, "Leave message set."); goto("wait"); } if(arg0 == "death") { if(size < 2) { goto("setmessagehelp"); } message = string.concatList(args, " ", 1, size - 1); player.setDeathMessage(player, message); msg.prefix(player, prefix_commands, "Death message set."); goto("wait"); } if(arg0 == "delete") { if(size == 1) { p_uuid = player.getUuid(player); } elseif(size == 2) { if(!perm.has("setmessage.delete", player)) { perm.no("setmessage.delete", player); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } p_uuid = player.getUuid(p_name); } else { goto("setmessagehelp"); } p_id = player.getId(p_uuid); player.setJoinMessage(p_id, "null"); player.setLeaveMessage(p_id, "null"); msg.prefix(player, prefix_commands, "Messages deleted."); goto("wait"); } goto("wait"); @lag msg.prefix(player, prefix_commands, "Lag test is performed. Please wait..."); a = array.new(2); a[0] = player.getUuid(player); a[1] = time.getMillis(); list.add(lag_list, a); sgoto(100, "do_lag_test"); goto("wait"); @do_lag_test t = time.getMillis(); a = list.getIndex(lag_list, 0); list.removeIndex(lag_list, 0); p_uuid = a[0]; t_old = a[1]; t = math.roundComma((t - t_old) / 50 / 5, 2); //ms -> ticks t = 40 - t; p = player.get(p_uuid); if(p != null) { msg.prefix(p, prefix_commands, "Expected: 20 ticks/sec"); msg.prefix(p, prefix_commands, string.concat("Measured: ", string.number(t), " ticks/sec")); } goto("wait"); @live boolean = !player.isLive(player); player.setLive(player, boolean); player.setHeadName(player); player.setTabName(player); msg.prefix(player, prefix_commands, "Live toggled."); goto("wait"); @lightning block = player.getTargetBlock(player, 50); if(block == null) { msg.prefix(player, prefix_commands, "No block in sight."); goto("wait"); } entity.spawn(block.getLocation(block), "LIGHTNING"); goto("wait"); @ride entity = player.getTargetEntity(player, 5); if(entity == null) { msg.prefix(player, prefix_commands, "No entity found."); goto("wait"); } world_name = world.getName(loc.getWorld(entity.getLocation(player))); if(world.isGamesName(world_name)) { if(player.hasMinigame(player) || (perm.has("ride", player) && !perm.has("isTeam", player))) { msg.prefix(player, prefix_commands, "You can´t use this now."); goto("wait"); } } entity.mount(player, entity); goto("wait"); @vanish //vanish [on/off] [player] if(size == 0) { if(set.contains(vanish_set, player.getUuid(player))) { bool = "off"; } else { bool = "on"; } } if(size >= 1) { bool = list.getIndex(args, 0); } if(size > 1) { p_name = list.getIndex(args, 1); p = read.player(p_name); if(p == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } else { p = player; } p_name = player.getName(p); player_name = player.getName(player); if(bool == "on") { if(p != player) { msg.prefix(player, prefix_commands, string.concat(p_name, " has been vanished.")); msg.prefix(p, prefix_commands, string.concat("You have been vanished by ", player_name, ".")); } else { msg.prefix(p, prefix_commands, "You are vanished."); } set.add(vanish_set, player.getUuid(p)); player.hideOnline(p); } elseif(bool == "off") { if(p != player) { msg.prefix(player, prefix_commands, string.concat(p_name, " is no longer vanished.")); msg.prefix(p, prefix_commands, string.concat("You are no longer vanished caused by ", player_name, ".")); } else { msg.prefix(p, prefix_commands, "You are no longer vanished."); } set.remove(vanish_set, player.getUuid(p)); player.showOnline(p); } else { msg.prefix(player, prefix_commands, "/vanish [on/off] [player]"); } goto("wait"); @user if(size == 0) { @user_help msg.prefix(sender, prefix_commands, "/user ..."); if(perm.has("user.other", player)) { msg.string(sender, "§6 - info [player] §rReturns info about a user"); } else { msg.string(sender, "§6 - info §rReturns info about you"); } if(perm.has("user.money", player)) { msg.string(sender, "§6 - addmoney §rAdds money to a player"); msg.string(sender, "§6 - setmoney §rSets the money of a player"); } goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "info") { if(size < 2) { if(!isPlayer(sender)) { msg.prefix(sender, prefix_commands, "/user info "); goto("wait"); } p_name = player.getName(player); p_uuid = player.getUuid(p_name); } else { if(!perm.has("user.other", sender)) { perm.no("user.other", sender); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(sender, prefix_commands, "This player has never been online."); goto("wait"); } p_uuid = player.getUuid(p_name); p_name = player.getName(p_uuid); } p = read.player(p_name); p_id = player.getId(p_uuid); if(p == null) { p_or_id = p_id; } else { p_or_id = p; } table = table.new("§8", 7, 24); msg.string(sender, table.getStart(table)); msg.string(sender, table.get(table, "Player", p_name)); msg.string(sender, table.getMiddle(table)); msg.string(sender, table.get(table, "Playtime", string.number(math.roundDown(player.getTotalPlaytime(p_or_id) / 60)))); msg.string(sender, table.get(table, "Joins", string.number(player.getJoins(p_or_id)))); msg.string(sender, table.get(table, "First Join", time.getDateString(player.getFirstJoin(p_or_id)))); msg.string(sender, table.get(table, "Last Join", time.getDateString(player.getLastJoin(p_or_id)))); if(perm.has("user.other", sender)) { msg.string(sender, table.get(table, "UUID", p_uuid)); msg.string(sender, table.get(table, "ID", string.number(p_id))); if(player.isLive(sender)) { msg.string(sender, table.get(table, "IP", "§7§oHidden")); } else { msg.string(sender, table.get(table, "IP", player.getLoggedIp(p_or_id))); } snuvis = money.get(p_or_id); msg.string(sender, table.get(table, "Money", string.concat(money.getString(snuvis), " (",string.number(snuvis), ")"))); } msg.string(sender, table.get(table, "Rank", getRank(p_or_id))); msg.string(sender, table.get(table, "PvP", hasPvpOn(p_or_id))); msg.string(sender, table.get(table, "Quests", string.number(quest.getCounter(p_or_id)))); msg.string(sender, table.get(table, "Adventures", string.number(player.getAdventureAmounts(p_or_id)))); msg.string(sender, table.getEnd(table)); goto("wait"); } if(arg0 == "addmoney") { if(!perm.has("user.money", sender)) { perm.no("user.money", sender); goto("wait"); } if(size != 3) { msg.prefix(sender, prefix_commands, "/user addmoney "); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(sender, prefix_commands, "This player has never been online."); goto("wait"); } money = list.getIndex(args, 2); if(!isDouble(money)) { msg.prefix(sender, prefix_commands, "Number expected."); goto("wait"); } p_uuid = player.getUuid(p_name); p_id = player.getId(p_uuid); money.add(p_id, money); msg.prefix(sender, prefix_commands, string.concat("Added ", money.getString(money), " to ", player.getName(p_uuid), ".")); goto("wait"); } if(arg0 == "setmoney") { if(!perm.has("user.money", sender)) { perm.no("user.money", sender); goto("wait"); } if(size != 3) { msg.prefix(sender, prefix_commands, "/user setmoney "); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(sender, prefix_commands, "This player has never been online."); goto("wait"); } money = list.getIndex(args, 2); if(!isDouble(money)) { msg.prefix(sender, prefix_commands, "Number expected."); goto("wait"); } p_uuid = player.getUuid(p_name); p_id = player.getId(p_uuid); setMoney(p_id, money); msg.prefix(sender, prefix_commands, string.concat("Set ", string.number(money), " snuvis for ", player.getName(p_uuid), ".")); goto("wait"); } goto("user_help"); @quest if(size == 0) { @quest_syntax msg.prefix(player, prefix_quest, "/quest ..."); msg.string(player, "§5 - see §rSee all active quests"); msg.string(player, "§5 - term §rTerminates a quest of a player"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "see") { if(size != 1) { msg.prefix(player, prefix_quest, "/quest see"); goto("wait"); } msg.prefix(player, prefix_quest, "Active quests:"); 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; } q_name = script.getVar(script, "quest_name"); stage = script.getVar(script, "stage"); all_stages = script.getVar(script, "all_stages"); msg.string(player, string.concat( "§d- §r", player.getName(key), " ", string.number(value), " ", q_name, " (", string.number(stage), "/", string.number(all_stages), ")")); } goto("wait"); } if(arg0 == "term") { if(size != 2) { msg.prefix(player, prefix_quest, "/quest term "); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_quest, "This player has never been online."); goto("wait"); } p = read.player(p_name); if(p == null) { msg.prefix(player, prefix_quest, "This player is not online."); goto("wait"); } script_id = quest.getFromPlayer(p); if(script_id == null) { msg.prefix(player, prefix_quest, "This player has no quest."); goto("wait"); } script = script.getFromId(script_id); if(script == null) { quest.removePlayer(p); msg.prefix(player, prefix_quest, "Corrupt quest terminated."); goto("wait"); } setScriptVar("player", p); modTimer.scriptCallEvent("quest_term", script); quest.term(script, player); msg.prefix(player, prefix_quest, "Quest terminated."); goto("wait"); } goto("quest_syntax"); @friend if(size == 0) { @friend_syntax msg.prefix(player, prefix_friends, "/friend ..."); msg.string(player, "§5 - add §rAdds a friend"); msg.string(player, "§5 - remove §rRemoves a friend"); msg.string(player, "§5 - list §rLists all your friends"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "add") { if(size != 2) { msg.prefix(player, prefix_friends, "/friend add "); goto("wait"); } friend_name = list.getIndex(args, 1); player_name = player.getName(player); if(player_name == friend_name) { msg.prefix(player, prefix_friends, "You can´t invite yourself."); goto("wait"); } player_id = player.getId(player); if(!checkIfEverOnline(friend_name)) { msg.prefix(player, prefix_friends, "This player has never been online."); goto("wait"); } friend_id = player.getId(player.getUuid(friend_name)); if(friend.check(player_id, friend_id)) { msg.prefix(player, prefix_friends, "This player is already your friend."); goto("wait"); } if(map.contains(friend_requests, friend_id)) { if(map.get(friend_requests, friend_id) == player_id) { friend.add(player_id, friend_id); map.remove(friend_requests, friend_id); msg.prefix(player, prefix_friends, string.concat("§7", friend_name, "§r is your friend now.")); msg.send(player, friend_name, prefix_friends, string.concat("§7", player_name, "§r is your friend now."), true); goto("wait"); } } map.add(friend_requests, player_id, friend_id); //Einlader, Eingeladener friend = read.player(friend_name); msg.prefix(player, prefix_friends, string.concat("You sent an invitation to §7", friend_name, "§r.")); if(friend != null) { msg(friend, text.merge(text.new(string.concat("§7", player_name, "§r wants to be your friend." )), string.getClickText("§r[§aAccept§r]", string.concat("/friend add ", player_name)))); } goto("wait"); } if(arg0 == "remove") { if(size != 2) { msg.prefix(player, prefix_friends, "/friend remove "); goto("wait"); } friend_name = list.getIndex(args, 1); player_id = player.getId(player); if(!checkIfEverOnline(friend_name)) { msg.prefix(player, prefix_friends, "This player has never been online."); goto("wait"); } friend_id = player.getId(player.getUuid(friend_name)); if(!friend.check(player_id, friend_id)) { msg.prefix(player, prefix_friends, "This player isn´t your friend."); goto("wait"); } friend.delete(player_id, friend_id); msg.prefix(player, prefix_friends, string.concat("§7", friend_name, "§r is no longer your friend.")); msg.send(player, friend_name, prefix_friends, string.concat("§7", player.getName(player), "§r is no longer your friend."), true); goto("wait"); } if(arg0 == "list") { if(size != 1) { msg.prefix(player, prefix_friends, "/friend list"); goto("wait"); } player_id = player.getId(player); friendlist = friend.getList(player_id); listsize = list.getSize(friendlist); if(listsize == 0) { msg.prefix(player, prefix_friends, "You have no friends yet."); goto("wait"); } msg.string(player, "§5Friends:"); for(i = 0; i <= listsize - 1; i++) { friend_name = player.getNameFromId(list.getIndex(friendlist, i)); if(friend_name != null) { msg.string(player, string.concat("- ", friend_name)); } } goto("wait"); } goto("friend_syntax"); @var if(size != 2) { msg.prefix(player, prefix_commands, "/var "); goto("wait"); } script_id = list.getIndex(args, 0); script = script.getFromId(script_id); if(script == null) { msg.prefix(player, "§dScript", "Invalid id"); goto("wait"); } var_name = list.getIndex(args, 1); var = script.getVar(script, var_name); msg.prefix(player, "§dScript", string.concat(var_name, " = ", var)); goto("wait"); @vote msg.string(player, string.getSpacer()); if(size == 0) { link1 = "https://minecraft-server.eu/vote/index/2227F"; link2 = "https://minecraft-server-list.com/server/478200/vote/"; msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), string.getLinkText("§r<§dminecraft-server.eu§r>", link1))); msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), string.getLinkText("§r<§dminecraft-server-list.com§r>", link2))); p_id = player.getId(player); } else { if(!perm.has("user.other", player)) { perm.no("user.other", player); goto("wait"); } p_name = list.getIndex(args, 0); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } p_id = player.getId(player.getUuid(p_name)); } msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), text.new(string.concat("Votepoints: §6", string.number(player.getVotePoints(p_id)))))); msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), text.new(string.concat("Votestreak: §6", string.number(player.getVoteStreak(p_id)))))); last_vote_time = player.getLastVoteTime(p_id); if(last_vote_time == 0) { last_vote_time = "-"; } else { last_vote_time = time.getString(last_vote_time); } msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), text.new(string.concat("Last vote: §6", last_vote_time)))); goto("wait"); @voteshop inv.open(vote_inv, player, string.concat("Your vote points: §6", string.number(player.getVotePoints(player)))); goto("wait"); @setservermessage if(size < 1) { msg.prefix(player, prefix_commands, "/setservermessage "); goto("wait"); } message = string.concatList(args, " ", 0, size - 1); message = string.replace(message, "&", "§"); setMOTD(message); msg.prefix(player, prefix_commands, "Server-Message gesetzt"); goto("wait"); @error if(size < 1) { msg.prefix(player, "§cError", "/error ..."); msg.string(player, "§c - list §rLists all errors"); msg.string(player, "§c - clear §rDeletes all errors"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "list") { error_size = error.getSize(); if(error_size == 0) { msg.prefix(player, "§cError", "No errors existing."); goto("wait"); } for(i = 0; i < error_size; i++) { msg.string(player, error.getIndex(i)); } goto("wait"); } if(arg0 == "clear") { error.clear(); msg.prefix(player, "§cError", "All errors deleted."); goto("wait"); } goto("wait"); @hat item = living.getHand(player); if(item.isAir(item)) { msg.prefix(player, prefix_commands, "You have to hold an item in hand."); goto("wait"); } head_slot = slot.getHead(); head_item = living.getEquip(player, head_slot); living.setEquip(player, head_slot, item); living.setEquip(player, slot.getHand(), head_item); goto("wait"); @news if(size < 1) { msg.prefix(player, prefix_commands, "/news "); goto("wait"); } message = string.concatList(args, " ", 0, size - 1); online_list = players.toList(); iter = iterator(online_list); while(hasNext(iter)) { p = next(iter); title.send(p, text.new("§cNews"), text.new(string.concat("by ", player.getName(player)))); msg.prefix(p, "§4News", string.concat("§c", message)); } goto("wait"); @skipnight player_loc = entity.getLocation(player); world_name = world.getName(loc.getWorld(player_loc)); if(!world.isSurvName(world_name)) { msg.prefix(player, prefix_commands, "Not possible in this world."); goto("wait"); } world_time = world.getTime(world.getOverWorld()); while(world_time >= 24000) { world_time -= 24000; } if(world_time <= 12500) { msg.prefix(player, prefix_commands, "Only during night possible."); goto("wait"); } player_uuid = player.getUuid(player); if(set.contains(skip_night_set, player_uuid)) { msg.prefix(player, prefix_commands, "Already voted."); goto("wait"); } if(time.getMillis() - last_skip_night < 420000) { msg.prefix(player, prefix_commands, "Only once per night possible."); goto("wait"); } inv.open(skip_night_inv, player); goto("wait"); @spawn if(size == 0) { p = player; } if(size == 1) { if(!perm.has("tp.other", player)) { perm.no("tp.other", player); goto("wait"); } p_name = list.getIndex(args, 0); p = read.player(p_name); if(p == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } if(player.hasMinigame(p)) { if(size == 1) { msg.prefix(player, prefix_commands, "This player can´t be teleported now."); goto("wait"); } msg.prefix(player, prefix_commands, "You can´t teleport now."); goto("wait"); } if(player.teleport(p, world.getServerSpawn(), true)) { if(player == p) { msg.prefix(p, prefix_commands, "You have been teleported to the spawn."); } else { msg.prefix(player, prefix_commands, string.concat(player.getName(p), " was teleported to the spawn.")); } } goto("wait"); @rank msg.string(player, string.getSpacer()); rank = getRank(player); msg.string(player, string.concat("§6Current rank: §r[", rank, "§r]")); msg.string(player, "Choose a rank:"); rank.showAll(player); goto("wait"); @setrank if(size < 2) { msg.prefix(player, prefix_commands, "/setrank "); goto("wait"); } p_name = list.getIndex(args, 0); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } p = read.player(p_name); if(p == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } p_name = player.getName(p); rank = string.concatList(args, " ", 1, size - 1); if(!perm.has("setrank.other", player)) { if(player.getName(player) != p_name) { perm.no("setrank.other", player); goto("wait"); } colored = string.startsWith(rank, "&", 0); if(colored) { rank = string.subString(rank, 1, string.length(rank)); } a = rank.getRankArray(); a_size = array.getSize(a); for(i = 0; i < a_size; i++) { tech_name = a[i, 0]; if(rank == a[i, 1] && !rank.checkCriteria(p, tech_name)) { perm.no(tech_name, p); goto("wait"); } } if(colored) { rank = string.concat("&", rank); } } if(string.length(rank) >= 30) { msg.prefix(player, prefix_commands, "Only 30 letters allowed."); goto("wait"); } rank = string.replace(rank, "&", "§"); setRank(p, rank); player.setTabName(p); msg.prefix(player, prefix_commands, string.concat("Rank for ", p_name, " changed to [", rank, "§r].")); goto("wait"); @nowb if(player.isAfk(player)) { player.setAfk(player, false); msg.prefix(player, prefix_commands, "marvinius whispers to you: Welcome back ;-)"); player.setTabName(player); } else { msg.prefix(player, prefix_commands, "You are not afk."); } goto("wait"); @afk if(player.hasMinigame(player)) { msg.prefix(player, prefix_commands, "No afk while in a minigame :P"); goto("wait"); } nickname = player.getNickname(player); if(player.isAfk(player)) { msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is back.")); player.setAfk(player, false); } else { msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is now afk.")); player.setAfk(player, true); if(!afk_loop_active) { afk_loop_active = true; sgoto(30, "afk_loop"); } } player.setTabName(player); goto("wait"); @silentjoin silentjoin = player.getSilentJoin(player); if(silentjoin) { player.setSilentJoin(player, false); msg.prefix(player, prefix_commands, "Silentjoin deactivated."); } else { player.setSilentJoin(player, true); msg.prefix(player, prefix_commands, "Silentjoin activated."); } goto("wait"); @joinme list = players.toList(); iter = iterator(list); while(hasNext(iter)) { invitee = next(iter); if(player == invitee) { continue; } party.invitePlayer(player, invitee); } msg.prefix(player, prefix_party, "Party invitation sent to all online players."); goto("wait"); @jumpto block = player.getTargetBlock(player, 100); if(block == null) { msg.prefix(player, prefix_commands, "No block in sight."); goto("wait"); } loc = block.getLocation(block); y = loc.getY(loc); while(y < 319 && !block.isAir(block.get(loc))) { loc.setY(loc, y); y++; } player.teleport(player, loc.mod(loc, 0, 1, 0), true); goto("wait"); @jailloop size = list.getSize(jailed_list); for(i = 0; i < size; i++) { p_name = player.getName(list.getIndex(jailed_list, i)); showJail(p_name); } if(size > 0) { jail_loop_active = true; sgoto(5, "jailloop"); } else { jail_loop_active = false; } goto("wait"); @sb_title_loop list = players.toList(); iter = iterator(list); if(title_a == null) { while(hasNext(iter)) { p = next(iter); sb.setTitle(p, text.new("§c§k# §6minecraft§c.§6marvin§c.§6lu §c§k#")); title_a = true; } } else { while(hasNext(iter)) { p = next(iter); sb.setTitle(p, text.new(string.concat(icon.getHeart(), "§6Mundus §cCrassus§f", icon.getHeart()))); title_a = null; } } sgoto(200, "sb_title_loop"); goto("wait"); @coordsloop list = players.toList(); size = list.getSize(list); for(i = 0; i < size; i++) { p = list.getIndex(list, i); if(player.getShowcoords(p)) { p_loc = entity.getLocation(p); sb.add(p, 3, string.concat("§6X§r ", string.number(loc.getBlockX(p_loc)), " §6Y§r ", string.number(loc.getBlockY(p_loc)), " §6Z§r ", string.number(loc.getBlockZ(p_loc)))); sb.add(p, 2, string.concat(icon.getCompass(), " ", getDirectionExact(loc.getYaw(p_loc)))); } } sgoto(15, "coordsloop"); goto("wait"); @customitems inv = inv.new("222222222222222222222222222222222222222222222222222222", text.new("Customitems")); a = item.custom.getAll(); for(i = 0; i < array.getSize(a); i++) { item = item.custom.new(a[i]); item.setAmount(item, item.getMaxAmount(item)); inv.setItem(inv, i, item); if(i > 53) { msg.dev("More customitems than can be shown in one inv"); break; } } inv.open(inv, player); goto("wait"); @afk_loop if(!afk_loop_active) { goto("wait"); } afk_map = getScriptVar("afk_map"); iter = map.iterator(afk_map); while(hasNext(iter)) { element = next(iter); yaw = map.getValue(element); player = player.get(map.getKey(element)); if(player != null) { if(yaw != loc.getYaw(entity.getLocation(player))) { nickname = player.getNickname(player); msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is back.")); remove(iter); player.setAfk(player, false); player.setTabName(player); } } } size = map.getSize(afk_map); if(size > 0) { afk_loop_active = true; sgoto(30, "afk_loop"); } else { afk_loop_active = false; } goto("wait"); @minute_loop cal = time.new(time.getMillis()); timer_day = time.getDay(cal); if(old_timer_day == null) { old_timer_day = timer_day; } if(timer_day != old_timer_day) { old_timer_day = timer_day; //Tageswechsel decreaseHomeBoost(); } sgoto(1200, "minute_loop"); goto("wait"); @afk_checker_loop online_list = players.toList(); iter = iterator(online_list); while(hasNext(iter)) { uuid = next(iter); p = player.get(uuid); if(player.hasMinigame(p)) { continue; } yaw = loc.getYaw(entity.getLocation(p)); a = map.get(afk_checker_map, uuid); if(a == null) { a = array.new(2); a[0] = yaw; a[1] = 0; map.add(afk_checker_map, uuid, a); continue; } last_yaw = a[0]; counter = a[1]; if(last_yaw == yaw) { counter++; } else { counter = 0; } a[0] = yaw; a[1] = counter; map.add(afk_checker_map, uuid, a); if(counter == 5) { nickname = player.getNickname(p); if(player.isAfk(p)) { continue; } msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is now afk.")); player.setAfk(p, true); player.setTabName(p); if(!afk_loop_active) { afk_loop_active = true; sgoto(30, "afk_loop"); } } } sgoto(1200, "afk_checker_loop"); goto("wait"); @armorstand if(size == 0) { @armorstand_syntax msg.prefix(player, prefix_datatools, "/armorstand ..."); msg.string(player, "§6 - name §rSets the name"); msg.string(player, "§6 - visible §rSets if is visible"); msg.string(player, "§6 - arms §rSets if has arms"); msg.string(player, "§6 - small §rSets if is small"); msg.string(player, "§6 - baseplate §rSets if has baseplate"); msg.string(player, "§6 - marker §rSets if is marker"); msg.string(player, "§6 - move §rSets if can move"); msg.string(player, "§6 - tick §rSets if can tick"); msg.string(player, "§6 - setpose §rSets the pose"); msg.string(player, "§6 - addpose §rSets the pose"); goto("wait"); } player_loc = entity.getLocation(player); player_world = loc.getWorld(player_loc); player_world_name = world.getName(player_world); if(!perm.has("plot.bypass", player)){ if(!(world.isSurvName(player_world_name) || world.isCreativeName(player_world_name))){ msg.action(player, "Wrong world."); goto("wait"); } if (!plot.check(player_loc, player, 0, true)){ msg.action(player, "You do not have permission for that on this plot."); goto("wait"); } } as = player.getTargetEntity(player, 5); if(!entity.isArmorstand(entity)) { location = entity.getLocation(player); as = entity.get(location, 3, "org.bukkit.entity.ArmorStand"); if(as == null) { msg.action(player, "No armorstand found."); goto("wait"); } } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "name") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand name "); goto("wait"); } name = string.concatList(args, " ", 1, size - 1); name = string.replace(name, "&", "§"); entity.setName(as, text.new(name), true); msg.action(player, string.concat("Armorstand renamed to ", name, "§r.")); goto("wait"); } if(arg0 == "visible") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand visible "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } living.setInvisible(as, !bool); msg.action(player, "Visibility set."); goto("wait"); } if(arg0 == "arms") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand arms "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } as.setArms(as, bool); msg.action(player, "Arms set."); goto("wait"); } if(arg0 == "small") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand small "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } as.setSmall(as, bool); msg.action(player, "Small set."); goto("wait"); } if(arg0 == "baseplate") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand baseplate "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } as.setBasePlate(as, bool); msg.action(player, "Baseplate set."); goto("wait"); } if(arg0 == "marker") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand marker "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } as.setMarker(as, bool); msg.action(player, "Marker set."); goto("wait"); } if(arg0 == "move") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand move "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } as.canMove(as, bool); msg.action(player, "Move set."); goto("wait"); } if(arg0 == "tick") { if(size < 2) { msg.prefix(player, prefix_datatools, "/armorstand tick "); goto("wait"); } bool = list.getIndex(args, 1); if(bool != true && bool != false) { msg.action(player, "True/False expected."); goto("wait"); } as.canTick(as, bool); msg.action(player, "Tick set."); goto("wait"); } if(arg0 == "setpose") { if(size < 5) { msg.prefix(player, prefix_datatools, "/armorstand setpose "); goto("wait"); } x = list.getIndex(args, 2); if(!isDouble(x) || x < -360 || x > 360) { msg.action(player, "Number between -360 and 360 expected."); goto("wait"); } x *= math.pi() / 180; y = list.getIndex(args, 3); if(!isDouble(y) || y < -360 || y > 360) { msg.action(player, "Number between -360 and 360 expected."); goto("wait"); } y *= math.pi() / 180; z = list.getIndex(args, 4); if(!isDouble(z) || z < -360 || z > 360) { player.action(player, "Number between -360 and 360 expected."); goto("wait"); } z *= math.pi() / 180; euler_angle = euler.new(x, y, z); bodypart = list.getIndex(args, 1); if(bodypart == "head") { as.setHeadPose(as, euler_angle); } elseif(bodypart == "body") { as.setBodyPose(as, euler_angle); } elseif(bodypart == "leftleg") { as.setLeftLegPose(as, euler_angle); } elseif(bodypart == "rightleg") { as.setRightLegPose(as, euler_angle); } elseif(bodypart == "leftarm") { as.setLeftArmPose(as, euler_angle); } elseif(bodypart == "rightarm") { as.setRightArmPose(as, euler_angle); } else { msg.action(player, "Not a legit bodypart."); goto("wait"); } msg.action(player, "Pose set."); goto("wait"); } if(arg0 == "addpose") { if(size < 5) { msg.prefix(player, prefix_datatools, "/armorstand addpose "); goto("wait"); } x = list.getIndex(args, 2); if(!isDouble(x) || x < -360 || x > 360) { msg.action(player, "Number between -360 and 360 expected."); goto("wait"); } x *= math.pi() / 180; y = list.getIndex(args, 3); if(!isDouble(y) || y < -360 || y > 360) { msg.action(player, "Number between -360 and 360 expected."); goto("wait"); } y *= math.pi() / 180; z = list.getIndex(args, 4); if(!isDouble(z) || z < -360 || z > 360) { msg.action(player, "Number between -360 and 360 expected."); goto("wait"); } z *= math.pi() / 180; bodypart = list.getIndex(args, 1); if(bodypart == "head") { euler_angle = as.getHeadPose(as); euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x); euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y); euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z); as.setHeadPose(as, euler_angle); } elseif(bodypart == "body") { euler_angle = as.getBodyPose(as); euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x); euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y); euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z); as.setBodyPose(as, euler_angle); } elseif(bodypart == "leftleg") { euler_angle = as.getLeftLegPose(as); euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x); euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y); euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z); as.setLeftLegPose(as, euler_angle); } elseif(bodypart == "rightleg") { euler_angle = as.getRightLegPose(as); euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x); euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y); euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z); as.setRightLegPose(as, euler_angle); } elseif(bodypart == "leftarm") { euler_angle = as.getLeftArmPose(as); euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x); euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y); euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z); as.setLeftArmPose(as, euler_angle); } elseif(bodypart == "rightarm") { euler_angle = as.getRightArmPose(as); euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x); euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y); euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z); as.setRightArmPose(as, euler_angle); } else { msg.action(player, "Not a legit bodypart."); goto("wait"); } msg.action(player, "Pose set."); goto("wait"); } goto("armorstand_syntax"); @ass if(size == 0) { msg.prefix(player, prefix_commands, "§r/ass ..."); msg.string(player, " - set "); msg.string(player, " - name "); msg.string(player, " - remove"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "set") { if(size < 2) { msg.prefix(player, prefix_datatools, "/ass set "); goto("wait"); } name = string.concatList(string_args, " ", 1, size - 1); name = string.replace(name, "&", "§"); as = entity.spawn(entity.getLocation(player), "ARMOR_STAND"); entity.setGravity(as, false); entity.setName(as, text.new(name), true); living.setInvisible(as, true); as.setMarker(as, true); as.canTick(as, false); goto("wait"); } as = player.getTargetEntity(player, 5); if(!entity.isArmorstand(entity)) { location = entity.getLocation(player); as = entity.get(location, 3, "org.bukkit.entity.ArmorStand"); if(as == null) { msg.action(player, "No armorstand found."); goto("wait"); } } if(arg0 == "name") { if(size < 2) { msg.prefix(player, prefix_datatools, "/ass name "); goto("wait"); } name = string.concatList(string_args, " ", 1, size - 1); name = string.replace(name, "&", "§"); entity.setName(as, text.new(name), true); msg.action(player, "Armorstand renamed."); goto("wait"); } if(arg0 == "remove") { entity.remove(as); msg.action(player, "Armorstand removed."); goto("wait"); } goto("wait"); @potion if(size != 3) { msg.prefix(player, prefix_perms, "/potion "); goto("wait"); } item = living.getHand(player); if(item.getType(item) == null || !(item.isType(item, "POTION") || item.isType(item, "SPLASH_POTION") || item.isType(item, "LINGERING_POTION"))) { msg.prefix(player, prefix_commands, "You need to hold an potion in your hand."); goto("wait"); } potion_name = list.getIndex(args, 0); list = getPotionTypes(); if(!list.contains(list, potion_name)) { msg.prefix(player, prefix_commands, "Not an potion effect type."); goto("wait"); } duration = list.getIndex(args, 1); if(!isDouble(duration) || duration < 0) { msg.prefix(player, prefix_commands, "Positive number expected."); goto("wait"); } power = list.getIndex(args, 2); if(!isDouble(power) || power < 0) { msg.prefix(player, prefix_commands, "Positive number expected."); goto("wait"); } item.addPotion(item, potion_name, duration, power); goto("wait"); @pvp if(size == 0) { if(hasPvpOn(player)) { mode = "off"; } else { mode = "on"; } p = player; } elseif(size == 1) { mode = list.getIndex(args, 0); if(!(mode == "on" || mode == "off")) { goto("pvphelp"); } p = player; } elseif(size == 2) { if(!perm.has("pvp.other", player)) { perm.no("pvp.other", player); goto("wait"); } mode = list.getIndex(args, 0); if(!(mode == "on" || mode == "off")) { goto("pvphelp"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } p = read.player(p_name); if(p == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } else { @pvphelp if(perm.has("pvp.other", player)) { msg.prefix(player, prefix_commands, "/pvp [on/off] [player]"); } else { msg.prefix(player, prefix_commands, "/pvp [on/off]"); } goto("wait"); } if(mode == "on") { setPvp(p, true); msg.prefix(p, prefix_commands, "You have enabled PvP!"); if(p != player) { msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has now enabled PvP!")); } } else { setPvp(p, false); msg.prefix(p, prefix_commands, "You have PvP disabled!"); if(p != player) { msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has now disabled PvP!")); } } goto("wait"); @suicide if(size < 0 || size > 1) { msg.prefix(player, prefix_commands, "/suicide [player]"); goto("wait"); } if(size == 0) { p = player; } if(size == 1) { if(!perm.has("suicide.other", player)) { perm.no("suicide.other", player); goto("wait"); } p_name = list.getIndex(args, 0); p = read.player(p_name); if(p == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } if(p != player) { msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has been killed.")); msg.prefix(p, prefix_commands, string.concat("You have been killed by ", player.getName(player), ".")); } else { msg.prefix(p, prefix_commands, "You killed yourself."); } living.damage(p, 1000, damage.get("generic")); goto("wait"); @nickname if(size < 1) { msg.prefix(player, "§eNickname", "/nickname ..."); msg.string(player, string.concat("§e - ", "Sets a nickname")); msg.string(player, string.concat("§e - remove ", "Removes a nickname")); goto("wait"); } nickname = string.replace(string.concatList(args, " ", 0, size - 1), "&", "§"); if(nickname == "remove") { player.removeNickName(player); msg.prefix(player, prefix_commands, string.concat("Your nickname was removed.")); } else { player.setNickName(player, nickname); msg.prefix(player, prefix_commands, string.concat("Your nickname was changed to ", nickname, "§r.")); } player.setTabName(player); player.setHeadName(player); goto("wait"); @iteminfo item = living.getHand(player); string = string.item(item); string = string.replace(string, "\"", "'"); msg(player, string.getClipBoardText(string, string)); item_type = string(item.getType(item)); msg(player, string.getClipBoardText(item_type, item_type)); goto("wait"); @perm if(size == 0) { @perm_syntax msg.prefix(player, prefix_perms, "/perm ..."); if(perm.has("perm.give", player)) { msg.string(player, "§6 - give "); } if(perm.has("perm.remove", player)) { msg.string(player, "§6 - remove "); } if(perm.has("perm.removeall", player)) { msg.string(player, "§6 - removeall "); } if(perm.has("perm.list", player)) { msg.string(player, "§6 - list "); } if(perm.has("perm.toggle", player)) { msg.string(player, "§6 - toggle"); } goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "give") { if(!perm.has("perm.give", player)) { perm.no("perm.give", player); goto("wait"); } if(size != 3) { msg.prefix(player, prefix_perms, "/perm give "); goto("wait"); } p_name = list.getIndex(args, 1); perm = list.getIndex(args, 2); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_perms, "This player has never been online."); goto("wait"); } if(!perm.isGroupName(perm)) { msg.prefix(player, prefix_perms, "This is not a permission group."); goto("wait"); } if(!perm.has("isOwner", player)) { if(perm == "owner") { msg.prefix(player, prefix_perms, "Only owners can give this permission group."); goto("wait"); } } if(!perm.has("isAdmin", player)) { if(perm == "admin" || perm == "mod") { msg.prefix(player, prefix_perms, "Only admins can give this permission group."); goto("wait"); } } p_uuid = player.getUuid(p_name); p_id = player.getId(p_uuid); p_name = player.getName(p_uuid); perm_id = perm.getIdFromGroupname(perm); if(player.hasPermGroup(p_id, perm_id)) { msg.prefix(player, prefix_perms, "Perm already added."); goto("wait"); } if(isOnline(p_name)) { p = read.player(p_name); rank = perm.getRankFromGroupname(perm); if(rank != null) { offerRank(p, rank.getTechName(rank)); } if(perm == "creative") { if(loc.isInCreativeWorld(entity.getLocation(p))) { player.setGamemode(p, "CREATIVE"); } } } perm.addGroupToPlayer(p_id, perm_id); msg.prefix(player, prefix_perms, string.concat("§rPerm §7", perm, "§r added to §7", p_name, "§r.")); goto("wait"); } if(arg0 == "remove") { if(!perm.has("perm.remove", player)) { perm.no("perm.remove", player); goto("wait"); } if(size != 3) { msg.prefix(player, prefix_perms, "/perm remove "); goto("wait"); } p_name = list.getIndex(args, 1); perm = list.getIndex(args, 2); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_perms, "This player has never been online."); goto("wait"); } if(!perm.isGroupName(perm)) { msg.prefix(player, prefix_perms, "This is not a permission group."); goto("wait"); } if(!perm.has("isOwner", player)) { if(perm == "owner") { msg.prefix(player, prefix_perms, "Only owners can remove this permission group."); goto("wait"); } } if(!perm.has("isAdmin", player)) { if(perm == "admin" || perm == "mod") { msg.prefix(player, prefix_perms, "Only admins can remove this permission group."); goto("wait"); } } p_uuid = player.getUuid(p_name); p_id = player.getId(p_uuid); p_name = player.getName(p_uuid); perm_id = perm.getIdFromGroupname(perm); if(!player.hasPermGroup(p_id, perm_id)) { msg.prefix(player, prefix_perms, "This player doesn´t have that perm."); goto("wait"); } perm.removeGroupFromPlayer(p_id, perm_id); msg.prefix(player, prefix_perms, string.concat("Perm §7", perm, "§r removed from §7", p_name, "§r.")); goto("wait"); } if(arg0 == "removeall") { if(!perm.has("perm.removeall", player)) { perm.no("perm.removeall", player); goto("wait"); } if(size != 2) { msg.prefix(player, prefix_perms, "/perm removeall "); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_perms, "This player has never been online."); goto("wait"); } p_id = player.getId(player.getUuid(p_name)); player.removeAllPerms(p_id); msg.prefix(player, prefix_perms, string.concat("All perms of §7", p_name, " §rwere removed.")); goto("wait"); } if(arg0 == "list") { if(!perm.has("perm.list", player)) { perm.no("perm.list", player); goto("wait"); } if(size != 2) { msg.prefix(player, prefix_perms, "/perm list "); goto("wait"); } p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_perms, "This player has never been online."); goto("wait"); } p_id = player.getId(player.getUuid(p_name)); permslist = player.getPerms(p_id); listsize = list.getSize(permslist); if(listsize == 0) { msg.prefix(player, prefix_perms, "No permissions found."); } else { msg.prefix(player, prefix_perms, p_name); for(i = 0; i < listsize; i++) { msg.string(player, string.concat(" - ", perm.getNameFromId(list.getIndex(permslist, i)))); } } goto("wait"); } if(arg0 == "toggle") { if(!perm.has("perm.toggle", player)) { perm.no("perm.toggle", player); goto("wait"); } if(perm.has("simuser", player)) { perm.initPlayer(player); msg.prefix(player, prefix_commands, "You have regained your permissions."); } else { perm.simUser(player); msg.prefix(player, prefix_commands, "Have fun as a user."); } goto("wait"); } goto("perm_syntax"); @allsounds if(size == 0) { msg.prefix(player, prefix_commands, "§r/allsounds..."); msg.string(player, "§e - start §rStart all sounds loop"); msg.string(player, "§e - stop §rStop all sounds loop"); msg.string(player, "§e - play §rPlay a sound"); msg.string(player, "§e - show [page] §rClick on a sound"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "start") { player_uuid = player.getUuid(player); if(map.contains(allsounds_indizes, player_uuid)) { msg.prefix(player, prefix_commands, "All sounds already started."); goto("wait"); } map.add(allsounds_indizes, player_uuid, 0); list.add(allsounds_uuids, player_uuid); list.add(allsounds_uuids_cross_check, player_uuid); msg.prefix(player, prefix_commands, "All sounds started."); goto("playallsounds"); } if(arg0 == "stop") { player_uuid = player.getUuid(player); if(!list.contains(allsounds_uuids_cross_check, player_uuid)) { msg.prefix(player, prefix_commands, "No sounds playing."); goto("wait"); } map.remove(allsounds_indizes, player_uuid); list.remove(allsounds_uuids_cross_check, player_uuid); msg.prefix(player, prefix_commands, "All sounds stopped."); goto("wait"); } if(arg0 == "play") { if(size != 2) { msg.prefix(player, prefix_perms, "/allsounds player "); goto("wait"); } sound_name = list.getIndex(args, 1); sound_name = string.replace(sound_name, "minecraft:", ""); sound_name = string.replace(sound_name, "[.]", "_"); sound_name = string.toUpperCase(sound_name); if(!list.contains(allsounds_list, sound_name)) { msg.prefix(sender, prefix_commands, "Not a known sound."); goto("wait"); } sound = sound.get(sound_name); sound.spawnForPlayer(player, sound, sound_category_master); goto("wait"); } if(arg0 == "show") { amount_sounds = list.getSize(allsounds_list); max_side = amount_sounds / 10; if(size == 1) { side = 1; print_side = side - 1; } else { side = list.getIndex(args, 1); if(!isDouble(side)) { msg.prefix(sender, prefix_commands, "/allsounds show [side]"); goto("wait"); } print_side = side - 1; if(print_side < 0 || print_side > max_side) { msg.prefix(sender, prefix_commands, string.concat("Possible: 1 - ", string.number(math.roundDown(max_side + 1)))); goto("wait"); } } msg.string(sender, string.concat("§a --- All Sounds ", string.number(side), " ---")); for(i = print_side * 10; i < print_side * 10 + 10; i++) { if(i < amount_sounds) { sound_name = list.getIndex(allsounds_list, i); msg(sender, string.getClickText(string.concat(" ", sound_name), string.concat("/allsounds play ", sound_name))); } } if(side == 1) { backward = text.new("§c<>Forward>>", string.concat("/allsounds show ", side + 1)); } elseif(side > max_side) { backward = string.getClickText("§b<>Forward>>"); } else { backward = string.getClickText("§b<>Forward>>", string.concat("/allsounds show ", side + 1)); } msg(sender, text.merge(backward, text.new(" "), forward)); goto("wait"); } goto("wait"); @playallsounds player_uuid = list.getIndex(allsounds_uuids, 0); list.removeIndex(allsounds_uuids, 0); if(!list.contains(allsounds_uuids_cross_check, player_uuid)) { goto("wait"); } player = player.get(player_uuid); if(player == null) { map.remove(allsounds_indizes, player_uuid); goto("wait"); } i = map.get(allsounds_indizes, player_uuid); if(i == list.getSize(allsounds_list)) { map.remove(allsounds_indizes, player_uuid); msg.prefix(player, prefix_commands, "All sounds finished."); goto("wait"); } sound_name = list.getIndex(allsounds_list, i); sound = sound.get(sound_name); sound.spawnForPlayer(player, sound, sound_category_master); msg.string(player, sound_name); map.add(allsounds_indizes, player_uuid, i + 1); list.add(allsounds_uuids, player_uuid); sgoto(100, "playallsounds"); goto("wait"); @weather if(size == 0) { @weather_syntax msg.prefix(player, "§eWeather", "/weather ..."); msg.string(player, "§e - clear [duration]"); msg.string(player, "§e - rain [duration]"); msg.string(player, "§e - thunder [duration]"); goto("wait"); } arg0 = string.toLowerCase(list.getIndex(args, 0)); if(arg0 == "clear" || arg0 == "rain" || arg0 == "thunder") { if(size == 2) { duration = list.getIndex(args, 1); if(!isDouble(duration)) { msg.prefix(player, prefix_commands, "Number expected."); goto("wait"); } if(duration < 0) { msg.prefix(player, prefix_commands, "Positive number expected."); goto("wait"); } } else { duration = 12000; } world = loc.getWorld(entity.getLocation(player)); if(arg0 == "clear") { if(size > 2) { msg.prefix(player, prefix_commands, "/weather clear [duration]"); goto("wait"); } world.clearWeather(world, duration); msg.prefix(player, prefix_commands, "Weather cleared."); goto("wait"); } if(arg0 == "rain") { if(size > 2) { msg.prefix(player, prefix_commands, "/weather rain [duration]"); goto("wait"); } world.setRain(world, duration); msg.prefix(player, prefix_commands, "Weather set to rain."); goto("wait"); } if(arg0 == "thunder") { if(size > 2) { msg.prefix(player, prefix_commands, "/weather thunder [duration]"); goto("wait"); } world.setThunder(world, duration); msg.prefix(player, prefix_commands, "Weather set to thunder."); goto("wait"); } goto("wait"); } goto("weather_syntax"); @time if(size == 0) { @time_syntax msg.prefix(player, "§eTime", "/time ..."); msg.string(player, "§e - set