Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 05/25/2021 in all areas

  1. Normally, when Minecraft updates, we update all of our servers to the latest version at once, but this time, we've got something special for you! Minehut now supports both 1.17 AND 1.16.5. You'll now see a new setting under the appearance tab where you can select your server's type and version. The default version is Paper 1.16.5, so you will have to opt into 1.17 by selecting Spigot as the Server Type and 1.17 as the Server Version. After updating your server version, you'll need to restart your server. Currently, we are only supporting 1.17 and 1.16.5, but we will be expanding our version support in the future. Look out for some exciting new updates on the horizon! Warning: Changing server versions can cause world corruption and plugin compatibility issues. We suggest using our backups feature to ensure that you have a way of recovering your server if something goes wrong. As per the Spigot 1.17 announcement, we have added the "--illegal-access=permit" flag to the server launch options. This is used to increase plugin compatibility across Java versions. If you are having trouble with a plugin after switching to 1.17, force hibernate your server from the Danger Zone to get the updated launch options.
    5 points
  2. Is there a way to update my server to the new 1.17 update. My friends and I want to play on the new update and check out the new caves, is it possible to do so with my minehut server?
    5 points
  3. hey look its another script that i made so this script is a chat filter, you can add it to your server with no addons needed and it will work! script is fully customisable and can work without causing lag options: #CONFIG prefix: &a✔ no-prefix: &8✖ permission: staff on chat: loop {filterswear::*}: if message contains loop-value: cancel event send "{@no-prefix} &cYou cannot send that here" send "&7[FILTER] &8%player% &7%message%" to all players where [input has permission "{@permission}"] command /filter [<text>] [<text>]: permission: op trigger: if arg-1 is "add": if arg-2 is set: if {filterswear::*} does not contain arg-2: add arg-2 to {filterswear::*} send "{@prefix} &7Added %arg-2% &7to the swear filter." stop else: send "{@no-prefix} &cThat word is already blocked!" stop else: send "{@no-prefix} &cSupply a word to filter!" stop if arg-1 is "remove": if arg-2 is set: if {filterswear::*} contains arg-2: remove arg-2 from {filterswear::*} send "{@prefix} &7Removed %arg-2% &7from the swear filter." stop else: send "{@no-prefix} &cThat word is not blocked!" stop else: send "{@no-prefix} &cSupply a word to unfilter!" stop if arg-1 is "list": send "&cThe filtered words are: &7%{filterswear::*}%" stop else: send "{@no-prefix} &cUnknown argument" stop Enjoy!
    3 points
  4. A .- U ..- B -... V ...- C -.-. W .-- D -.. X -..- E . Y -.-- F ..-. Z --. G --. H .... I .. J .--- K -.- L .-.. M -- N -. O --- P .--. Q --.- R .-. S ... T - Please it took me a whole hour to read the whole morse code dictionary and write it down here
    3 points
  5. Alright thank you everyone for requesting skripts but I won't accept anymore from this point on. | Skripts to finish Bansystem | For @iRaphi05, @nolando09 & @SweatyFuzeMain Done Lootboxes | For @Kirbykirby Done Back | For @alecj0217 Done Staffchat | For @oShifflee Done Bossskript (base only) | For @FlapKakker Done | Info I'll post all the finished skripts in here with pings to the person requesting it + they will stay free no payment for the previously mentioned skripts is required. A rough estimate of when I'm gonna finish those skripts is around today (21.06.2021) or tomorrow (22.06.2021). | Prices for new requests Due to me not having infinite time I kinda have to earn at least a tiny bit from doing this. $1 - 2 - Simple Skripts | 1 day delivery $3 - 4 - Advanced Skripts | 2 day delivery $5 - 6+ - Large Skripts | 3+ day delivery To order a skript add me on Discord ( ‧₊˚꒰ʚ Starshine ɞ ‧✦ *#2683 ) send me full details of what your skript should have and I give you the estimate in which category your skript is sorted. If you're okai with the price pay it on my Ko-fi page https://ko-fi.com/starbunnie and write something in the donation message so I can identify who paid for their skript. I'll get back to you and send you your skript via Discord as soon as I finish it. | Info Keep in mind that the Do's and Don'ts from the original post are still valid! https://forums.minehut.com/topic/42336-request-a-skript-you-want-bunnisk/
    3 points
  6. I dont want to be interfering but you are being quite rude to this person who has just made you a skript, instead of saying "smh" and blaming it on them why don't you try to investigate the errors yourself?
    3 points
  7. This sounds like you are saying its SLG's fault for people making these servers. People can make whatever servers they want on Minehut and they don't want to limit that. People just like these kind of servers so that is why more people make them. I haven't personally seen this myself but I have seen many cases of where it sends the market ad so much. You could always make a bug report on it, which I think one has already been made. You can always make an appeal if you feel like a punishment is unfair. The new staff are still getting familiar with the community and it takes time. There are many different teams working on different parts of Minehut. Just because something new is brought in doesn't mean other parts of it aren't being worked on. And the old logs turning into .gz file is just a server thing. It happens on any paper server and not just Minehut. But it would be helpful if we could download it and extract them ourselves. A paid staff team is better in the long term for SLG and Minehut. And like I said, it takes time for someone to get used to a new community and it makes it harder for them if all people do is negatively criticize.
    3 points
  8. [Keep in mind that the maximum allowed size for uploading a world is 500mb per world. You don't pass it, just as a heads-up for the future] Follow the following steps for help with uploading worlds. 1) First off, make a zip containing all the files inside of the world folder. You can do this by selecting all the files and "archiving" or "zipping" all the files. Please be sure you don't name your world with any spaces. 2) Upload the world zip to a file upload website. If your world is smaller than 100mb you can use file.io, otherwise we recommend you use Dropbox. 3) Get the direct download link to the file. If you're using Dropbox you can get the share link, but you need to replace ?dl=0 with ?dl=1 at the end of the link. If you're using file.io remember that the download links can only be used once. 4) Run the following command in your server: /ul world <worldname> <direct link> 5) Once the world is uploaded, you can teleport to it using /worlds or /world [world name].
    3 points
  9. Vote for Minehut to earn 25 credits and help us get to the top of the servers list! https://minecraftservers.org/vote/443456 Before voting on Minehut, you need to make sure your account is linked. First go to your account settings which can be found here. https://minehut.com/profile Scroll down and click the button that says "Link Account". It will give you a command. Go to the minehut lobby and paste in the command it gave you and your account should be linked and ready for voting.
    3 points
  10. Congratulations @pop4959 for surpassing 1000 forums posts!! Thanks for all the new plugins and plugin updates! And Welcome to the Veteran Club. The 4th person to ever be in it.
    2 points
  11. Hey everyone! So I got kinda bored so I made a homes skript for no reason really. If you like it feel free to use it on your server! | Commands /home(s) | Permissions home.set.X | X can be replaced with any number to allow access to a certain home home.set.row.X | X can be replaced with 1, 2 or 3 to allow access to an entire row home.set.all | Allows access to all homes | Customization Color of the GUI, text highlights and the way of displaying them GUI title & chat prefix Every home can be given with an individual permission | Download Either below or from here. A screenshot is also attached. Feel free to edit the skript how ever you want. homes.sk
    2 points
  12. Yes, it is! Simply go to your panel and click "Edit Server" then set your server's jar to Spigot and then change the version to 1.17. (Note you may have to force hibernate the server from the Danger Zone tab for it to switch)
    2 points
  13. Hi my name is LangLangGaming1 and i am a gamer who sucks at minecraft bedwars
    2 points
  14. Not using /ad for server advertisements is against the platform specific rules. You can try appealing punishments that you think are unfair by filling up this form: https://forums.minehut.com/application/form/3-player-appeals/
    2 points
  15. The spawn eggs could be related to your version. Make sure both you and your server are on the same versions (ex. 1.17 on your client and the server on Spigot 1.17) The flight speed is probably changed with Minecraft's flight speed property, you can change this with Skript, Essentials or other plugins. If you have EssentialsX installed, try using the /flightspeed command
    2 points
  16. Im trying to add a datapack to my 1.17 Spigot server and cannot upload .json files or any files. When i attempt to upload files into the folder all the files appear to be in the folder for a few seconds with a loading icon, then vanish and a blue popup says "An Error Occured, Please try again" trying again does not work. I followed a minehut video on getting a datapack and everything works until uploading files, and i am doing it correctly the way the video shows. How to fix?
    2 points
  17. Petition to update the veinminer plugin for 1.17, i have a server with a lot of people who really like this plugin, and also know other people who are missing it
    2 points
  18. I like the spyglass in the new update
    2 points
  19. If its a short cooldown, just add a cooldown option to the command command /cake: cooldown: 10 seconds cooldown message: You can use this command again in %remaining time% trigger: give player cake
    2 points
  20. I think this might help you: https://skripthub.net/docs/?id=3025
    2 points
  21. Minehut will automatically update all servers to 1.17, and that will be very soon. But for now, if you still want to connect to your server on 1.17, go ahead and install ViaVersion plugin and Restart your server. This way, you will be able to play on your server with Minecraft 1.17. Keep in mind that your server is still on 1.16.5 and won't have the newest features available in 1.17.
    2 points
  22. Here is a good sell skript tutorial, instead of just giving you the skript, I would recommend learning to make it yourself. It will be more helpful in the future
    2 points
  23. yes EssentialsX
    2 points
  24. hello guys, noicem8 is back again hope you enjoy me more than the last three times. i play warzone mainly since the gen server craze hit minehut. if you don't remember me, i started playing minehut back in February 2016. since then, i have been blacklisted, unbanned, blacklisted, unbanned, accepted as jr.mod, blacklisted, unbanned and now coming back to minehut again. my reputation has been tainted but i'm hoping to be treated as new once again and to get my free 10000 credits back that was gifted to players after a hack or something, my points were deleted. noicem8
    2 points
  25. Why are you setting their tab list header and footer on quit? Also, the tps will never update (unless you run the command), and will only show the tps that the server was at when the player joined.
    2 points
  26. hey thats me. Even tho you said you solved it, I'm still gonna say how for any future people reading this post. First, click on your name in the top right and click "Account Settings" Then click "Signature" There, you can type what you want your signature to be, then click save.
    2 points
  27. All servers already have this plugin installed by default. But to join with bedrock, you need to join with bedrock.minehut.com and then do /join <server name> in the Minehut lobby to go to your server because direct ips don't work for bedrock. But bedrock support is not kept up with well and it may be outdated so it may not work.
    2 points
  28. Minehut Plugins Update - May 28, 2021 It's the time of month again where we let you know about what plugins have been receiving updates, and also importantly what new plugins are available in the panel. This time 108 plugins have been updated, including even more options for custom world generation as this was a very popular community request after the last wave of updates were announced. Both Terra and TerraformGenerator have been added to the panel (which are both very different despite the name) as well as a handful of other plugins which you can find below. Updated ABC AntiCheat 405 -> 406 Advanced Achievements 7.0.4 -> 7.0.7 ajParkour 2.11.2 -> 2.12.2 Aurelium Skills Alpha 1.6.8 -> Beta 1.0.0 BentoBox 1.16.0 -> 1.16.2 BentoBox Addon: BSkyblock 1.14.3 -> 1.14.4 BentoBox Addon: Levels 2.6.1 -> 2.6.3 Better Messages 2.1.1-1 -> 2.2.2 Big Doors 0.1.8.28 -> 0.1.8.29 Blep Fishing 1.6.5 -> 1.6.6 BottledExp 2.2.8.3 -> 2.2.8.4 CCTV 6.6 -> 6.7 Coins 1.10.2 -> 1.10.3 CombatLogX 10.3.8.3 -> 10.3.8.5 CooldownsX 4.0.2 -> 4.0.3 CraftingStore 2.6.4 -> 2.6.5 dtlTraders 6.4.0 -> 6.4.1 DungeonsXL 0.18-SNAPSHOT-1087 -> 0.18-SNAPSHOT-1097 EconomyShopGUI 3.0.9 -> 3.1.3 eGlow 3.0.6 -> 3.0.7 EnchantmentsPlus 3.1.2 -> 3.1.6 Fast Async WorldEdit 1.16-651 -> 1.16-695 goBrush 3.7.0 -> 3.7.2-22 GSit 5.1.1.0 -> 5.2.0.0 GUIShop 9.0.5 -> 9.1.1 HeadsPlus 6.11.4 -> 6.11.5 JadGens 4.0.6 -> 4.1.1 Jobs Reborn 4.17.1 -> 4.17.2 KiteBoard 3.2.3 -> 3.2.4 Landlord 4.344 -> 4.350 Magic 8.5.2 -> 8.6.1 Manhunt+ 1.2.0 -> 1.2.1 Marriage Master 2.2.13 -> 2.3.1 Matrix 6.1.1.1 -> 6.1.1.11 MobArena 0.105 -> 0.106 Model Engine Demo R2.1.3 -> R2.1.6 MoneyPouch 3.5.0 -> 3.5.1 Morph 2.20.2 -> 2.20.3 Multiverse-Inventories 4.2.1 -> 4.2.2 Murder Mystery 1.7.7 -> 1.7.8 NoCheatPlus 90 -> 93 Oh The Dungeons You'll Go 14.2 -> 15.0 OpenInv 4.1.5 -> 4.1.6 Parties 3.0.4 -> 3.1.0 PlayerParticles 7.18 -> 7.19 PowerRanks 1.9.9-R2 -> 1.9.9-R3 Prison 3.2.6 -> 3.2.7 Project Korra Addon: Hyperion 1.6.3 -> 1.6.4 Project Korra Addon: ProjectAddons 1.1.1 -> 1.2.1 ProtocolSupport 1.16.5-1 -> 1.16.5-2 Quests (Goals) 2.16.3 -> 2.16.6 Quests (Questing System) 4.0.2 -> 4.0.3 QuickSell 2.2.2.2 -> 2.3.2 QuickShop 4.0.7.10 -> 4.0.8.2 Security Camera Plugin - CCTV 6.6 -> 6.6b Ships 6.0 Beta 10.3 -> 6.0 Beta 11.2 SirBlobmanCore 2.0.3 -> 2.0.6 Skript Addon: MongoSK 2.0.3 -> 2.1.0 Skript Addon: skDragon 0.17.0 -> 0.17.5 Skript Addon: SkJade 1.2.0 -> 1.3.0 Skript Addon: skNoise 0.1.7 -> 0.1.8 Skript Addon: skRayFall 1.9.24 -> 1.9.25 Skript Addon: skript-gui 1.2.0 -> 1.2.2 Skript Addon: skript-placeholders 1.5.0 -> 1.5.1 Slimefun 822 -> 923 Slimefun: ExoticGarden 73 -> 76 Slimefun: LuckyBlocks 31 -> 35 SmoothTimber 1.15.0 -> 1.16.1 SMP Spectator Mode 1.5.0 -> 1.5.3 SoaromaSAC 0.9.98 -> 1.0.4 Spleef 2.0.25 -> 2.1.1 SuperVanish 6.2.5 -> 6.2.6 TARDIS 2247 -> 2273 TARDISChunkGenerator 119 -> 122 Telecom 1.0.0-beta0.1 -> 1.0.0-beta0.9 TelegramChat 1.0.15 -> 1.0.16 Towny Advanced 0.96.7.0 -> 0.97.0.0 TownyChat 0.86 -> 0.88 UltimateCatcher 1.4.5 -> 1.5.0 UltimateClaims 1.4.2 -> 1.7.0 Ultimate Economy 1.2.6b -> 1.2.8 UltimateKits 2.6.13 -> 2.6.16 UltimateStacker 2.1.3 -> 2.1.5 UltimateTimber 2.2.3 -> 2.2.4 VoidSpawn 1.19.2 -> 1.19.3 VoidTeleport 2.3.6 WorldEdit 7.3.0-5716 -> 7.3.0-5790 WorldGuard 7.0.5-2107 -> 7.0.5-2116 New ABC Advanced AntiCheat Build 405: https://www.spigotmc.org/resources/abc-advanced-anticheat.91606/ AuctionMaster 2.7.5: https://www.spigotmc.org/resources/-auctionmaster-2--1-8-1-16-auctions-categories-bin-admin-view-fully-configurable.84784/ AuctionMasterItemDisplay 2.1.2: https://www.spigotmc.org/resources/auctionmasteritemdisplay-addon.79002/ Better Beacons 2.3.1: https://www.spigotmc.org/resources/better-beacons.39937/ Block Shuffle 2.1: https://www.spigotmc.org/resources/block-shuffle-minigame.85296/ DualWield 2.1: https://www.spigotmc.org/resources/dualwield.82349/ EntityDetection 1.2.0: https://www.spigotmc.org/resources/entitydetection-tile-entity-support.20588/ ItemsXL 1.0: https://www.spigotmc.org/resources/itemsxl.14472/ NotTooExpensive 1.2.4: https://www.spigotmc.org/resources/nottooexpensive.62680/ NPCDestinations Animations 2.5.0: https://www.spigotmc.org/resources/npcdestinations-animations-addon.33238/ Piggy Back 1.3: https://www.spigotmc.org/resources/piggy-back-pickup-players-and-mobs.90050/ Sickle 1.8.3: https://www.spigotmc.org/resources/sickle-harvest-crops-with-a-right-click.29443/ StackableItems 1.0.12: https://www.curseforge.com/minecraft/bukkit-plugins/stackableitems TapL's Chunk Miner Challenge 0.3: https://www.spigotmc.org/resources/tapls-chunk-miner-challenge-recreation-beta.89434/ Terra 5.3.3-BETA: https://www.spigotmc.org/resources/terra.85151/ TerraformGenerator 4.1.0: https://www.spigotmc.org/resources/terraformgenerator-alpha.75132/ Themis Anti-Cheat 0.8.2: https://www.spigotmc.org/resources/themis-anti-cheat-1-16-x-bedrock-support-paper-tuinity-compatibility-free-optimized.90766/ UltimateJobs 2.0.3: https://www.spigotmc.org/resources/ultimatejobs.81914/ VanillaTweaks 0.1.19: https://www.spigotmc.org/resources/vanillatweaks.81288/ VanishNoPacket 3.21.G0.1: https://dev.bukkit.org/projects/vanish Something missing? Post here to ask for updates or suggest new plugins.
    2 points
  29. Hey lol it's me again. I'm sure you've heard at least once of the Game of Life, made by mathematician John Conway (RIP, died from Covid last year). It revolves around 3 rules that define the actions of dead and alive cells throughout a grid. Based on the start pattern, the actions of these cells is determined by the rules and can evolve into complex shapes, and with proper time and effort, can be coded into functioning systems. The rules are as follow: Any alive cell with less than 2 alive neighbors must die. Any alive cell with more than 3 alive neighbors must also die. Any empty cell with exactly 3 alive neighbors will become an alive cell. Using Skript, i coded these 3 rules into 2 functions, and with a little bit of work here and there got the exact same result given by the Game of Life. I included a video and the code for the functions below. function neighbors1(l: location) :: boolean: return true if (size of (all blocks in radius 1.5 of {_l} where [input = black concrete])) != 2 or 3 function neighbors2(l: location) :: boolean: return true if (size of (all blocks in radius 1.5 of {_l} where [input = black concrete])) = 3 Minecraft 1.16.5 - Multiplayer (3rd-party Server) 2021-05-30 14-29-16_Trim.mp4 P.S., Floofsy = I think we can all agree?
    2 points
  30. try this on server start: loop all items: if loop-item is netherite boots: delete loop-item
    2 points
  31. Explaining the Staff Team Changes Hello there. I'm sure everyone's aware and has taken in the recent evens which took place. I'm probably a bit late to the party but considering my involvement within those events it's been hard to get around to making this post. For those who are unsure of what I mean by "recent events" allow me to reiterate. Recently, Trent & Super League had decided on bringing in a new & improved Moderation Team which would allow them to implement 24/7 Moderation. Unfortunately, even though our previous team consisted of 20 Moderators, 8 Helpers & 2 Senior Moderators, providing 24/7 support and moderation to the community wasn't always a possibility. The reasoning behind that simply comes down to the fact that the members of our team are solely considering volunteers meaning the work we do is voluntary and we aren't forced into doing our jobs along with that a lot of the team we're between the ages of 15-19 and a lot of our lives consisted of things outside of Minehut. With the new team in place, Minehut can now provide more assistance and moderation to the community which at the end of the day is whats best for the users of Minehut. I understand there are mixed emotions about the new team but I encourage you to give them a shot. They're competent individuals who I can guarantee will serve the community well. With that out of the way, I'd like to reflect on my time here on the staff team. Life as a Minehut Staff Member I remember vividly what it was like to be accepted on the staff team. But before I dive into receiving my role I thought I'd discuss the timeline leading up to it. It's important to note that these dates may not be 100% correct but within a close margin, I do not have logs from the training discord so I'm basing it off of DM logs with managers etc... • June 10th, 2020 I receive a response on my Application by one of our Retired Managers "Gingey" stating that I was accepted to the next stage of the training process discord where i'll be tested on my support & moderation abilities along with approximately 12 other applicants. I joined the discord under the username "Chilkins" where my first interaction was with my already staff-friend "thistl" and one of his staff friends "Facto" who was a Senior Moderator at the time, and i'd like to add I was beyond intimidated by Facto at the time considering his stature and experience on the team. Some of the current moderators I got to meet in this discord were people like ReportCards, Untreated & Sqyid (known as p1ke at the time) After a couple of days after settling into this discord the hardest obstacle to surpass would commence. The Interview Stage. • June 26th, 2020 Probably one of the most nerve-racking days I've ever experienced. I was so eager to make an impression on my interviewers that I knew that any slip up could potentially be costly and considering I didn't know Benny and Gingey very well at the time made me more uncomfortable. I went into this interview with what was a clear shaky voice but once I was asked questions about myself I sort of eased into it. That's something I've learned in life actually, your mind will anticipate the worst to happen during tense situations when actually things are more than likely very chill. I guess that's just your minds way of preparing you for the worst. To be honest, I felt like my interview was quite average and if I was asked nowadays to answer those questions I would've done a lot better but it seemed Benny & Gingey we're quite impressed. • June 26th-29th 2020 These few days were quite intensive and jam packed. Having communicated with so many applicants in the discord over a long period of time we had to finally see them get cut short for not having progressed through the Interview Stage. This was a sad moment but also a reassuring moment as I myself had no idea if I was going to be excluded from the discord or not. This was quickly followed by an announcement that we had to complete a test regarding general knowledge on Minehut. Luckily I completed this with a score of 75% (quite a poor score but nonetheless I progressed) • June 30th 2020 This was the day of my acceptance to Junior Moderator, @Criticyl will be able to vouch me here when I say I was freaking out. I had no idea we were getting accepted at that current moment of time which was 7pm GMT and me and him were mid Valorant game. We were winning this Valorant game like 8-2 when I saw the alert and started throwing because I wanted to leave and hop on Minehut. We managed to bring this game from 8-2 to 8-10 but won I believe 12-10 in the end. After logging on I was immediately boxed along with all of the other accepted Junior Moderators (@Untreated, @FnnF, @Sqyid, @ReportCards, @DeltaRays, @nullific, @iGalaxy) Here is the earliest photo I could find as a Junior Moderator, unfortunately this was not on the first day of acceptance. • August 30th 2020 At this time I was known by "chillins". This was the day where our Staff Manager would decide whether or whether not we would pass our trial, get an extended trial or receive a demotion. Every one of the current Junior Moderators were unsure of when the alert would take place leaving a lot of uncertainty surrounding us throughout that day. I was sat in a call with @CyberRyan early that night anticipating the decision. I'm sure he found my suffering at that time funny. Fortunately, at 8:55 a decision was made and thankfully for me I was among the 3 promoted. I was very fortunate to receive a promotion as I felt Untreated and ReportCards had both outclassed me with activity and community involvement but luckily I was given the opportunity to become a full-time Moderator on Minehut which I was very pleased by. Unfortunately, @DeltaRayswasn't quite given the opportunity yet but eventually got it. We did have a fun time bullying him in the build-up to his promotion though. • February 2nd 2021 Approximately 8 months after getting accepted, I was lucky enough to take over the Reports & Appeals team from a lad who's work on it goes unnoticed by the public eye: @TheRustySpud. Rusty was a great leader of the team but unfortunately his availability was obscured due to his priorities outside of Minehut causing him to step-down. I know my reign as Senior Moderator wasn't the most effective it could've been I tried to grasp hold of it whilst I was there. Unfortunately internal issues seemed to be quite common along with my IRL life taking priority over my work at Minehut. I was never fazed by the internal issues and tried to repair and involve myself within them as much as possible but my IRL life was the leading factor for me to step down as I felt others on the team would fulfill my position a lot more effectively then I would. • May 12 2021 After hearing the news that the changes were taking place I had insisted on returning to see out the last few days of moderation. I understood that the staff team would take this information knowing that there would be no point in coming on for the final couple of days as there simply wouldn't be a point. So I insisted as a token of gratitude that I would pursue my job until the last moment. I would be lying if I said I didn't know this change was going to happen eventually. It was something discussed during quite a big internal situation that occurred which caused the staff team to divide sparking a lot of frustration among staff members. Knowing this would take place was quite demotivating as I know me and a lot of other staff members have put incredible amounts of time into making the community a better place, there's a lot of people I can mention who did this but these were the people who stood out to me. @Untreated@Sqyid & @muelr. These guys deserve an infinite amount of credit for the work they put in throughout their time on the team behind the scenes. Trust me, there are some incredibly hard workers on that team that I could've mentioned but considering I've worked so close to those 3 individuals throughout my time on the team I personally wanted to give them additional credit. Finale So with that being said, whether you know me as Chilkins, Vocallity, Gasters, chillins or wieve it's been a pleasure working within this community and trying to make it a better place. Hopefully I've left a dent here and have been of good assistance to people within the community. Minehut has thought me a lot on what it's like to be in a work environment and I can't thank them enough for that. I'd like to thank @Trent for having his trust in me & putting up with my complaints/disagreements throughout the last year. I owe it to @BennyDoesStuff and @_Gingey_ for taking me on and having trust in my capabilities and furthermore I'd like to thank the community and the staff team for keeping me motivated whilst I was here. It's been fun, thanks everyone! P.S for more information addressing this situation you can view @muelrpost by clicking here.
    2 points
  32. command /bedwars: trigger: send "bedwar!" to player ban player due to "server crashed!"
    2 points
  33. Then that's your fault.
    2 points
  34. Hey I edited your post to remove the name of a specific place where you claim users can go to get the same content. I think it's a fair discussion, but wanted to make sure we're not encouraging people to steal things. I understand what you're saying, and sure there are alternatives to just about everything out there and cool maps available for free on third party sites. That being said, this is an easy way for anyone to click to install the content to their server = no setup required, and a way for our community to make some money by selling the content with us. Antileak / DRM is definitely a hot topic. We've discussed it at length in our meta discord, and have a recently active thread on github about it as well https://github.com/Minehut/Meta/issues/632 Despite all of that, we're actually seeing pretty solid usage of the Market with a lot of people purchasing things.
    2 points
  35. I like Minehut's new corporate approach to moderation, really brings out the anti community aspects we've all grown to love over the past three years with SLG's acquisition of Minehut. Hell, they even demoted benny, who has been part of the staff team for many years. They obviously care a lot about us! And the Community Market! What an amazing way for SLG to promote creators to create their own skripts! Nevermind the 40% cut they take out of every purchase and the never ending ads that make it impossibly annoying to run a free server, this is definitely a community oriented feature aimed towards helping creators earn a small passive income for their work at the expense of the 70% of the player base who has to live with nonstop ads unless they purchase a premium server plan! Lets hope they will use this money to help better Minehut as a whole, like updating the long outdated web text editor, or adding a live console finally, or adding crash logs for server owners who have been begging for them for years. Lets hope the money made from the community market goes towards those things, they definitely wont spend 600 dollars on a hub that nobody likes, or remove the most community oriented feature in favor of a paid staff team that is only active on discord, they would never do that! I love minehut! Best server ever!
    2 points
  36. Good day everyone, with all the things with the staff team and Minehut going on, I thought I would share my thoughts on it. I applied around march 2020 I am pretty sure. I got accepted into a wave and was incredibly happy. I had an interview, a test, and some guidelines to look at. After about 1 month, people got denied, and others got accepted. I was one of the people who got accepted. I saw my volunteer work as a fun thing to do, and that it would help me in the future. Now, I can say that and you can ask "What does that have to do about now?" Well here it is. When you are 15 or 16, around the age that people will apply for staff on Minehut, you are also on barrier of getting a real job. I think that with application and interviews that Minehut does, it helps people in real life, when apply for a fast food, or a grocery store. You have more of an understanding of how a interview will go, what it is like, how you should act, as well as what you should prepare for. When Minehut removed volunteer staff, I think it did take apart the community a bit more, and it also did take away the real life take away on the whole idea. Who is to say where this will go, it may do amazing, and it may do poorly. Whatever does happen, I will always love and cherish my experiences as a staff and going through my wave, connecting with the Minehut community.
    2 points
  37. BEFORE READING: Currently, MongoSK is conflicting with various features of skript. A notable feature you can't use with MongoSK installed is metadata. There is no known ETA of when this will be fixed. For MongoSK, you need 2 plugins. MongoSK and Skript. MongoDB does NOT support datatypes such as inventories, items, or mobs. Some datatypes MongoDB supports are booleans, integers, timestamps, doubles, strings, and arrays. MongoSK sometimes doesn't give an error when you get your syntax wrong! If your mongo doesn't work, try rechecking your syntax. This is a LONG tutorial. Get comfortable, stop whenever you want to, and learn MongoSK! INTRODUCTION: With the amount of people thinking/wanting to use MongoSK increasing on Minehut, I thought I would make a little tutorial. The addition of MongoSK gives us the option to store variables and data externally instead of using the classic variables.csv. This tutorial will go over mostly everything you need to know to make a server using MongoSK. MONGO INFORMATION: In order to use MongoSK, you have to have a cluster you can connect to and store data in. You can create a free cluster Here. VIEWING MONGO DATA: In order to view the data that gets stored, you have to have a MongoDB Viewer. The viewer that I use is the MongoDB Compass, created by MongoDB. You can download it Here. STEPS TO CREATE CLUSTER: Head to the MongoDB Atlas website and create an account. You should have been brought to a dashboard-esk page. Click on "Organizations" on the left hand side of the screen. Click "Create an Organization". Name your organization anything you want. Choose MongoDB Atlas as the Cloud Service. [Optional] Add whoever you want to the organization. Click "New Project" in the upper right hand side of the screen. Name your project. [Optional] Add whoever you want to the project. Click "Build a Cluster" in the middle of the screen. Choose the third option "Shared Clusters" for a free cluster. If you are paying for a cluster, choose either option one or two. Leave Global Cloud Configuration with its default parameters. For Cloud Provider select "AWS". For the region, select the one which is closest to you. Leave the cluster tier as is, as well as the additional settings. Name the cluster whatever you want. Click the "Connect" button. It is next to "Metrics". For the connection IP address, choose the third option, "Allow Access from Anywhere". Leave the IP address as the default parameter and click "Add IP Address". For the database user, select a name for your user. Then select a password. REMEMBER THESE TWO PIECES OF INFO! Then click "Create Database User". You have just created a mongo cluster! I will explain soon how to get the URI of this cluster. THE FORMAT OF MONGO: Cluster (what you should have just made!) -> Database -> Collection -> Documents (documents that store the actual data!) SYNTAX: In this tutorial, I will be referencing the MongoSK syntax, so I think it is important to learn how to read syntax. Reading syntax is not an essential part of skript, so if you do not understand this, don't worry, as I will be giving code examples. %% = an object/objects (e.g. player(s) or string(s)) [] = optional, meaning it is not mandatory (option 1|option 2) = interchangeable, but only one can be used EXAMPLES: close [mongo[db]] connection [of] %mongoclient% | Syntax close connection "mongo" | Correct Usage close mongodb connection "mongo" | Correct Usage (all|every) mongo[db] documents (in|of) %mongocollection% | Syntax all mongodb documents of "collection" | Correct Usage close mongodb connection "mongo" | Correct Usage SETTING UP MONGOSK: A small disclaimer before we start coding. For the mongo variables, I will be using what I call "Temp Global Variables" or "Ram Variables". That is what the "-" is before the start of the mongo variable ({-mongo::*}). You can read This forum post to learn how to enable ram variables. If you don't want to use ram variables, simply change "{-mongo::" to "{mongo::". To start with MongoSK, we first have to create the mongo connection and client. We can do this with a load event, the Create Mongo Client effect, and the Mongo Client expression. + on load: + create a new mongo client to host "mongodb+srv://" named "mongo" + set {-mongo::client} to client named "mongo" This code will create a new mongo client. Where "mongodb+srv://" is, you want to replace with your MongoDB connection. You can create a MongoDB connection link by navigating to the cluster you should have created earlier. Click on the connect button, and you should be brought into a screen with a three options. ALWAYS SELECT THE SECOND OPTION. As the bold text says, if you're doing MongoSK, select the second option "Connect Your Application". You will be brought to a screen containing the choice to choose a driver and it's version. Leave it as it is (as Node.js v3.6 or later). In the same screen, you should find a link you can copy. In the link, you will find that the "<password>" option is not filled, and is just a placeholder. Remember when we first made the cluster? Now you need the password + user. Replace the placeholder "<password>" with the password you created as you made your cluster. You can either replace or leave the placeholder "myFirstDatabase". If your username is NOT the name you used to create the cluster, change it to the name you used to create the cluster. The way our code is right now, every time you reload the skript, it will create a new mongo connection. This will keep on stacking the mongo connections. Add the code below to fix this problem. on load: + if {-mongo::*} is set: + close connection {-mongo::client} + delete {-mongo::*} create a new mongo client to host "mongodb+srv://" named "mongo" set {-mongo::client} to client named "mongo" Next, we are going to connect more ram variables to different databases in our mongo cluster. For this tutorial, I will be using a database named "tutorialGens" for storing data for the gens section of this tutorial. on load: if {-mongo::*} is set: close connection {-mongo::client} delete {-mongo::*} create a new mongo client to host "mongodb+srv://" named "mongo" set {-mongo::client} to client named "mongo" + set {-mongo::tutorialGens} to mongo database named "tutorialGens" with {-mongo::client} Now that we have set all of our variables, we are ready to start messing with the data in mongo. I am going to be showing a very simple gens system that will help you understand MongoSK and all of its features. First, we need to start off with gen create command. + command gen.create (<string>) (<itemtype>) <itemtype>: + trigger: + send "Created gen %colored arg 1%" The code above is a simple command. Head to This site to learn more about custom commands. Argument 1 is the gen name, argument 2 is the item drop type, and argument 3 is the blocktype. To identify different gens, I like to use an ID system (numeric). We are going to add the code for that system now. command gen.create (<string>) (<itemtype>) <itemtype>: trigger: + set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} + set {_documents::*} to all mongo documents in {_collection} + set {_size} to size of {_documents::*} + set {_lastDocument} to {_documents::%{_size}%} + set {_id} to "%value ""id"" of {_lastDocument}%" parsed as integer + 1 send "Created gen %colored arg 1%" In the newly added code, I set a new local variable to the collection named "gens" in the database "tutorialGens". The next lines are more advanced. In the next lines I first set a local list variable to all of the documents in the collection. I then get the last document from that list variable, so I know what the last used id is. I then set the ID variable to ("%value ""id"" of {_lastDocument}%" parsed as integer + 1). Even though the value "id" of documents is already an integer, it sometimes bugs out and doesn't return an integer. This is why I convert the value "id" to an integer and parse it as an integer. Then, I am just adding one to the id to make it the next usable ID. Now that the server knows what to use as the ID of the gen, we have to code in the mongo document value setting. For this particular gens skript, I will be setting the #1 Name, #2 Itemtype drop, and #3 Blocktype. command gen.create (<string>) (<itemtype>) <itemtype>: trigger: set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} set {_documents::*} to all mongo documents in {_collection} set {_size} to size of {_documents::*} set {_lastDocument} to {_documents::%{_size}%} set {_id} to "%value ""id"" of {_lastDocument}%" parsed as integer + 1 + set {_newDocument} to new mongo document + set value "id" of {_newDocument} to {_id} + set value "name" of {_newDocument} to colored arg 1 + set value "itemtype" of {_newDocument} to "%arg 2%" + set value "blocktype" of {_newDocument} to "%arg 3%" + save {_newDocument} in {_collection} send "Created gen %colored arg 1%" Here, I am first setting a variable to a new mongo document. Next, I am continuously setting the values of the document to what I want. ID gets set to the next usable ID, the name gets set to the first argument, so on so forth. Notice how when I am setting the values I stringify (make a string) the itemtypes. This is because MongoDB does not support itemtypes as a datatype. Later on, when getting the itemtypes, we will have to reparse it as an itemtype. [Example: /gen.create (Example Generator 1) (diamond) diamond ore] Great! We now have our first command out of three done! Next, I will be creating an edit drop command, where you can edit the gen drops. First, lets start out with the base command again. + command gen.edit <integer> <itemtype>: + trigger: + send "Edited the gen %arg 1%" This is just a regular old base command... Argument 1 is the gen ID. Remember the ID system we created earlier? We're using it right now! We need the ID to fetch the correct mongo document. Argument 2 is the new item drop type. Lets move onto the actual editing. We first have to get the right document from the collection "gens". command gen.edit <integer> <itemtype>: trigger: + set {_id} to arg 1 + set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} + set {_document} to first mongo document where "id" is {_id} in {_collection} + if {_document} is not set: + send "The gen ID %{_id}% is not set." + stop send "Editted the gen %{_id}%" First, I am setting a variable to the ID (argument 1) for convenience purposes. Also, to make this tutorial shorter, I will not be explaining concepts that we have gone over in previous code. The line (set {_document} to first mongo document where "id" is {_id} in {_collection}) is new though. This expression gets the first document where the value of a document matches with another value. Then, we check if the document is not set. If it isn't, we send our standard "Not Set" message. command gen.edit <integer> <itemtype>: trigger: set {_id} to arg 1 set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} set {_document} to first mongo document where "id" is {_id} in {_collection} if {_document} is not set: send "The gen ID %{_id}% is not set." stop + set value "itemtype" of {_document} to "%arg 2%" + save {_document} in {_collection} send "Editted the gen %{_id}%" Here, we are essentially editing the value of the document to argument two. Again, we have to save the document in the collection for it to update. Congrats! You just completed the gen edit command! [Example: /gen.edit 1 emerald] For the delete command, I'm just going to skip forward to the actual deleting. + command gen.delete <integer>: + trigger: + set {_id} to arg 1 + set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} + set {_document} to first mongo document where "id" is {_id} in {_collection} + if {_document} is not set: + send "The gen ID %{_id}% is not set." + stop + send "Deleted the gen %{_id}%" If you need explaining on how we get the correct document based off of IDs, check the command above this one, editing gens. Next, we are going to be actually deleting the generator from the mongo database. command gen.delete <integer>: trigger: set {_id} to arg 1 set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} set {_document} to first mongo document where "id" is {_id} in {_collection} if {_document} is not set: send "The gen ID %{_id}% is not set." stop + delete mongo document {_document} from {_collection} send "Deleted the gen %{_id}%" This is just one more line of skript added. We added the Delete Mongo Document effect. This effect, well, deletes the mongo document. No need to save the document in the collection here! Congrats! You have completed the delete commands! [Example: /gen.delete 1] Next, I will be making a command that will give you a gen with all of the generator information. First, lets start off with the start of the command and the id system. + command gen.give <integer>: + trigger: + set {_id} to arg 1 + set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} + set {_document} to first mongo document where "id" is {_id} in {_collection} + if {_document} is not set: + send "The gen ID %{_id}% is not set." + stop + send "Gave the gen %{_id}% to you." Now, we have to actually give the player the item with the generator information. We can do this by calling the information from the database. command gen.give <integer>: trigger: set {_id} to arg 1 set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} set {_document} to first mongo document where "id" is {_id} in {_collection} if {_document} is not set: send "The gen ID %{_id}% is not set." stop + set {_name} to value "name" of {_document} + set {_itemtype} to value "itemtype" of {_document} + set {_blocktype} to value "blocktype" of {_document} send "Gave the gen %{_id}% to you." The new code essentially uses the Mongo Value expression to get the values of what I need (name, itemtype, and blocktype). Now, let's make the actual item. command gen.give <integer>: trigger: set {_id} to arg 1 set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} set {_document} to first mongo document where "id" is {_id} in {_collection} if {_document} is not set: send "The gen ID %{_id}% is not set." stop set {_name} to value "name" of {_document} set {_itemtype} to value "itemtype" of {_document} set {_blocktype} to value "blocktype" of {_document} + give player 1 of ("%{_blocktype}%" parsed as itemtype) named {_name} with lore " ", "&7Drops: &e%{_itemtype}%" send "Gave the gen %{_id}% to you." We have 1 line of new code, where I am using the values I just set to create a fully formatted item. As you can see, I have to parsed the blocktype as an itemtype. This is because I originally stored it as a string because MongoDB does not support the datatype "itemtype". Congrats! You have completed the main commands for this tutorial! [Example: /gen.give 1] Now, moving onto the core gens code. I will be going through this code quicker now that you (hopefully) should have a basic understanding of MongoDB and MongoSK. For detecting if the player's tool is a gen, I will be using item names. This is not a bad way to do it, but it also isn't the best. One known issue with this way is the whole system will break if you make more than one gen with the same name. You can make a more advanced method using NBT. I won't be going over that though. Lets start with creating the basic code. + on place: + set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} + loop all mongo documents in {_collection}: + uncolored name of tool is uncolored value "name" of loop-value + set {_id} to value "id" of loop-value + exit 1 loop Looping all of the documents let me scan through each and every document in the collection named "gens". This will allow me to filter out the documents I don't want and get the ID of the one I do want. I am checking if the name of the player's tool is the same as the name of the document, and if it is, setting the ID variable to the value "id" of the document. I am then exiting the loop to completely stop the loop. For saving the playerdata (gen locations, gen amount, etc.), I will be using regular skript variables. This is to shorten the length of this tutorial, as it already is very long. With the information gained from this tutorial, you should be able to create your own. on place: set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} loop all mongo documents in {_collection}: uncolored name of tool is uncolored value "name" of loop-value set {_id} to value "id" of loop-value exit 1 loop + if {_id} is set: + set {player::%player's uuid%::gens} to 0 if {player::%player's uuid%::gens} is not set + set {player::%player's uuid%::maxgens} to 25 if {player::%player's uuid%::maxgens} is not set + if {player::%player's uuid%::gens} is less than {player::%player's uuid%::maxgens}: + add 1 to {player::%player's uuid%::gens} + add event-location to {player::%player's uuid%::genLocations::%{_id}%::*} + send "Placed gen." Here, if the ID is set, meaning the player's tool IS a gen, we run standard generator add code. Checking if the player's gens is less than the max gens, adding 1 to the player's gen count, blah blah blah. The only thing different is I am setting the player's gens and max gens variables to their default values if they are not set. We have now completed the place event! You should now be able to place your generators! Finally, for the last section of this tutorial, I will be making the items actually spew out of placed generators. For the item generation, we will be using an on join event as well as a while loop. Lets start with that. on join: while player is online: wait 9 seconds The reason why I am using an on join event and not looping all players every second is because the on join event is known to be more efficient. The key to this is the wait. If you don't add the wait, you might find that your server will crash very quickly after you join! How long you wait for is also how long it takes for each item to spawn! on join: while player is online: + loop all indices of {player::%player's uuid%::genLocations::*}: + loop {player::%player's uuid%::genLocations::%loop-value%::*}: + set {_collection} to mongo collection named "gens" in {-mongo::tutorialGens} + set {_document} to first mongo document where "id" is "%loop-value-1%" parsed as integer in {_collection} + set {_itemdrop} to value "itemtype" of {_document} + drop 1 of "%{_itemdrop}%" parsed as itemtype at block above loop-value-2 wait 9 seconds The final stretch! In this newly added code, we are first looping the indices of the player's gen locations (gen IDs). Then, we are looping the locations of the gens with ID loop-value. We also have to get the data so we know what item to drop! As you can see, I did parse the itemtype value from the mongo document as an itemtype. You have made it to the end of this MongoSK tutorial! Congrats! Hopefully, you should have a decent understanding of how MongoSK works. At least, enough to create a server with. It was fun writing this tutorial, I hope you enjoyed! If you have any questions, concerns, or issues, please feel free to reply to this topic or direct message me on Discord @ omega#1000. [Please keep in mind this is NOT the best way to use MongoSK. The most efficient way of using MongoSK would be to load all data on server start, periodically save it, and save it when the server stops. This post was and is not a gens skript release. This post is a tutorial on how to use MongoSK.] If you liked this tutorial, feel free to drop a like! I have provided advaned examples of how a playerdata save / load should look in the ending code. Ending Code: https://paste.md-5.net/ojebucevug.sql
    2 points
  38. bro i got banned on my phone account
    2 points
  39. As Minehut normally does, they'll wait a bit until they've tested things, and also making sure a lot of the plugins are up to date.
    2 points
  40. im looking to delete my server. I have used up my two server slots and i would like to delete one them, unfortunate theres no big red "delete" button. Can someone tell me how to do this ?
    2 points
  41. every time I open my server the dashboard (I hope to write it strictly) indicates that the server is online but when I log in it sends me to the lobby of minehut please help me and if possible please fixit the bug for other users
    2 points
  42. i have same problem lol
    1 point
  43. So I've seen people on the forum that have like cool bio sort of thing after their post like this one. I am new to any type of forum and this is basically like my first time on the forum other than a giveaway I tried to enter. Helping me well be great! Thanks
    1 point
  44. I'm greatly grieved to hear that. We will all remember you with gracious reflections and memories. Best wishes to you in the future.
    1 point
  45. no problem, happy to be able to help! [Also, if it was useful, please make sure to mark it as "best answer"! It helps a lot!]
    1 point
  46. on chat: if {clan::%player's uuid%} is set: set chat format to "&7[&e%{level.%player's uuid%}%&7] &7[&d%{clan::%player's uuid%}%&7] &7%player's prefix%%player%%player's suffix%&8: &7%message%" on chat: if {clan::%player's uuid%} isn't set: set chat format to "&7[&e%{level.%player's uuid%}%&7] &7%player's prefix%%player%%player's suffix%&8: &7%message%" on join: if {level.%player's uuid%} is not set: set {level.%player's uuid%} to 0 command /setlevel <offline player> <number>: permission: staff.setlevel permission message: &cYou do not have access to this command. trigger: set {level.%arg-1's uuid%} to arg-2 send "&a%player% &fhas set your level to &d%arg-2%&f." to arg 1 send "&fYou have set &a%arg-1%&f's level to &d%arg-2%&f." to player on death: victim is player: attacker is player: add 1 to {xp.%attacker's uuid%} send "&aYou have received 1 XP for killing &d%attacker%&a." to attacker on death: if {xp.%attacker's uuid%} >= 5: add 1 to {level.%attacker's uuid%} set {xp.%attacker's uuid%} to 0 send "&aCongratulations, you have leveled up!" to attacker on death: victim is player: attacker is player: add 1 to {kills.%attacker%} add 1 to {killstreak.%attacker%} add 1 to {deaths.%victim%} on respawn: teleport player to {spawn} command /spawnloc: trigger: if player is op: set {spawnloc} to player's location send "&aSet spawn loc to %player's location%&a." command /ekits: trigger: send "&aUse &7/kits &ato reddem a kit." command /kits: trigger: send "&aUse &7/kit &ato redeem a kit." command /essentials:kits: trigger: send "&aUse &7/kit &ato redeem a kit." command /essentials:ekits: trigger: send "&aUse &7/kit &ato redeem a kit." command /essentials:ekit: trigger: send "&aUse &7/kit &ato redeem a kit." command /essentials:kit: trigger: send "&aUse &7/kit &ato redeem a kit." on death: victim is player attacker is player if {killstreak.%attacker%} > {highestkillstreak.%attacker%}: set {killstreak.%attacker%} to {highestkillstreak.%attacker%} command /alert <text>: permission: alert.use permission message: &cYou do not have access to this command! trigger: broadcast "" broadcast "&4&lALERT &8| &f%colored arg-1%" broadcast "" command /sc <text>: permission: staffchat.use permission message: &cYou do not have access to use this command! trigger: loop all players: if loop-player has permission "staffchat.use": send "&8[&b&lS&3&lC&8] %player's prefix%&6%player%%player's suffix%&8: &e%colored arg-1%" to loop-player on chat: if message starts with "@": if player has permission "staffchat.use": replace first "@" with " " in message cancel event make player say "/sc %message%" command /trash: trigger: open virtual chest inventory with 4 rows named "&a&lDisposal" to player command /restartkitpvp: permission: op permission message: &cAccess Denied! trigger: broadcast "&cServer will be restarting in &460 &cseconds!" wait 15 seconds broadcast "&cServer will be restarting in &445 &cseconds!" wait 15 seconds broadcast "&cServer will be restarting in &430 &cseconds!" wait 15 seconds broadcast "&cServer will be restarting in &415 &cseconds!" wait 5 seconds broadcast "&cServer will be restarting in &410 &cseconds!" wait 5 seconds broadcast "&cServer will be restarting in &45 &cseconds!" wait 1 seconds broadcast "&cServer will be restarting in &44 &cseconds!" wait 1 seconds broadcast "&cServer will be restarting in &43 &cseconds!" wait 1 seconds broadcast "&cServer will be restarting in &42 &cseconds!" wait 1 seconds broadcast "&cServer will be restarting in &41 &cseconds!" wait 1 seconds broadcast "&4&l%player% &chas restarted the server!" execute console command "stop" command /clearchat: permission: clearchat.use permission message: &cYou do not have the required permissions to use this command. aliases: cc, chatclear trigger: loop 500 times: broadcast " " broadcast "&b&lQuadPvP &8» &3Chat was cleared by %player%" command /addstaff <offline player>: permission: op trigger: if arg-1 has permission "staff": add arg-1 to {staff::*} else: if arg-1 does not have permission "staff": send "&cThat player must have the permission node 'staff'" on damage: projectile exists projectile is a snowball set {loc.%attacker%} to attacker's location set {loc.%victim%} to victim's location teleport attacker to {loc.%victim%} teleport victim to {loc.%attacker%} send "&dYou have been put on switcher ball cooldown for 3 seconds!" to attacker send "&aYou have switched places with &2%victim%&a." to attacker send "&cYou have been switched &4%attacker% &cas they hit you with a switcher ball!" to victim on damage: projectile exists projectile is a snowball add 3 to {switchcooldown.%attacker%} on damage: projectile exists projectile is a snowball named "&dSwitcher Ball" if {switchercooldown.%attacker%} >= 3: send "&dYou are currently on cooldown!" to attacker cancel event command /stafflist: trigger: send "&b&lStaff List: &9%{staff::*}%" on right-click: if player's tool is glowstone dust named "&aLauncher": push the player upwards at speed 3 remove glowstone dust from player's held item on right-click: if player's tool is ender pearl named "&9Quick Pearl": cancel event push the player forwards at speed 9 remove ender pearl from player's held item command /custombundle: permission: op trigger: give 16 ender pearl named "&9Quick Pearl" to player give 64 glowstone dust named "&aLauncher" to player give 16 snowball named "&dSwitcher Ball" to player give 64 arrow named "&bFast Bow" to player give 64 blaze rod named "&6Lightning Strike" to player give 16 egg named "&cSlowness Egg" to player give 64 sugar named "&eSpeed Boost" to player send "&aYou have received a bundle of all custom items!" on right-click: if player's held item is arrow named "&bFast Bow": make the player shoot an arrow at velocity 1 make the player shoot an arrow at velocity 2 make the player shoot an arrow at velocity 3 make the player shoot an arrow at velocity 4 make the player shoot an arrow at velocity 5 remove arrow from player's held item every 30 seconds: clear all arrows command /winqp <player>: permission: op trigger: give ender pearl named "&9Quick Pearl" to player on join: teleport player to {spawn} send "&aYou have been sent to KitPvP!" command /setspawn: permission: op trigger: set {spawn} to player's location send "&aSpawn has been set to %{spawn}%" command /spawn: trigger: send "&aYou will be teleported to spawn in 5 seconds" wait 4 seconds send "&aTeleporting..." teleport player to {spawn} every second in "world": execute console command "loopallplayertospawn" command /loopallplayertospawn: permission: op trigger: loop all players: loop-player's world = "world" teleport loop-player to location(-71.45, 107, 127.38, world "kitpvp") send "&aYou have been sent to KitPvP." command /stats [<offline player>]: trigger: if arg is set: send "" send "&c %arg-1%&a's stats!" send "" send "&cKills: &a%{kills.%arg-1%}%" send "&cDeaths: &a%{deaths.%arg-1%}%" send "&cKillstreak: &a%{killstreak.%arg-1%}%" send "&cHighest Killstreak: &a%{highestkillstreak.%arg-1%}%" send "" else: send "" send "&c %player%&a's stats!" send "" send "&cKills: &a%{kills.%player%}%" send "&cDeaths: &a%{deaths.%player%}%" send "&cKillstreak: &a%{killstreak.%player%}%" send "&cHighest Killstreak: &a%{highestkillstreak.%player%}%" send "" command /report <player> <text>: usage: &c/report <player> <reason> trigger: loop all players: if loop-player has permission "staff.report": send " " to loop-player send "&4&l[REPORT] &c%arg-1% &fhas been reported by &a%player% &ffor the reason '&c%arg-2%'&f." to loop-player send " " to loop-player send "&aYour report on &c%arg-1% &ahas been sent to all staff members!" to player on respawn: teleport player to {spawn} on death: set death message to "&c%victim% &fwas killed by &a%attacker% &9[%attacker's health%❤]" command /commandspy <text>: permission: staff.cspy permission message: &cNo perms. usage: &c/cspy (on/off) aliases: cspy trigger: if arg is "on": set {cspy.%player%} to true send "&aCommand spy has been enabled." else: if arg is "off": set {cspy.%player%} to false send "&cCommand spy has been disabled." on command: player's world = "kitpvp" loop all players: if {cspy.%loop-player%} is true: send "&a[CommandSpy] &d%sender% &fexecuted the command &f&n/%complete command%" to loop-player command /rules: trigger: send " " send "&b&l QuadPvP &3&lRules " send " " send "&d1. &6No Swearing." send "&d2. &6No Spamming." send "&d3. &6No excessive caps." send "&d4. &6No racism." send "&d5. &6No homophobia." send "&d6. &6No hacking." send "&d7. &6No advertising." send "&d8. &6No abusing glitches." send "&d9. &6Respect all players." send "" variables: {suggestion.%player%} = " " {suggestion.last.%player%} = " " {suggestions.list::*} = "&dNo suggestions have been made yet, be the first!" command /suggestion [<string>]: trigger: if arg-1 is set: if arg-1 is "help": send "&f[&5Suggestions&f] &a/suggestion help &f- Brings up this help list!" to player send "&f[&5Suggestions&f] &a/suggestion list &f- Brings up all suggestions!" to player send "&f[&5Suggestions&f] &a/suggestion <suggestion> &f- Add a new suggestion!" to player else if arg-1 is "list": send "&f[&5Suggestions&f] %{suggestions.list::*}%" to player else if arg-1 is "clear-all": if player is op: send "&f[&5Suggestions&f] &aYou have successfully reset all suggestions!" to player clear {suggestions.list::*} wait 3 ticks add "&dNo suggestions have been made yet, be the first!" to {suggestions.list::*} else: send "&f[&5Suggestions&f] &cYou do not have permission to use this command!" to player else: if {suggestions.list::*} contains "&5%player%: &d%arg-1%": send "&f[&5Suggestions&f] &cThis suggestion has aleady been made!" to player else: remove "&dNo suggestions have been made yet, be the first!" from {suggestions.list::*} remove "&5%player%: &d%{suggestion.last.%player%}%" from {suggestions.list::*} wait 3 ticks set {suggestion.%player%} to arg-1 set {suggestion.last.%player%} to arg-1 add "&5%player%: &d%arg-1%" to {suggestions.list::*} send "&f[&5Suggestions&f] &aYou have successfully created a new suggestion!" to player send "&f[&5Suggestions&f] &cSending another suggestion will delete your old one!" to player else: make player execute "/suggestion help" command /tps: trigger: send "" send "&8[&b&lTPS&8] &aCurrent TPS: &e%tps%" send "" every 300 seconds: broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 5 minutes" wait 4 minutes broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 60 seconds." wait 15 seconds broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 45 seconds." wait 15 seconds broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 30 seconds." wait 15 seconds broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 15 seconds." wait 5 seconds broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 10 seconds." wait 5 seconds broadcast "&8[&3CLEARLAG&8] &aAll ground items will be cleared in 5 seconds." wait 1 seconds broadcast "&8[&3CLEARLAG&8] &aAll ground items have been cleared." clear all entities command /sudo <text>: permission: op trigger: execute console command "esudo * c:%arg-1%" broadcast "&a%player% &asudo'd everyone." on join: set tab header to "&b&lQuad&3&lPvP &8| &6KitPvP" and footer to "&aQuadPvP.minehut.gg" for player on chat: if message contains "nigger" or "nigga" or "niggas" or "niggers": execute console command "/mute %player% Racism 1 hour" wait 1 seconds execute console command "cc" on respawn: clear player's inventory give iron helmet of protection 1 named "&aKitPvP" to player give iron chestplate of protection 1 named "&aKitPvP" to player give iron leggings of protection 1 named "&aKitPvP" to player give iron boots of protection 1 named "&aKitPvP" to player give iron sword of sharpness 2 and unbreaking 2 named "&aKitPvP" to player give 64 steak named "&aKitPvP" to player give fishing rod of unbreaking 3 named "&aKitPvP" to player give bow of power 1 and unbreaking 1 named "&aKitPvP" to player give 8 golden apple named "&aKitPvP" to player give 32 arrow named "&aKitPvP" to player command /discord: trigger: send "" send " &7[&a&lDISCORD&7]&d<link:https://discord.gg/kduszNm> Click Here to join the discord!" send "" on damage: if attacker's held item is blaze rod named "&6Lightning Strike": strike lightning effect at the victim strike lightning effect at the victim strike lightning effect at the victim strike lightning effect at the victim strike lightning effect at the victim strike lightning effect at the victim damage victim by 4 hearts remove 1 blaze rod from attacker's held item send "&aYou have hit %victim%&a with a Lightning Strike." to attacker send "&cYou was hit with a Lightning Strike by &4%attacker%&c." to victim on join: teleport player to {spawn} command /suicide: trigger: send "&aYou committed suicide :/" execute console command "kill %player%" every 7 minutes: broadcast "" broadcast "&dJoin our discord today! &ahttps://discord.gg/kduszNm" broadcast "" every 3 minutes: broadcast "" broadcast "&aWant to store any items? &aUse /ec!" broadcast "" on command "stats": cancel event send "&cThis command is currently broken." on damage: projectile exists projectile is a egg named "&cSlowness Egg" remove slowness from the victim apply slowness 2 to victim for 5 seconds send "&cYou have received &4Slowness 2 &cfor &45 seconds&c as &4%attacker% &chit you with a slowness egg." to victim send "&aYou have hit &2%victim% &awith a slowness egg&a." to attacker on rightclick on oak sign: clear player's inventory set player's helmet to iron helmet of protection 1 named "&aKitPvP" set player's chestplate to iron chestplate of protection 1 named "&aKitPvP" set player's leggings to iron leggings of protection 1 named "&aKitPvP" set player's boots to iron boots of protection 1 named "&aKitPvP" set slot 0 of player's inventory to iron sword of sharpness 2 and unbreaking 2 named "&aKitPvP" set slot 8 of player's inventory to 64 steak named "&aKitPvP" set slot 1 of player's inventory to fishing rod of unbreaking 3 named "&aKitPvP" set slot 2 of player's inventory to bow of power 1 and unbreaking 1 named "&aKitPvP" set slot 3 of player's inventory to 8 golden apple named "&aKitPvP" set slot 9 of player's inventory to 32 arrow named "&aKitPvP" send title "&cKit Reset!" to player on load: loop all players: send " &c&lWe are reloading a skript file." to loop-player send " &7&oYou may encounter lag." to loop-player on drop: if event-item is golden apple: cancel event send "&cYou can't drop this item." to player on first join: clear player's inventory give iron helmet of protection 1 named "&aKitPvP" to player give iron chestplate of protection 1 named "&aKitPvP" to player give iron leggings of protection 1 named "&aKitPvP" to player give iron boots of protection 1 named "&aKitPvP" to player give iron sword of sharpness 2 and unbreaking 2 named "&aKitPvP" to player give 64 steak named "&aKitPvP" to player give fishing rod of unbreaking 3 named "&aKitPvP" to player give bow of power 1 and unbreaking 1 named "&aKitPvP" to player give 8 golden apple named "&aKitPvP" to player give 32 arrow named "&aKitPvP" to player command /kit <text>: usage: &aAvailable Kits: &fPvP &7(Receiving a kit will clear your inventory) trigger: if arg is "pvp": clear player's inventory give iron helmet of protection 1 named "&aKitPvP" to player give iron chestplate of protection 1 named "&aKitPvP" to player give iron leggings of protection 1 named "&aKitPvP" to player give iron boots of protection 1 named "&aKitPvP" to player give iron sword of sharpness 2 and unbreaking 2 named "&aKitPvP" to player give 64 steak named "&aKitPvP" to player give fishing rod of unbreaking 3 named "&aKitPvP" to player give bow of power 1 and unbreaking 1 named "&aKitPvP" to player give 8 golden apple named "&aKitPvP" to player give 32 arrow named "&aKitPvP" to player command /findplayer <player>: permission: op permission message: &cYou do not have access to this command. trigger: send "&c%arg-1%&a's location: &d%arg-1's location%" to player command /info <offline player>: permission: op trigger: send "&7%arg-1%&7's uuid: &a%arg-1's uuid%" to player send "&7%arg-1%&7's &7ip (masked): &a%arg-1's ip%" to player send "&7%arg-1%&7's ping: &a%arg-1's ping%&ams" to player command /mutechat: permission: mutechat.use trigger: if {mutechat} is false: set {mutechat} to true broadcast "&b&lQuadPvP &8| &cChat has been muted by %player%" else: set {mutechat} to false broadcast "&b&lQuadPvP &8| &aChat has been unmuted by %player%" on chat: if player does not have permission "mutechat.bypass": if {mutechat} is true: cancel event send "&cThe chat is currently muted." on right-click: if player's held item is sugar named "&eSpeed Boost": remove swiftness from the player apply swiftness 1 to player for 7 seconds remove 1 sugar from player's tool send "&aYou have received &2Speed 1 &afor &27 seconds &aby using a &eSpeed Boost&a." to player command /minecraft:me <text>: usage: &cYou do not have access to this command. trigger: send "&cYou do not have access to this command." on death: give 3 golden apple named "&aKitPvP" to attacker add 1 to {newkillstreak.%attacker%} set {newkillstreak.%victim%} to 0 on death: if {newkillstreak.%attacker%} = 3: give enchanted golden apple named "&aKitPvP" to attacker broadcast " " broadcast "&c%attacker% &ahas received 1 enchanted golden apple as they are on a &23 killstreak&a! " broadcast " " on death: if {newkillstreak.%attacker%} = 7: execute console command "givekey %attacker% Gadget" broadcast " " broadcast "&c%attacker% &ahas received 1x &e&lGadget Key &aas they are on a &27 killstreak&a! " broadcast " " on command: if command contains "troll": kick player because "&cLet's not troll." command /plugins: trigger: open virtual chest with 5 rows named "&d&oQuadPvP Plugins" to player format gui slot 44 times of player with cyan glass pane named " " format gui slot 0 of player with cyan glass pane named " " format gui slot 22 of player with shiny paper named " &7&lPLUGIN LIST" with lore " " and " &d&l* &a&oBackToTheRoots" and " &d&l* &a&oEssentials" and " &d&l* &a&oLuckPerms" and " &d&l* &a&oMultiverse-Core" and " &d&l* &a&oSkBee" and " &d&l* &a&oskRayFall*" and " &d&l* &a&oSkript" and " &d&l* &a&oTuSKe*" and " &d&l* &a&oPlayerServer" and " &d&l* &a&oVault" and " &d&l* &a&oWorldEdit" and " &d&l* &a&oWorldGuard" and " " and " &7&oWe have a total " and " &7of &7&o&n&l12&7&o plugins installed. " and " " command /pl: trigger: open virtual chest with 5 rows named "&d&oQuadPvP Plugins" to player format gui slot 44 times of player with cyan glass pane named " " format gui slot 0 of player with cyan glass pane named " " format gui slot 22 of player with shiny paper named " &7&lPLUGIN LIST" with lore " " and " &d&l* &a&oBackToTheRoots" and " &d&l* &a&oEssentials" and " &d&l* &a&oLuckPerms" and " &d&l* &a&oMultiverse-Core" and " &d&l* &a&oSkBee" and " &d&l* &a&oskRayFall*" and " &d&l* &a&oSkript" and " &d&l* &a&oTuSKe*" and " &d&l* &a&oPlayerServer" and " &d&l* &a&oVault" and " &d&l* &a&oWorldEdit" and " &d&l* &a&oWorldGuard" and " " and " &7&oWe have a total " and " &7of &7&o&n&l12&7&o plugins installed. " and " " command /bukkit:plugins: trigger: open virtual chest with 5 rows named "&d&oQuadPvP Plugins" to player format gui slot 44 times of player with cyan glass pane named " " format gui slot 0 of player with cyan glass pane named " " format gui slot 22 of player with shiny paper named " &7&lPLUGIN LIST" with lore " " and " &d&l* &a&oBackToTheRoots" and " &d&l* &a&oEssentials" and " &d&l* &a&oLuckPerms" and " &d&l* &a&oMultiverse-Core" and " &d&l* &a&oSkBee" and " &d&l* &a&oskRayFall*" and " &d&l* &a&oSkript" and " &d&l* &a&oTuSKe*" and " &d&l* &a&oPlayerServer" and " &d&l* &a&oVault" and " &d&l* &a&oWorldEdit" and " &d&l* &a&oWorldGuard" and " " and " &7&oWe have a total " and " &7of &7&o&n&l12&7&o plugins installed. " and " " command /bukkit:pl: trigger: open virtual chest with 5 rows named "&d&oQuadPvP Plugins" to player format gui slot 44 times of player with cyan glass pane named " " format gui slot 0 of player with cyan glass pane named " " format gui slot 22 of player with shiny paper named " &7&lPLUGIN LIST" with lore " " and " &d&l* &a&oBackToTheRoots" and " &d&l* &a&oEssentials" and " &d&l* &a&oLuckPerms" and " &d&l* &a&oMultiverse-Core" and " &d&l* &a&oSkBee" and " &d&l* &a&oskRayFall*" and " &d&l* &a&oSkript" and " &d&l* &a&oTuSKe*" and " &d&l* &a&oPlayerServer" and " &d&l* &a&oVault" and " &d&l* &a&oWorldEdit" and " &d&l* &a&oWorldGuard" and " " and " &7&oWe have a total " and " &7of &7&o&n&l12&7&o plugins installed. " and " " on break: player's gamemode = survival cancel event send "&cYou are unable to break blocks here." on place: player's gamemode = survival cancel event send "&cYou are unable to place blocks here." on right-click: event-block = oak trapdoor player's gamemode = survival cancel event send "&cYou are unable to use this." on right-click: event-block = jukebox player's gamemode = survival cancel event send "&cYou are unable to use this." on region enter: player has permission "op" send title "&d&lREGION ENTERED" with subtitle "&a&o%region%" for 2 seconds on region leave: player has permission "op" send title "&d&lREGION LEFT" with subtitle "&a&o%region%" for 2 seconds command /ci: trigger: open virtual chest with 3 rows named "&c&oConfirm" to player format gui slot 26 times of player with cyan glass pane named " " format gui slot 0 of player with cyan glass pane named " " format gui slot 13 of player with shiny redstone block named "&4&lCONFIRM" with lore " " and "&c&lTHIS WILL CLEAR YOUR INVENTORY! " and " " to run player command "/ciconfirm" command /clear: trigger: open virtual chest with 3 rows named "&c&oConfirm" to player format gui slot 26 times of player with cyan glass pane named " " format gui slot 0 of player with cyan glass pane named " " format gui slot 13 of player with shiny redstone block named "&4&lCONFIRM" with lore " " and "&c&lTHIS WILL CLEAR YOUR INVENTORY! " and " " to run player command "/ciconfirm" command /ciconfirm: trigger: clear player's inventory send "&aYour inventory has been cleared." on right-click on player: player's gamemode = creative player has permission "op" execute player command "invsee %clicked entity%" on join: add player to {online::*} on quit: remove player from {online::*} command /online: usage: /online trigger: send "&aCurrent online player&7 (%amount of online players%&7): &f%{online::*}%" command /list: usage: /list trigger: send "&aCurrent online player&7 (%amount of online players%&7): &f%{online::*}%" every 1 hour in "kitpvp": broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 1 hour!" broadcast "" wait 15 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 45 minutes!" broadcast "" wait 15 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 30 minutes!" broadcast "" wait 15 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 15 minutes!" broadcast "" wait 5 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 10 minutes!" broadcast "" wait 5 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 5 minutes!" broadcast "" wait 2 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 3 minutes!" broadcast "" wait 1 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 2 minutes!" broadcast "" wait 1 minutes broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 1 minute!" broadcast "" wait 15 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 45 seconds!" broadcast "" wait 15 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 30 seconds!" broadcast "" wait 15 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 15 seconds!" broadcast "" wait 5 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 10 seconds!" broadcast "" wait 5 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 5 seconds!" broadcast "" wait 1 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 4 seconds!" broadcast "" wait 1 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 3 seconds!" broadcast "" wait 1 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 2 seconds!" broadcast "" wait 1 seconds broadcast "" broadcast "&e&lKEY ALL &8| &aThere will be a Gadget Keyall in 1 second!" broadcast "" wait 1 seconds execute console command "keyall Gadget" on first join: broadcast "&a&lNew Player &8| &7Welcome to &b&lQuad&3&lPvP&7, &a%player% &7we hope you enjoy the server!" on right-click: if event-block is dragon egg: cancel event send "&cYou are unable to %event-block%&c." on damage: projectile is arrow send "&a&l%victim%&a's health: &d%victim's health%&c❤" to attacker on walk on lime wool: execute player command "top" command /vanish [<offlineplayer>]: permission: skript.vanish permission: message: &4-> &cPermission denied!. trigger: if arg is not set: if {vanish.%player%} is true: set {vanish.%player%} to false send "&4-> &cYour vanish has been disabled." reveal player from all players else: set {vanish.%player%} to true send "&2-> &2Your vanish has been enabled." loop all players: if loop-player does not have permission "skript.vanish": hide player from loop-player else: if offlineplayer-arg is "%player%": make player execute "/vanish" else: if offlineplayer-arg is online: if {vanish.%offlineplayer-arg%} is true: set {vanish.%offlineplayer-arg%} to false send "&4Your vanish was enabled by &2%player%&a." to arg-1 loop all players: if loop-player does not have permission "skript.vanish": hide offlineplayer-arg from loop-player else: send "&4-> &cPlayer offline." command /v [<text>]: trigger: if arg is not set: make player execute "/vanish" else: make player execute "/vanish %arg%" every second: loop all players: if {vanish.%loop-player%} is true: set loop-player's action bar to "&4-> &cYou are now invisible to all players besides staff! &4<-" on join: if player does not have permission "skript.vanish": loop all players: if {vanish.%loop-player%} is true: hide loop-player from player options: P: &8[&3CLANS&8]&f Version: "1.3.1" on script load: if {clan::names::*} is not set: add "" to {clan::names::*} command /clan [<text>] [<text>] [<text>]: aliases: c, clans trigger: if arg-1 is "create": if {clan::%player's uuid%} is not set: if arg-2 is set: if arg-3 is set: send "{@P} Clan names can only be one word." stop if arg-2 contains "-" or "_" or "." or ";" or ":" or "@" or "," or "/" or "!": send "{@P} Illegal character in your clan name." stop else if {clan::names::*} does not contain arg-2: set {clan::%executor's uuid%} to arg-2 add arg-2 to {clan::names::*} set {clan::owner::%arg-2%} to "%executor%" add "%executor%" to {clan::admins::%arg-2%::*} set {clan::coins::%arg-2%} to 0 add "%executor%" to {clan::memberlist::%arg-2%::*} add 1 to {clan::members::%arg-2%} send "{@P} Clan &6%{clan::%executor's uuid%}%&f created." else: send "{@P} This clan name is taken." else: send "{@P} Enter a clan name." else: send "{@P} You're already in a clan." else if arg-1 is "info": if arg-2 is not set: if {clan::%player's uuid%} is set: send "{@P} Clan &6%{clan::%executor's uuid%}%&f information." send "&7> &cOwner: &f%{clan::owner::%{clan::%player's uuid%}%}%" send "&7> &cAdmins: &f%{clan::admins::%{clan::%player's uuid%}%::*}%" send "" send "&7> &cMembers: &f%{clan::members::%{clan::%player's uuid%}%}%" send "&7> &cMember List: &f%{clan::memberlist::%{clan::%player's uuid%}%::*}%" else: send "{@P} You're not in a clan." else: set {_player} to (arg-2 parsed as player) set {_uuid} to {_player}'s uuid if {clan::%{_uuid}%} is set: send "{@P} Player&6 %{_player}%&f's clan information." send "&7> &cName: &f%{clan::%{_uuid}%}%" send "&7> &cOwner: &f%{clan::owner::%{clan::%{_uuid}%}%}%" send "" send "&7> &cMembers: &f%{clan::members::%{clan::%{_uuid}%}%}%" else: send "{@P} &6%{_player}%&f is not in a clan." else if arg-1 is "delete": if {clan::%executor's uuid%} is set: if {clan::owner::%{clan::%executor's uuid%}%} = executor: send "{@P} Clan &6%{clan::%executor's uuid%}%&f deleted." remove {clan::%executor's uuid%} from {clan::names::*} delete {clan::owner::%{clan::%player's uuid%}%} delete {clan::coins::%{clan::%player's uuid%}%} delete {clan::admins::%{clan::%player's uuid%}%::*} delete {clan::members::%{clan::%player's uuid%}%} loop {clan::memberlist::%{clan::%player's uuid%}%::*}: set {_player} to loop-value parsed as player set {_uuid} to {_player}'s uuid delete {clan::memberlist::%{clan::%player's uuid%}%::*} wait 3 ticks delete {clan::%{_uuid}%} else: send "{@P} Only the clan owner can delete the clan." else: send "{@P} You are not in a clan." else if arg-1 is "invite": if {clan::%player's uuid%} is set: if {clan::admins::%{clan::%player's uuid%}%::*} contains executor: set {_player} to (arg-2 parsed as player) set {_uuid} to {_player}'s uuid if arg-2 is set: if {clan::memberlist::%{clan::%player's uuid%}%::*} does not contain {_player}: set {clans::request::%{_uuid}%} to {clan::%executor's uuid%} send "{@P} Invited &6%arg-2%&f to the clan." to executor send "{@P} You have been invited to join &6%{clan::%executor's uuid%}%&f by &6%executor%&f." to {_player} loop {clan::memberlist::%{clan::%executor's uuid%}%::*}: send "{@P} &6%arg-2%&f has been invited to join the clan by &6%executor%&f." to loop-value parsed as player else if: send "{@P} This player is already in your clan." else: send "{@P} Enter a player." else: send "{@P} Only admins can invite players to a clan." else: send "{@P} You are not in a clan." else if arg-1 is "join": if {clan::%executor's uuid%} is not set: if {clans::request::%executor's uuid%} is set: set {clan::%executor's uuid%} to {clans::request::%executor's uuid%} add 1 to {clan::members::%{clan::%executor's uuid%}%} add "%executor%" to {clan::memberlist::%{clans::request::%executor's uuid%}%::*} send "{@P} You have joined &6%{clans::request::%executor's uuid%}%&f." loop {clan::memberlist::%{clan::%executor's uuid%}%::*}: send "{@P} &6%executor%&f has joined the clan." to loop-value parsed as player wait 3 ticks delete {clans::request::%executor's uuid%} else: send "{@P} You have no pending requests." else: send "{@P} You are already in a clan." else if arg-1 is "promote": if {clan::%executor's uuid%} is set: if {clan::admins::%{clan::%player's uuid%}%::*} contains executor: set {_player} to (arg-2 parsed as player) set {_uuid} to {_player}'s uuid if {clan::admins::%{clan::%player's uuid%}%::*} does not contain {_player}: if arg-2 is set: add "%{_player}%" to {clan::admins::%{clan::%executor's uuid%}%::*} loop {clan::memberlist::%{clan::%executor's uuid%}%::*}: send "{@P} &6%{_player}%&f has been made an admin in the clan." to loop-value parsed as player else: send "{@P} Enter a player." else: send "{@P} This player is already an admin." else if arg-1 is "demote": if {clan::%executor's uuid%} is set: if arg-2 is set: if {clan::admins::%{clan::%player's uuid%}%::*} contains executor: set {_player} to (arg-2 parsed as player) set {_uuid} to {_player}'s uuid if {clan::owner::%{clan::%player's uuid%}%} is not {_player}: if {clan::admins::%{clan::%player's uuid%}%::*} contains {_player}: remove "%{_player}%" from {clan::admins::%{clan::%executor's uuid%}%::*} loop {clan::memberlist::%{clan::%executor's uuid%}%::*}: send "{@P} &6%{_player}%&f has been demoted in the clan." to loop-value parsed as player else: send "{@P} This player is not an admin." else: send "{@P} You can not demote the owner." else: send "{@P} Only admins can make another player admin." else: send "{@P} Enter a player." else: send "{@P} You're not in a clan." else if arg-1 is "kick": if {clan::%executor's uuid%} is set: if arg-2 is set: if {clan::admins::%{clan::%player's uuid%}%::*} contains executor: set {_player} to (arg-2 parsed as offline player) set {_uuid} to {_player}'s uuid if {clan::memberlist::%{clan::%player's uuid%}%::*} contains {_player}: loop {clan::memberlist::%{clan::%executor's uuid%}%::*}: send "{@P} &6%{_player}%&f has been kicked from the clan." to loop-value parsed as player remove "%{_player}%" from {clan::admins::%{clan::%executor's uuid%}%::*} remove "%{_player}%" from {clan::memberlist::%{clan::%executor's uuid%}%::*} What's wrong with the skript that won't let me set spawn at the exact location I want?
    1 point
×
×
  • Create New...