waitfor(5); //Verhindert Endlos-Schleife durch "/start commands" setCommandHelps(); command.clear(); //Games command.add("hack"); 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"); //Vanilla überschreiben command.add("help"); command.add("butcher"); command.add("yeet"); 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("ass", "Armor Stand Signs"); command.register("back", "Teleports to the last position"); command.register("ban", "Bans a player"); command.register("boost", "Boosts you up to the clouds"); command.register("bug", "Report a bug"); command.register("clan", "Clan-Commands"); command.register("cli", "Clears items in a radius"); command.register("color", "Shows all colors"); command.register("coords", "Shows infos for the targeted block"); command.register("copyisland", "Copyisland-Commands"); command.register("databank", "Databank-Commands"); command.register("datatools", "Datatools-Commands"); command.register("enderchest", "Shows enderchests"); command.register("error", "Error-Logger"); command.register("errordebug", "Debug-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("giveup", "Giveup a quest"); command.register("grow", "Grow seeds"); command.register("hat", "Be fame with a new hat"); command.register("hawkeye", "Rollback griefings"); command.register("head", "Gives you a player's head"); command.register("heal", "Heals, fills hunger bar and remove effects"); command.register("home", "Manage your homes"); command.register("live", "Toggles Live-Mode"); command.register("lag", "Executes a lag test"); command.register("leave", "Leave a minigame"); 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("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("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("plant", "Plant seeds"); command.register("playtime", "Shows your playtime"); command.register("plot", "Plot-Commands"); command.register("plough", "Plough dirt around you"); 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("report", "Report whatever you want"); command.register("ride", "Rides an entity"); command.register("say", "[Server] chat message"); command.register("script", "Script-Commands"); 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("silentban", "Silently bans a player"); command.register("silentjoin", "Toggled Silentjoins"); command.register("silentkick", "Silently kicks a player"); command.register("skills", "Shows all skills"); command.register("spawn", "Teleports to spawn"); command.register("speed", "Sets your speed"); 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("story", "Teleports to story-spawn"); command.register("suicide", "Kill yourself"); command.register("teleport", "Teleports a player to a player"); command.register("tempban", "Bans a player temporarly"); command.register("tempfly", "Let a player temporarly fly"); command.register("ticket", "Ticket-Commands"); command.register("time", "Time-Commands"); command.register("tip", "Tip-Commands"); command.register("top", "Teleports to to highest point at the current position"); 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 rewars"); command.register("voxel", "Set radius for voxel"); command.register("warn", "Warns a player"); command.register("warp", "Warp-Commands"); command.register("weather", "Weather-Commands"); command.register("world", "World-Commands"); command.register("yeet", "Throws the Player"); command.registerAlias("afklo", "afk"); command.registerAlias("itemdb", "iteminfo"); command.registerAlias("ha", "hawkeye"); command.registerAlias("skull", "head"); command.registerAlias("skick", "silentkick"); command.registerAlias("sban", "silentban"); command.registerAlias("tell", "msg"); command.registerAlias("r", "answer"); command.registerAlias("pardon", "unban"); command.registerAlias("mimimi", "help"); command.registerAlias("ci", "copyisland"); command.registerAlias("mem", "memory"); command.registerAlias("tp", "teleport"); command.registerAlias("homes", "home"); command.registerAlias("colour", "color"); command.registerAlias("gm", "gamemode"); command.registerAlias("p", "plot"); command.registerAlias("coord", "coords"); command.registerAlias("dt", "datatools"); command.registerAlias("f", "friend"); command.registerAlias("l", "leave"); command.registerAlias("v", "vanish"); command.registerAlias("hub", "leave"); command.registerAlias("fuckit", "giveup"); command.registerAlias("ram", "memory"); 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("forge:chests"); sign_tag = block.getTag("minecraft:signs"); dirt_tag = block.getTag("forge:dirt"); gamesspawn = world.getGamesSpawn(); serverspawn = world.getServerSpawn(); prefix_clan = "§2Clan"; prefix_tips = "§eTips"; prefix_lock = "§eLock"; prefix_hawkeye = "§cHawkeye"; prefix_commands = "§6Commands"; 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"; 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 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 = set.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(10, "coordsloop"); sgoto(1200, "afk_checker_loop"); 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(); warninglist = list.new(); plotpos1 = map.new(); plotpos2 = map.new(); invseeids = set.new(); ride_set = set.new(); fields = set.new(); vanish_set = 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"); rank_array = array.new(25, 2); //Playtime rank_array[0, 0] = "rank.owner"; rank_array[0, 1] = "4Owner"; rank_array[1, 0] = "rank.admin"; rank_array[1, 1] = "cAdmin"; rank_array[2, 0] = "rank.moderator"; rank_array[2, 1] = "9Moderator"; rank_array[3, 0] = "rank.supporter"; rank_array[3, 1] = "bSupporter"; rank_array[4, 0] = "rank.dev"; rank_array[4, 1] = "5Developer"; rank_array[5, 0] = "rank.builder"; rank_array[5, 1] = "5Builder"; rank_array[6, 0] = "rank.vip"; rank_array[6, 1] = "dVIP"; rank_array[7, 0] = "rank.influencer"; rank_array[7, 1] = "dInfluencer"; rank_array[8, 0] = "rank.sponsor"; rank_array[8, 1] = "dSponsor"; rank_array[9, 0] = "rank.legend"; rank_array[9, 1] = "2Legend"; rank_array[10, 0] = "rank.pioneer"; rank_array[10, 1] = "2Pioneer"; rank_array[11, 0] = "rank.lord"; rank_array[11, 1] = "2Lord"; rank_array[12, 0] = "rank.altruist"; rank_array[12, 1] = "2Altruist"; rank_array[13, 0] = "major"; rank_array[13, 1] = "2Major"; rank_array[14, 0] = "rank.frequenter"; rank_array[14, 1] = "6Frequenter"; rank_array[15, 0] = "rank.explorer"; rank_array[15, 1] = "6Explorer"; rank_array[16, 0] = "rank.chief"; rank_array[16, 1] = "6Chief"; rank_array[17, 0] = "rank.friend"; rank_array[17, 1] = "6Friend"; rank_array[18, 0] = "rank.colonizer"; rank_array[18, 1] = "6Colonizer"; rank_array[19, 0] = "rank.newcomer"; rank_array[19, 1] = "eNewcomer"; rank_array[20, 0] = "rank.adventurer"; rank_array[20, 1] = "eAdventurer"; rank_array[21, 0] = "rank.commander"; rank_array[21, 1] = "eCommander"; rank_array[22, 0] = "rank.volunteer"; rank_array[22, 1] = "eVolunteer"; rank_array[23, 0] = "rank.settler"; rank_array[23, 1] = "eSettler"; rank_array[24, 0] = "rank.user"; rank_array[24, 1] = "3User"; setScriptVar("ranks", rank_array); month_array = array.new(12, 2); month.add(0, "Jan", 31); month.add(1, "Feb", 28); month.add(2, "Mar", 31); month.add(3, "Apr", 30); month.add(4, "May", 31); month.add(5, "Jun", 30); month.add(6, "Jul", 31); month.add(7, "Aug", 31); month.add(8, "Sep", 30); month.add(9, "Oct", 31); month.add(10, "Nov", 30); month.add(11, "Dec", 31); jailed_list = list.new(); ironbars = read.item("minecraft:iron_bars", 1, "§r"); jailmenu = inv.new("222222222"); 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"); inv.setItem(skip_night_inv, 0, read.item("km:check_green", 1, "§fYes")); inv.setItem(skip_night_inv, 1, read.item("km:gem_stone", 1, "§fI don't care")); inv.setItem(skip_night_inv, 2, read.item("km:cross_red", 1, "§fNo")); skip_night_inv_id = inv.getId(skip_night_inv); vote_inv = inv.new("222222222"); inv.setItem(vote_inv, 0, read.item("km:coin_gold", 1, "§fMoneyBooster", "Doubles incoming money for 5 minutes.", "Cost: 30 VP")); vote_inv_id = inv.getId(vote_inv); ha_tool = read.item("km:guild_block", 1, "§cHawkeye Tool", "Hawkeye Tool"); consoleCommands = set.new(); set.add(consoleCommands, "answer"); set.add(consoleCommands, "ban"); set.add(consoleCommands, "kick"); set.add(consoleCommands, "lastseen"); set.add(consoleCommands, "list"); set.add(consoleCommands, "msg"); set.add(consoleCommands, "say"); set.add(consoleCommands, "silentban"); set.add(consoleCommands, "silentkick"); set.add(consoleCommands, "start"); set.add(consoleCommands, "tempban"); set.add(consoleCommands, "tempfly"); set.add(consoleCommands, "unban"); databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS friends (player_id INT NOT NULL, friend_id INT NOT NULL, time BIGINT NOT NULL, PRIMARY KEY (player_id, friend_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);")); databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS logoutdata (player_id INT NOT NULL PRIMARY KEY, logouttime BIGINT, FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);")); databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS tipps (tipp_key VARCHAR(20) PRIMARY KEY, tipp_value VARCHAR(255));")); databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS plotranks (plot_id INT NOT NULL, player_id INT NOT NULL, rank VARCHAR(10), PRIMARY KEY (plot_id, player_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);")); databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS homes (player_id INT NOT NULL, name VARCHAR(20) NOT NULL, world_name VARCHAR(20) NOT NULL, x DOUBLE NOT NULL, y DOUBLE NOT NULL, z DOUBLE NOT NULL, yaw DOUBLE NOT NULL, pitch DOUBLE NOT NULL, PRIMARY KEY (player_id, name), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);")); 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.get("overworld")); plot.registerMoveEvents(world.get("the_nether")); plot.registerMoveEvents(world.get("the_end")); plot.registerMoveEvents(world.get("creative")); event.load("entity_click"); event.load("player_move"); event.load("inv_click"); event.load("inv_close"); event.load("function_key"); event.load("missing_perm"); event.load("missing_command"); event.load("custom_command"); event.load("block_click"); event.load("player_logout"); event.load("player_data_tick"); msg("dev", "§bCommands §rloaded."); @wait wait(); if(event == "custom_command") { //Permission-Check command = text.toLowerCase(command); command = map.getOrDefault(alias_map, command, command); size = list.getSize(args); if(player == null) { sender = "SERVER"; sender_name = "SERVER"; if(set.contains(consoleCommands, command)) { ignoreGoto(command); goto("wait"); } msg("SERVER", "Sorry. Not a console-command yet. Go and tell marvinius."); goto("wait"); } if(!perm.has(player, command)) { perm.no(player, command); goto("wait"); } sender = player; sender_name = player.getName(player); affectedname = player.getName(player); player_name = player.getName(player); affectedplayer = player; if(command != "leave") { if(player.isCommandBlocked(player)) { msg.prefix(player, prefix_commands, "§rThe most important rule in competition: Sabotage!"); goto("wait"); } } ignoreGoto(command); 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"); } world = loc.getWorld(entity.getLocation(player)); plot_id = plot.getPlotIdFromMoveId(id); plot = plot.getFromId(plot_id, world); if(plot == null) { goto("wait"); } if(plot.isCity(plot)) { color_code = "§c"; } else { color_code = "§e"; } title.reset(player); title.setSub(player, concat("You entered ", color_code, plot.getName(plot), ".")); title.send(player, ""); 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") { world_name = world.getName(loc.getWorld(entity.getLocation(player))); if(action == "right" && !word.isSurvName(world_name) && block.hasTag(beds_tag, block)) { cancel = true; goto("wait"); } if(perm.has(player, "plot.bypass")) { goto("wait"); } if(block.hasTag(chest_tag, block)) { sign_loc = loc.mod(block_loc, 0, 1, 0); if(isAWallSign(sign_loc) && isAdminShop(sign_loc)) { cancel = true; goto("wait"); } 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 = list.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) { msg.prefix(player, prefix_plot, "This chest is locked for you."); } } goto("wait"); } if(action == "right" && block.hasTag(sign_tag, block)) { line0 = block.getSign(block_loc, 0); if(line0 != "§3[§bFree Plot§3]") { goto("wait"); } price = text.convert(removeFormat(block.getSign(block_loc, 1))); if(!isDouble(price) || price < 0) { msg.prefix(player, prefix_plot, "Positive number expected."); goto("wait"); } p_id = text.convert(block.getSign(block_loc, 3)); if(!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, concat("You'll need §6", text.number(price), "§r snuvis for this.")); goto("wait"); } plot_list = plot.get(block_loc); iter = list.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 subMoney(player, price); addMoney(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, concat(player_name, "'s plot")); msg.prefix(player, prefix_plot, concat("Plot claimed. Spent §6", text.number(price), "§r snuvis.")); goto("wait"); } goto("wait"); } if(event == "missing_command") { if(player == null) { //--> Server player = "SERVER"; if(command_name == null) { msg.prefix(player, prefix_commands, concat("Missing Command")); goto("wait"); } } msg.prefix(player, prefix_commands, concat("No command ", command_name)); goto("wait"); } if(event == "player_logout") { map.remove(afk_checker_map, uuid); player.setAfk(player, false); list.remove(jailed_list, player.getUuid(player)); if(player.hasQuest2(player)) { script_id = quest.getFromPlayer(player); script = script.getFromId(script_id); if(script == null) { snuvi.debug("Player logged out with corrupt quest"); quest.removePlayer(player); //in case of corrupt quest goto("wait"); } setScriptVar("player", player); script.callEvent("quest_term", script); quest.term(script, player); } if(player.isInParty(player)) { party.kickPlayer(player, "logout"); } goto("wait"); } if(event == "missing_perm") { if(player == null) { //--> Server player = "SERVER"; if(command_name == null) { msg.prefix(player, prefix_commands, concat("Missing Perm")); goto("wait"); } } perm.no(player, command_name); goto("wait"); } if(event == "entity_click") { player_uuid = player.getUuid(player); if(set.contains(ride_set, player_uuid)) { set.remove(ride_set, player_uuid); entity.mount(player, entity); } goto("wait"); } if(event == "inv_click") { //inv see if(set.contains(invseeids, inv_id)) { //On inv_click in an invsee inventory split_list = text.split(" ", inv_name); p_name = list.getIndex(split_list, 2); p = read.player(p_name); if(p == null) { inv.close(player); msg.prefix(sender_name, prefix_commands, "This player is no longer online. Use /inv load and /inv save to overwrite an offline player's inventory."); goto("wait"); } //Transmit item player.removeItem(p, item); player.safeGiveItem(player, item); inv.setItem(inv, inv_slot, read.item("minecraft:air")); inv.update(player); 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 < 30) { msg.prefix(player, prefix_commands, "Not enough vote points."); goto("wait"); } player.setVotePoints(player, vp - 30); msg("online", "§6§k#§rMoneyBooster activated!!!§6§k#"); money.setBoostFactor(2); sgoto(6000, "resetMoneyBoost"); } 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"); } set.add(skip_night_set, player_uuid); if(!skip_night_started) { world.addTimedStatus(world, 49, 600, "Skip night?"); sendMessageToWorld(world, "[§6Commands§r] Skip night? Vote within 15 seconds."); 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 == 0) { skip_night_yes++; inv.close(player); goto("wait"); } if(inv_slot == 1) { skip_night_no_care++; inv.close(player); goto("wait"); } if(inv_slot == 2) { skip_night_no++; inv.close(player); goto("wait"); } goto("wait"); } if(inv_name == "Skills") { if(item.getType(item) == "minecraft:air") { goto("wait"); } skill_name = removeFormat(item.getName(item)); tech_name = skill.getTechName(skill_name); //Toggle skill if(skill.isToggleable(skill_name)) { if(skill.isActivated(player, tech_name)) { skill.setActivated(player, tech_name, false); } else { skill.setActivated(player, tech_name, true); } inv.setItem(inv, inv_slot, skill.getShopItem(player, tech_name)); inv.update(player); goto("wait"); } //Activate skill if(skill.isActive(skill_name)) { player_loc = entity.getLocation(player); world_name = world.getName(loc.getWorld(player_loc)); if(!word.isSurvName(world_name)) { msg.prefix(player, prefix_skill, "You can't use this in this world."); goto("wait"); } if(tech_name == "skill.timber") { duration = data.getTimer(player, "timber"); if(duration > 0) { msg.prefix(player, prefix_skill, "Skill already active."); goto("wait"); } amount = skill.getAmount(player, "skill.timber"); if(amount > 0) { status.addTimed(player, 50, 1200, "Timber"); data.setTimer(player, "timber", 1200); new_amount = amount - 1; skill.setAmount(player, "skill.timber", new_amount); msg.prefix(player, prefix_skill, concat("Used Timber. New amount: ", text.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, concat("Used Fly 10min. New amount: ", text.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, concat("Used Grow. New amount: ", text.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, concat("Used Haste. New amount: ", text.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, concat("Used Speed. New amount: ", text.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, concat("Used Jump Boost. New amount: ", text.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, concat("Used Dolphin. New amount: ", text.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, concat("Used Block Up. New amount: ", text.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, concat("Used Block Down. New amount: ", text.number(new_amount))); } goto("wait"); } } goto("wait"); } if(inv_name == "§8Settings") { if(inv_slot == 0) { new_value = !player.getAutoCloseDoor(player); player.setAutoCloseDoor(player, new_value); inv.setItem(inv, inv_slot, read.item("minecraft:oak_door", 1, "§fAutomatic Doors", new_value)); } elseif(inv_slot == 1) { new_value = !player.doesAcceptTpaRequests(player); player.acceptTpaRequests(player, new_value); inv.setItem(inv, inv_slot, read.item("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", new_value)); } elseif(inv_slot == 2) { new_value = !showCoords.get(player); showCoords.set(player, new_value); inv.setItem(inv, inv_slot, read.item("minecraft:compass", 1, "§fShow Coords", new_value)); if(!new_value) { display.remove(player, 30); } } elseif(inv_slot == 3) { new_value = !player.hasSittingActivated(player); player.activateSitting(player, new_value); inv.setItem(inv, inv_slot, read.item("minecraft:oak_stairs", 1, "§fStair-Sitting", new_value)); } elseif(inv_slot == 4) { new_value = !hasPvpOn(player); setPvp(player, new_value); inv.setItem(inv, inv_slot, read.item("minecraft:iron_sword", 1, "§fPvP", new_value)); } elseif(inv_slot == 5) { new_value = !player.getNoPetDamage(player); player.setNoPetDamage(player, new_value); inv.setItem(inv, inv_slot, read.item("minecraft:bone", 1, "§fNo Pet Damage", new_value)); } inv.update(player); } goto("wait"); } if(event == "inv_close") { if(set.contains(invseeids, inv_id)) { set.remove(invseeids, inv_id); } goto("wait"); } if(event == "function_key") { if(player.hasMinigame(player)) { goto("wait"); } if(key == 1) { inv = inv.new("333333333"); inv.setItem(inv, 0, read.item("minecraft:oak_door", 1, "§fAutomatic Doors", player.getAutoCloseDoor(player))); inv.setItem(inv, 1, read.item("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", player.doesAcceptTpaRequests(player))); inv.setItem(inv, 2, read.item("minecraft:compass", 1, "§fShow Coords", showCoords.get(player))); inv.setItem(inv, 3, read.item("minecraft:oak_stairs", 1, "§fStair-Sitting", player.hasSittingActivated(player))); inv.setItem(inv, 4, read.item("minecraft:iron_sword", 1, "§fPvP", hasPvpOn(player))); inv.setItem(inv, 5, read.item("minecraft:bone", 1, "§fNo Pet Damage", player.getNoPetDamage(player))); inv.open(inv, player, "§8Settings"); goto("wait"); } if(key == 2) { player_loc = entity.getLocation(player); world_name = world.getName(loc.getWorld(player_loc)); if(word.isSurvName(world_name) || world_name == "story") { skill.showAll(player); } goto("wait"); } if(key == 3) { player_loc = entity.getLocation(player); world_name = world.getName(loc.getWorld(player_loc)); if(!word.isSurvName(world_name)) { 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"); } 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, "Skip Night?"); goto("wait"); } goto("wait"); } if(event == "player_data_tick") { if(var == "fly") { tpBottom(player); player.setFly(player, false); } } goto("wait"); @hack msg.prefix(player, prefix_commands, "Your pc got hacked now."); goto("wait"); @resetMoneyBoost money.setBoostFactor(1); goto("wait"); @skip_night_loop skip_night_counter--; if(skip_night_counter == 0) { world = world.getOverWorld(); sendMessageToWorld(world, "[§6Commands§r] Skip night results:"); sendMessageToWorld(world, concat("§e - §rYes: §e", text.number(skip_night_yes))); sendMessageToWorld(world, concat("§e - §rNo: §e", text.number(skip_night_no))); sendMessageToWorld(world, concat("§e - §rI don't care: §e", text.number(skip_night_no_care))); if(skip_night_yes > skip_night_no) { world.setTime(world, 0); } set.clear(skip_night_set); last_skip_night = time.getMillis(); sgoto(8400, "reset_skip_night"); } sgoto(20, "skip_night_loop"); goto("wait"); @reset_skip_night skip_night_started = false; goto("wait"); @skills skill.showAll(player); goto("wait"); @infopoint1 msg(player, getSpacer()); msg.prefix(player, "§eSurvival", "§aEnjoy our modded survival feeling. New ores, items and displays, and we are still beginner friendly."); goto("wait"); @infopoint2 msg(player, 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(player, 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(player, 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(player, getSpacer()); msg.prefix(player, "§eCities", "§aAs a clan leader you can raise your plots to big cities. Create sub-plots and sell them to other players."); goto("wait"); @infopoint6 msg(player, 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(player, getSpacer()); msg.prefix(player, "§eMinigames", "§aWe offer a range of different single- and multiplayer games."); goto("wait"); @infopoint8 msg(player, getSpacer()); msg.prefix(player, "§eQuests", "§aYou are nice and helpful? There are lots of tasks to do in the villages."); goto("wait"); @infopoint9 msg(player, 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(player, getSpacer()); msg.prefix(player, "§eRules", "§aThere is at least one rule: Be respectful. Look at our fake rules."); goto("wait"); @infopoint11 msg(player, getSpacer()); msg.prefix(player, "§eNote", "§aEverything is self-coded. Worldedit is the only external mod we use."); goto("wait"); @party if(size == 0) { @partyhelp msg.prefix(player, prefix_party, "§r/party ..."); msg(player, "§5 - invite §rInvite a player"); msg(player, "§5 - accept §rAccept an invitation"); msg(player, "§5 - deny §rDeny an invitation"); msg(player, "§5 - kick §rKick a player"); msg(player, "§5 - leave §rLeave the party"); msg(player, "§5 - promote §rPromote a player"); msg(player, "§5 - demote §rDemote a player"); msg(player, "§5 - disband §rDisband a party"); msg(player, "§5 - list §rParty information"); msg(player, "§5 - §rSends a party message"); goto("wait"); } arg0 = text.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)); table = table.new("§5", 13, 7); msg(player, table.getStart(table)); msg(player, table.get(table, "§lName", "§lRole")); msg(player, table.getMiddle(table)); iter = list.iterator(list); while(hasNext(iter)) { p = player.get(next(iter)); msg(player, table.get(table, player.getName(p), player.getPartyRank(p))); } msg(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, "§rDu darfst diesen Spieler nicht kicken"); goto("wait"); } } party.kickPlayer(p, "kick"); } goto("wait"); } if(arg0 == "promote" || arg0 == "demote") { if(size != 2) { msg.prefix(player, prefix_party, 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, concat("§r", pname, " is now Moderator.")); } elseif(rank == "Moderator") { player.setPartyRank(p, "Leader"); player.setPartyRank(player, "Moderator"); //Ex-Leader degradieren party.sendMessage(partyid, concat("§r", pname, " is now Leader.")); } } elseif(arg0 == "demote") { if(rank == "Moderator") { player.setPartyRank(p, "Player"); party.sendMessage(partyid, 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 { p_name = list.getIndex(args, 1); 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, concat("§r", player_name, " 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, concat("§r", player_name, " has denied your invitation.")); } msg.prefix(player, prefix_party, concat("Invitation from ", pname, " denied.")); } } goto("wait"); } if(player.isInParty(player)) { message = concat(player.getName(player), " §1| §r", text.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, "§r/setmessage ..."); msg(player, "§e- join §rSets your joinmessage"); msg(player, "§e- leave §rSets your leavemessage"); msg(player, "§e- info §rShows you set messages"); if(perm.has(player, "setmessage.delete")) { msg(player, "§e- delete §rDeletes a players messages"); } goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "info") { fullname = player.getFullName(player); message = text.convert(player.getJoinMessage(player)); if(message == null) { msg.prefix(player, prefix_commands, "No join message set."); } else { msg.prefix(player, prefix_commands, concat("§a§l> §r", fullname, " §9", message)); } message = text.convert(player.getLeaveMessage(player)); if(message == null) { msg.prefix(player, prefix_commands, "No leave message set."); } else { msg.prefix(player, prefix_commands, concat("§c§l> §r", fullname, " §9", message)); } goto("wait"); } if(arg0 == "join") { if(size < 2) { goto("setmessagehelp"); } message = text.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 = text.concatList(args, " ", 1, size - 1); player.setLeaveMessage(player, message); msg.prefix(player, prefix_commands, "Leave-Message set."); goto("wait"); } if(arg0 == "delete") { if(size == 1) { p_uuid = player.getUuid(player); } elseif(size == 2) { if(!perm.has(player, "setmessage.delete")) { perm.no(player, "setmessage.delete"); 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) / 5000 * 20, 2); //Umwandlung 5000ms -> 1s -> 20ticks p = player.get(p_uuid); if(p != null) { msg.prefix(p, prefix_commands, "Expected: 20 ticks/sec"); msg.prefix(p, prefix_commands, concat("Measured: ", t, " ticks/sec")); } 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 location = player.getTarget(player, 50, true, true); if(block.getType(location) == "minecraft:air") { msg.prefix(player, prefix_commands, "No block in sight."); goto("wait"); } entity.spawn("minecraft:lightning_bolt", location); goto("wait"); @ride world_name = world.getName(loc.getWorld(entity.getLocation(player))); if(world.isGamesName(world_name)) { if(player.hasMinigame(affectedplayer) || (perm.has(affectedplayer, "ride") && !perm.has(affectedplayer, "isTeam"))) { if(size == 2) { msg.prefix(player, prefix_commands, "This player can't use this now."); } else { msg.prefix(player, prefix_commands, "You can't use this now."); } goto("wait"); } } player_uuid = player.getUuid(player); if(set.contains(ride_set, player_uuid)) { msg.prefix(player, prefix_commands, "Entity-Ride-Click removed."); set.remove(ride_set, player_uuid); } else { msg.prefix(player, prefix_commands, "Click an entity to ride it."); set.add(ride_set, player_uuid); } goto("wait"); @vanish //vanish [on/off] [player] if(size == 0) { if(set.contains(vanish_set, player.getUuid(affectedplayer))) { bool = "off"; } else { bool = "on"; } } if(size >= 1) { bool = list.getIndex(args, 0); } if(size == 2) { affectedname = list.getIndex(args, 1); affectedplayer = read.player(affectedname); affectedname = player.getName(affectedplayer); if(affectedplayer == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } if(bool == "on") { if(affectedname != player_name) { msg.prefix(player, prefix_commands, concat(affectedname, " has been vanished.")); msg.prefix(affectedplayer, prefix_commands, concat("You have been vanished by ", player_name, ".")); } else { msg.prefix(affectedplayer, prefix_commands, "You are vanished."); } set.add(vanish_set, player.getUuid(affectedplayer)); player.hide(affectedplayer); } elseif(bool == "off") { if(affectedname != player_name) { msg.prefix(player, prefix_commands, concat(affectedname, " is no longer vanished.")); msg.prefix(affectedplayer, prefix_commands, concat("You are no longer vanished caused by ", player_name, ".")); } else { msg.prefix(affectedplayer, prefix_commands, "You are no longer vanished."); } set.remove(vanish_set, player.getUuid(affectedplayer)); player.show(affectedplayer); } else { msg.prefix(player, prefix_commands, "§r/vanish [on/off] [player]"); } goto("wait"); @user if(size == 0) { p_name = player.getName(player); p_uuid = player.getUuid(p_name); } else { if(!perm.has(player, "user.other")) { perm.no(player, "user.other"); 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_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", 6, 24); msg(player, table.getStart(table)); msg(player, table.get(table, "Player", p_name)); msg(player, table.getMiddle(table)); msg(player, table.get(table, "Playtime", text.number(math.roundDown(player.getTotalPlaytime(p_or_id) / 60)))); msg(player, table.get(table, "Joins", text.number(player.getJoins(p_or_id)))); msg(player, table.get(table, "First Join", getDateString(player.getFirstJoin(p_or_id)))); msg(player, table.get(table, "Last Join", getDateString(player.getLastJoin(p_or_id)))); msg(player, table.get(table, "UUID", p_uuid)); msg(player, table.get(table, "ID", text.number(p_id))); msg(player, table.get(table, "Rank", getRank(p_or_id))); msg(player, table.get(table, "PvP", hasPvpOn(p_or_id))); msg(player, table.get(table, "Quests", text.number(quest.getCounter(p_or_id)))); msg(player, table.get(table, "Money", text.number(getMoney(p_or_id)))); msg(player, table.getEnd(table)); goto("wait"); @quest if(size == 0) { @quest_syntax msg.prefix(player, prefix_quest, "§r/quest ..."); msg(player, "§5 - term §rTerminates a player's quest"); goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "term") { if(size != 2) { msg.prefix(player, prefix_quest, "§r/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); script.callEvent("quest_term", script); quest.term(script, player); msg.prefix(player, prefix_quest, "Player's quest terminated."); goto("wait"); } goto("quest_syntax"); @friend if(size == 0) { @friend_syntax msg.prefix(player, prefix_friends, "§r/friend ..."); msg(player, "§5 - add §rAdds a friend"); msg(player, "§5 - remove §rRemoves a friend"); msg(player, "§5 - list §rLists all your friends"); goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "add") { if(size != 2) { msg.prefix(player, prefix_friends, "§r/friend add "); goto("wait"); } friend_name = list.getIndex(args, 1); 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, concat("§7", friend_name, "§r is your friend now.")); msg.send(player, friend_name, prefix_friends, 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, concat("You sent an invitation to §7", friend_name, "§r.")); msg.send(player, friend_name, prefix_friends, concat("§7", player_name, "§r wants to be your friend."), true); if(friend != null) { msg(friend, text.click("§r[§aAccept§r]", concat("/friend add ", player_name))); } goto("wait"); } if(arg0 == "remove") { if(size != 2) { msg.prefix(player, prefix_friends, "§r/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, concat("§7", friend_name, "§r is no longer your friend.")); msg.send(player, friend_name, prefix_friends, concat("§7", player_name, "§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(player, "§5Friends:"); for(i = 0; i <= listsize - 1; i++) { msg(player, "§r- ", list.getIndex(friendlist, i)); } goto("wait"); } goto("friend_syntax"); @var if(size != 2) { msg.prefix(player, prefix_commands, "§r/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", concat(var_name, " = ", var)); goto("wait"); //@vote //inv.open(vote_inv, player, concat("Your vote points: §6", text.number(player.getVotePoints(player)))); //goto("wait"); @voxel if(size < 1) { @voxelhelp msg.prefix(player, prefix_commands, "/voxel "); msg.prefix(player, prefix_commands, "/voxel block"); goto("wait"); } arg0 = list.getIndex(args, 0); if(isDouble(arg0)) { radius = arg0; if(radius < 1) { radius = 1; } if(radius > 5) { radius = 5; } script = script.get("Voxel"); map = script.getVar(script, "radius_per_player"); map.add(map, player.getUuid(player), radius); script.setVar(script, "radius_per_player", map); msg.prefix(player, prefix_commands, concat("Set radius to ", text.number(radius), ".")); goto("wait"); } if(arg0 == "block") { item = living.getEquip(player, "hand"); item_type = item.getType(item); if(item_type == "minecraft:air") { msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand."); goto("wait"); } state = block.newState(item_type); script = script.get("Voxel"); map = script.getVar(script, "state_per_player"); map.add(map, player.getUuid(player), state); script.setVar(script, "state_per_player", map); msg.prefix(player, prefix_commands, concat("Set block to ", item_type, ".")); goto("wait"); } goto("voxelhelp"); @setservermessage if(size < 1) { msg.prefix(player, prefix_commands, "/setservermessage "); goto("wait"); } message = text.concatList(args, " ", 0, size - 1); message = text.replace(message, "&", "§"); setMOTD(message); msg.prefix(player, prefix_commands, "Server-Message gesetzt"); goto("wait"); @error if(size < 1) { msg.prefix(player, "§cError", "§r/error ..."); msg(player, "§c - list §rLists all errors"); msg(player, "§c - clear §rDeletes all errors"); goto("wait"); } arg0 = text.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(player, error.getIndex(i)); } goto("wait"); } if(arg0 == "clear") { error.clear(); msg.prefix(player, "§cError", "All errors deleted."); goto("wait"); } goto("wait"); @errordebug if(size < 1) { msg.prefix(player, "§cErrorDebugs", "§r/errordebug ..."); msg(player, "§c - list §rLists all errordebugs"); msg(player, "§c - clear §rDeletes all errordebugs"); msg(player, "§c - toggle §rToggles errordebugs"); goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "list") { error_size = debug.getSize(); if(error_size == 0) { msg.prefix(player, "§cErrorDebugs", "No errordebugs existing."); goto("wait"); } for(i = 0; i < error_size; i++) { msg(player, debug.getIndex(i)); } goto("wait"); } if(arg0 == "clear") { debug.clear(); msg.prefix(player, "§cErrorDebugs", "All errordebugs deleted."); goto("wait"); } if(arg0 == "toggle") { new_value = !perm.has(player, "script.debug"); player.showDebug(player, new_value); if(new_value) { msg.prefix(player, prefix_commands, "Debug messages are now shown."); } else { msg.prefix(player, prefix_commands, "Debug messages are now hidden."); } goto("wait"); } goto("wait"); @hat item = living.getEquip(player, "hand"); if(item.getType(item) == "minecraft:air") { msg.prefix(player, prefix_commands, "You have to hold an item in hand."); goto("wait"); } living.setEquip(player, "head", item); living.setEquip(player, "hand", read.item("minecraft:air")); goto("wait"); @hawkeye if(size == 0) { @partyhelp msg.prefix(player, prefix_party, "§r/hawkeye ..."); msg(player, "§5 - search §rSearch for griefs"); msg(player, "§5 - rollback §rRollback last search"); msg(player, "§5 - undo §rUndos your last rollback"); msg(player, "§5 - tool §rGives you the Hawkeye Tool"); msg(player, ""); msg(player, "§5 - Parameters:"); msg(player, "§5 - e:"); msg(player, "§5 - p:"); msg(player, "§5 - r:"); msg(player, "§5 - t: e.g. \"5d,4h,20m\""); goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "tool") { player.giveItem(player, ha_tool); goto("wait"); } if(arg0 == "print") { side = list.getIndex(args, 1); if(!isDouble(side)) { msg.prefix(player, prefix_commands, "Number expected."); goto("wait"); } if(side < 1) { msg.prefix(player, prefix_commands, "Positive number expected."); goto("wait"); } list = hawkeye.getDataList(player); if(list == null) { goto("wait"); } if(side > list.getSize(list)) { msg.prefix(player, prefix_commands, "Invalid number."); goto("wait"); } hawkeye.print(player, list, side); goto("wait"); } if(arg0 == "search") { if(size < 2) { msg.prefix(player, prefix_commands, "/hawkeye search "); goto("wait"); } a = hawkeye.processInput(args, player); if(text.class(a) == "String") { msg.prefix(player, prefix_hawkeye, a); goto("wait"); } timeFrom = a[0]; timeTo = a[1]; player_loc = a[2]; radius = a[3]; events = a[4]; players = a[5]; l = hawkeye.getData(timeFrom, timeTo, player_loc, radius, events, players, "DESC"); if(text.class(l) == "String") { msg.prefix(player, prefix_hawkeye, l); hawkeye.setDataList(player, list.new()); goto("wait"); } if(list.getSize(l) == 0) { msg.prefix(player, prefix_hawkeye, "No results found."); hawkeye.setDataList(player, list.new()); goto("wait"); } hawkeye.setDataList(player, l); hawkeye.print(player, l, 1); goto("wait"); } if(arg0 == "rollback") { l = hawkeye.getDataList(player); if(l == null) { msg.prefix(player, prefix_hawkeye, "No results to rollback."); goto("wait"); } if(list.getSize(l) == 0) { msg.prefix(player, prefix_hawkeye, "No results to rollback."); goto("wait"); } if(list.getSize(l) >= 1000) { msg.prefix(player, prefix_hawkeye, "Limit (1000) reached. Edit search parameters."); goto("wait"); } counter = hawkeye.rollback(l); hawkeye.setUndoList(player, l); msg.prefix(player, prefix_hawkeye, concat(text.number(counter), " blocks rollbacked.")); goto("wait"); } if(arg0 == "undo") { l = hawkeye.getUndoList(player); if(l == null) { msg.prefix(player, prefix_hawkeye, "No rollback to undo."); goto("wait"); } if(list.getSize(l) == 0) { msg.prefix(player, prefix_hawkeye, "No rollback to undo."); goto("wait"); } hawkeye.undo(l); hawkeye.setUndoList(player, list.new()); msg.prefix(player, prefix_hawkeye, "Undo done."); goto("wait"); } goto("wait"); @news if(size < 1) { msg.prefix(player, prefix_commands, "/news "); goto("wait"); } message = text.concatList(args, " ", 0, size - 1); online_list = players.toList(); for(i = 0; i < list.getSize(online_list); i++) { p = list.getIndex(online_list, i); title.reset(p); title.setSub(p, concat("by ", player_name)); title.send(p, "§cNews"); msg.prefix(p, "§4News", concat("§c", message)); } goto("wait"); @spawn if(size == 1) { if(!perm.has(player, "teleport.other")) { perm.no(player, "teleport.other"); goto("wait"); } affectedname = list.getIndex(args, 0); affectedplayer = read.player(affectedname); if(affectedplayer == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } if(player.hasMinigame(affectedplayer)) { if(size == 1) { msg.prefix(player, prefix_commands, "§rThe player can't be teleported now."); } else { msg.prefix(player, prefix_commands, "§rYou can't teleport now."); } goto("wait"); } if(player.teleport(affectedplayer, serverspawn, true)) { if(player == affectedplayer) { msg.prefix(affectedplayer, prefix_commands, "You have been teleported to the spawn."); } else { affectedname = player.getName(affectedplayer); msg.prefix(player, prefix_commands, concat(affectedname, " was teleported to the spawn.")); } } goto("wait"); @rank msg(player, getSpacer()); rank = getRank(player); msg(player, concat("§6Current rank: §r[", rank, "§r]")); msg(player, "Choose a rank:"); rank.showAll(player); goto("wait"); @setrank if(size < 2) { msg.prefix(player, prefix_commands, "§r/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 = text.concatList(args, " ", 1, size - 1); if(!perm.has(player, "setrank.other")) { if(player.getName(player) != p_name) { perm.no(player, "setrank.other"); goto("wait"); } colored = text.startsWith(rank, "&", 0); if(colored) { rank = text.subString(rank, 1, text.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(p, tech_name); goto("wait"); } } if(colored) { rank = concat("&", rank); } } if(text.length(rank) >= 30) { msg.prefix(player, prefix_commands, "Only 30 letters allowed."); goto("wait"); } rank = text.replace(rank, "&", "§"); setRank(p, rank); player.setTabName(p); msg.prefix(player, prefix_commands, 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 nickname = player.getNickname(player); if(player.isAfk(player)) { msg.prefix("online", prefix_commands, concat(nickname, "§7 is back.")); player.setAfk(player, false); } else { msg.prefix("online", prefix_commands, 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"); @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"); @coordsloop list = players.toList(); size = list.getSize(list); for(i = 0; i < size; i++) { p = list.getIndex(list, i); if(showcoords.get(p)) { p_loc = entity.getLocation(p); display.add(p, 30, concat("§6X§r ", text.number(loc.getCoord(p_loc, "bx")), " §6Y§r ", text.number(loc.getCoord(p_loc, "by")), " §6Z§r ", text.number(loc.getCoord(p_loc, "bz")))); } } sgoto(10, "coordsloop"); 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, 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"); @afk_checker_loop online_list = players.toList(); iter = list.iterator(online_list); while(hasNext(iter)) { uuid = next(iter); p = player.get(uuid); 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 == 3) { nickname = player.getNickname(p); if(player.isAfk(p)) { continue; } msg.prefix("online", prefix_commands, 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"); @pvp if(size == 0) { if(hasPvpOn(player)) { mode = "off"; } else { mode = "on"; } } elseif(size == 1) { mode = list.getIndex(args, 0); if(!(mode == "on" || mode == "off")) { goto("pvphelp"); } } elseif(size == 2) { if(!perm.has(player, "pvp.other")) { perm.no(player, "pvp.other"); goto("wait"); } mode = list.getIndex(args, 0); if(!(mode == "on" || mode == "off")) { goto("pvphelp"); } affectedname = list.getIndex(args, 1); if(!checkIfEverOnline(affectedname)) { msg.prefix(player, prefix_commands, "This player has never been online."); goto("wait"); } affectedplayer = read.player(affectedname); if(affectedplayer == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } else { @pvphelp if(perm.has(player, "pvp.other")) { msg.prefix(player, prefix_commands, "§r/pvp [on/off] [player]"); } else { msg.prefix(player, prefix_commands, "§r/pvp [on/off]"); } goto("wait"); } if(mode == "on") { setPvp(affectedplayer, true); msg.prefix(affectedplayer, prefix_commands, "You have enabled PvP!"); if(affectedplayer != player) { affectedname = player.getName(affectedplayer); msg.prefix(player, prefix_commands, concat(affectedname, " has now enabled PvP!")); } } else { setPvp(affectedplayer, false); msg.prefix(affectedplayer, prefix_commands, "You have PvP disabled!"); if(affectedplayer != player) { affectedname = player.getName(affectedplayer); msg.prefix(player, prefix_commands, concat(affectedname, " has now disabled PvP!")); } } goto("wait"); @suicide if(size < 0 || size > 1) { msg.prefix(player, prefix_commands, "§r/suicide [player]"); goto("wait"); } if(size == 1) { if(!perm.has(player, "kill.other")) { perm.no(player, "kill.other"); goto("wait"); } affectedname = list.getIndex(args, 0); affectedplayer = read.player(affectedname); if(affectedplayer == null) { msg.prefix(player, prefix_commands, "This player is not online."); goto("wait"); } } if(affectedplayer != player) { affectedname = player.getName(affectedplayer); msg.prefix(player, prefix_commands, concat(affectedname, " has been killed.")); msg.prefix(affectedplayer, prefix_commands, concat("You have been killed by ", player_name, ".")); } else { msg.prefix(affectedplayer, prefix_commands, "You killed yourself."); } living.damage(affectedplayer, 1000); goto("wait"); @nickname if(size < 1) { msg.prefix(player, "§eNickname", "§r/nickname ..."); msg(player, "§e - ", "Sets a nickname"); msg(player, "§e - remove ", "Removes a nickname"); goto("wait"); } nickname = text.replace(text.concatList(args, " ", 0, size - 1), "&", "§"); if(nickname == "remove") { player.removeNickName(player); msg.prefix(player, prefix_commands, concat("§rYour nickname was removed.")); } else { player.setNickName(player, nickname); msg.prefix(player, prefix_commands, concat("§rYour nickname was changed to ", nickname, "§r.")); } player.setTabName(player); goto("wait"); @iteminfo item = living.getEquip(player, "hand"); text = text.item(item); text = text.replace(text, "\"", "\\\""); msg(player, text.clipBoard(text, text)); goto("wait"); @perm if(size == 0) { @perm_syntax msg.prefix(player, prefix_perms, "§r/perm ..."); if(perm.has(player, "perm.give")) { msg(player, "§6 - give "); } if(perm.has(player, "perm.remove")) { msg(player, "§6 - remove "); } if(perm.has(player, "perm.removeall")) { msg(player, "§6 - removeall "); } if(perm.has(player, "perm.list")) { msg(player, "§6 - list "); } if(perm.has(player, "perm.toggle")) { msg(player, "§6 - toggle"); } goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "give") { if(!perm.has(player, "perm.give")) { perm.no(player, "perm.give"); goto("wait"); } if(size != 3) { msg.prefix(player, prefix_perms, "/perm give "); } else { 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(player, "isAdmin")) { if(perm == "admin" || perm == "mod" || perm == "bypass") { 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)); } } givePerm(p_id, perm_id); msg.prefix(player, prefix_perms, concat("§rPerm §7", perm, "§r added to §7", p_name, "§r.")); } goto("wait"); } if(arg0 == "remove") { if(!perm.has(player, "perm.remove")) { perm.no(player, "perm.remove"); goto("wait"); } if(size != 3) { msg.prefix(player, prefix_perms, "/perm remove "); } else { 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(player, "isAdmin")) { if(perm == "admin" || perm == "mod" || perm == "bypass") { 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); //Wenn marvinius eine Permission entfernt wird, wird dies blockiert, ausgenommen er tut dies selbst player_id = player.getId(player); if(player_id != 2) { if(p_id == 2) { msg(player, "§cSorry §b¯\\_(ツ)_/¯"); goto("wait"); } } 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"); } removePerm(p_id, perm_id); msg.prefix(player, prefix_perms, concat("Perm §7", perm, "§r removed from §7", p_name, "§r.")); } goto("wait"); } if(arg0 == "removeall") { if(!perm.has(player, "perm.removeall")) { perm.no(player, "perm.removeall"); goto("wait"); } if(size != 2) { msg.prefix(player, prefix_perms, "/perm removeall "); } else { p_name = list.getIndex(args, 1); if(!checkIfEverOnline(p_name)) { msg.prefix(player, prefix_perms, "This player has never been online."); goto("wait"); } //Wenn marvinius Permissions entfernt werden, wird dies blockiert, ausgenommen er tut dies selbst p_id = player.getId(player.getUuid(p_name)); player_id = player.getId(player); if(player_id != 2) { if(p_id == 2) { msg(player, "§cSorry §b¯\\_(ツ)_/¯"); goto("wait"); } } removeAllPerms(p_id); msg.prefix(player, prefix_perms, concat("§r All perms of §7", p_name, " §rwere removed")); } goto("wait"); } if(arg0 == "list") { if(!perm.has(player, "perm.list")) { perm.no(player, "perm.list"); goto("wait"); } if(size != 2) { msg.prefix(player, prefix_perms, "/perm list "); } else { 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 = getPermsFromPlayer(p_id); listsize = list.getSize(permslist); if(listsize == 0) { msg.prefix(player, prefix_perms, "§rKeine Permissions vorhanden"); } else { msg.prefix(player, prefix_perms, p_name); for(i = 0; i < listsize; i++) { msg(player, " - ", perm.getNameFromId(list.getIndex(permslist, i))); } } } goto("wait"); } if(arg0 == "toggle") { if(!perm.has(player, "perm.toggle")) { perm.no(player, "perm.toggle"); goto("wait"); } player_id = player.getId(player); if(perm.has(player, "pseudoPerm")) { reloadAllPerms(player_id); msg.prefix(player, prefix_commands, "You have regained your permissions."); } else { removeAllPermsTemporarly(player_id); 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(player, "§e - start"); msg(player, "§e - stop"); goto("wait"); } arg0 = text.toLowerCase(list.getIndex(args, 0)); if(arg0 == "start") { if(!map.exists(sounds_map)) { sounds_map = map.new(); } player_uuid = player.getUuid(player); script_id = map.get(sounds_map, player_uuid); if(script_id != null) { script = script.getFromId(script_id); if(script != null) { msg.prefix(player, prefix_commands, "Sounds already started."); goto("wait"); } } script = script.start("system/playsounds"); script.setVar(script, "player", player); map.add(sounds_map, player.getUuid(player), script.getId(script)); msg.prefix(player, prefix_commands, "Sounds started."); goto("wait"); } if(arg0 == "stop") { if(!map.exists(sounds_map)) { sounds_map = map.new(); } script_id = map.get(sounds_map, player.getUuid(player)); if(script_id == null) { msg.prefix(player, prefix_commands, "No sounds playing."); goto("wait"); } script = script.getFromId(script_id); if(script == null) { msg.prefix(player, prefix_commands, "No sounds playing."); goto("wait"); } script.term(script); msg.prefix(player, prefix_commands, "Sounds stopped."); goto("wait"); } goto("wait"); @weather if(size == 0) { @weather_syntax msg.prefix(player, "§eWeather", "§r/weather ..."); msg(player, "§e - clear [duration]"); msg(player, "§e - rain [duration]"); msg(player, "§e - thunder [duration]"); goto("wait"); } arg0 = text.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, "§rZahl erwartet"); goto("wait"); } if(duration < 0) { msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet"); goto("wait"); } } else { duration = 12000; } world = loc.getWorld(entity.getLocation(player)); if(arg0 == "clear") { if(size > 2) { msg.prefix(player, prefix_commands, "§r/weather clear [duration]"); goto("wait"); } world.clearWeather(world, duration); msg.prefix(player, prefix_commands, "§rWetter wurde auf Klar gestellt"); goto("wait"); } if(arg0 == "rain") { if(size > 2) { msg.prefix(player, prefix_commands, "§r/weather rain [duration]"); goto("wait"); } world.setRain(world, duration); msg.prefix(player, prefix_commands, "§rWetter wurde auf Regen gestellt"); goto("wait"); } if(arg0 == "thunder") { if(size > 2) { msg.prefix(player, prefix_commands, "§r/weather thunder [duration]"); goto("wait"); } world.setThunder(world, duration); msg.prefix(player, prefix_commands, "§rWetter wurde auf Gewitter gestellt"); goto("wait"); } goto("wait"); } goto("weather_syntax"); @time if(size == 0) { @time_syntax msg.prefix(player, "§eTime", "§r/time ..."); msg(player, "§e - set