commands.txt 220 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976
  1. waitfor(5); //Verhinder Endlos-Schleife on /start commands
  2. setCommandHelps();
  3. command.clear();
  4. //Games
  5. command.add("nextplayer");
  6. command.add("invstats");
  7. command.add("topinvstats");
  8. command.add("removeinvstats");
  9. command.add("sfstats");
  10. command.add("topsfstats");
  11. command.add("removesfstats");
  12. //Vanilla überschreiben
  13. command.add("help");
  14. command.add("butcher");
  15. alias_map = map.new();
  16. command_list = list.new();
  17. command_map = map.new();
  18. command.register("afk", "Toggles afk");
  19. command.register("allsounds", "Plays all sounds");
  20. command.register("answer", "Answers the last private message");
  21. command.register("ass", "Armor Stand Signs");
  22. command.register("back", "Teleports to the last position");
  23. command.register("ban", "Bans a player");
  24. command.register("boost", "Boosts you up to the clouds");
  25. command.register("bug", "Report a bug");
  26. command.register("cli", "Clears items in a radius");
  27. command.register("color", "Shows all colors");
  28. command.register("coords", "Shows infos for the targeted block");
  29. command.register("copyisland", "Copyisland-Commands");
  30. command.register("databank", "Databank-Commands");
  31. command.register("datatools", "Datatools-Commands");
  32. command.register("enderchest", "Shows enderchests");
  33. command.register("error", "Error-Logger");
  34. command.register("errordebug", "Debug-Logger");
  35. command.register("feed", "Fills hunger bar");
  36. command.register("fly", "Toggles fly");
  37. command.register("friend", "Friend-Commands");
  38. command.register("game", "marvs minigame shit");
  39. command.register("gamemode", "Change gamemode");
  40. command.register("gamerule", "Manage gamerules");
  41. command.register("games", "Teleports to games-spawn");
  42. command.register("giveup", "Giveup a quest");
  43. command.register("grow", "Grow seeds");
  44. command.register("hat", "Be fame with a new hat");
  45. command.register("head", "Gives you a player's head");
  46. command.register("heal", "Heals, fills hunger bar and remove effects");
  47. command.register("home", "Manage your homes");
  48. command.register("leave", "Leave a minigame");
  49. command.register("human", "Human-Commands");
  50. command.register("inv", "Inv-Commands");
  51. command.register("iteminfo", "Returns information about an item");
  52. command.register("jail", "Send a player to jail");
  53. command.register("kick", "Kicks a player");
  54. command.register("kill", "Kill yourself");
  55. command.register("lastseen", "Shows the last players online");
  56. command.register("list", "List all players online");
  57. command.register("lock", "No function yet");
  58. command.register("mail", "Mail-Commands");
  59. command.register("memory", "Returns RAM-usage");
  60. command.register("msg", "Send a private message");
  61. command.register("mute", "Mutes a player");
  62. command.register("news", "Send Push-News to all players");
  63. command.register("nickname", "Set a nickname");
  64. command.register("nowb", "Sends no 'is back' message if afk");
  65. command.register("party", "Party-Commands");
  66. command.register("perm", "Manage permissions");
  67. command.register("plant", "Plant seeds");
  68. command.register("playtime", "Shows your playtime");
  69. command.register("plot", "Plot-Commands");
  70. command.register("plough", "Plough dirt around you");
  71. command.register("pvp", "Toggles pvp");
  72. command.register("rank", "Shows your available ranks");
  73. command.register("repair", "Repairs your item in mainhand");
  74. command.register("report", "Report whatever you want");
  75. command.register("say", "[Server] chat message");
  76. command.register("script", "Script-Commands");
  77. command.register("seen", "Returns the last date the player was online");
  78. command.register("senditem", "Sends an itemstack to another player");
  79. command.register("setrank", "");
  80. command.register("setservermessage", "Sets the server-message in the serverlist");
  81. command.register("setspawn", "Changes a spawn");
  82. command.register("shop", "Shop-Commands");
  83. command.register("sign", "Bearbeitet ein Schild");
  84. command.register("silentban", "Bannt einen Spieler ohne Meldung im Chat");
  85. command.register("silentjoin", "Toggled Silentjoins");
  86. command.register("silentkick", "Kickt einen Spieler ohne Meldung im Chat");
  87. command.register("spawn", "Teleportier zum Welt-Spawn");
  88. command.register("speed", "Ändert deine Geschwindigkeit");
  89. command.register("start", "Startet ein Script neu");
  90. command.register("startgame", "Reduziert den Start-Countdown eines Minigames");
  91. command.register("stats", "Statistik-Commands");
  92. command.register("stopadventure", "Bricht ein Abenteuer ab");
  93. command.register("teleport", "Teleportiert einen Spieler oder dich zu einem anderen Spieler");
  94. command.register("tempban", "Bannt einen Spieler für eine bestimmte Zeit");
  95. command.register("ticket", "Ticket-Commands");
  96. command.register("time", "Time-Commands");
  97. command.register("tip", "Tip-Commands");
  98. command.register("top", "Teleportiert an die höchste Stelle der aktuellen Position");
  99. command.register("tpa", "Sendet eine Teleportanfrage an einen Spieler");
  100. command.register("tpahere", "Sendet eine Teleportanfrage an einen Spieler");
  101. command.register("tpaccept", "Akzeptiert eine Teleportanfrage");
  102. command.register("tpaccepthere", "Akzeptiert eine Teleportanfrage");
  103. command.register("tppos", "Teleport zu Koordinaten");
  104. command.register("unban", "Entbannt einen Spieler");
  105. command.register("unjail", "Lässt einen Spieler aus dem Gefängnis frei");
  106. command.register("unmute", "Unmutes a player");
  107. command.register("user", "Returns infos about a user");
  108. command.register("vanish", "Vanishes a player");
  109. command.register("var", "Liest Variablen aus Scripts aus");
  110. command.register("voxel", "Radius für Voxel verändern");
  111. command.register("warn", "Warnt einen Spieler");
  112. command.register("warp", "Warp-Commands");
  113. command.register("weather", "Wetter-Commands");
  114. command.register("world", "World-Commands");
  115. command.register("wusi", "Eastereggs for everyone");
  116. command.registerAlias("afklo", "afk");
  117. command.registerAlias("itemdb", "iteminfo");
  118. command.registerAlias("skull", "head");
  119. command.registerAlias("skick", "silentkick");
  120. command.registerAlias("sban", "silentban");
  121. command.registerAlias("tell", "msg");
  122. command.registerAlias("r", "answer");
  123. command.registerAlias("pardon", "unban");
  124. command.registerAlias("mimimi", "help");
  125. command.registerAlias("ci", "copyisland");
  126. command.registerAlias("mem", "memory");
  127. command.registerAlias("tp", "teleport");
  128. command.registerAlias("homes", "home");
  129. command.registerAlias("colour", "color");
  130. command.registerAlias("gm", "gamemode");
  131. command.registerAlias("p", "plot");
  132. command.registerAlias("coord", "coords");
  133. command.registerAlias("dt", "datatools");
  134. command.registerAlias("f", "friend");
  135. command.registerAlias("suicide", "kill");
  136. command.registerAlias("l", "leave");
  137. command.registerAlias("v", "vanish");
  138. command.registerAlias("hub", "leave");
  139. command.registerAlias("fuckit", "giveup");
  140. command.registerAlias("ram", "memory");
  141. sign_tag = block.getTag("minecraft:signs");
  142. crops_tag = block.getTag("minecraft:crops");
  143. dirt_tag = block.getTag("forge:dirt");
  144. gamesspawn = world.getGamesSpawn();
  145. serverspawn = world.getServerSpawn();
  146. prefix_tips = "§eTips";
  147. prefix_lock = "§eLock";
  148. prefix_commands = "§6Commands";
  149. prefix_friends = "§5Friends";
  150. prefix_world = "§6World";
  151. prefix_jail = "§5Jail";
  152. prefix_quest = "§dQuest";
  153. prefix_perms = "§6Perms";
  154. prefix_datatools = "§6DataTools";
  155. prefix_human = "§6Human";
  156. prefix_plot = "§dPlots";
  157. list = getScriptVar("block_commands_list");
  158. if(list == null) {
  159. list = list.new();
  160. setScriptVar("block_commands_list", list);
  161. }
  162. afk_map = getScriptVar("afk_map");
  163. if(afk_map == null) {
  164. afk_map = map.new();
  165. setScriptVar("afk_map", afk_map);
  166. } else {
  167. //Alle Spieler, die AFK waren, wieder als AFK registrieren
  168. iter = map.iterator(afk_map);
  169. while(hasNext(iter)) {
  170. element = next(iter);
  171. player = player.get(map.getKey(element));
  172. if(player != null) {
  173. setAfk(player, true);
  174. }
  175. }
  176. }
  177. friend_requests = map.new();
  178. lock_chests = map.new();
  179. chatbuffer = map.new();
  180. tpa_request = list.new();
  181. answer_map = map.new();
  182. warninglist = list.new();
  183. plotpos1 = map.new();
  184. plotpos2 = map.new();
  185. invseeids = set.new();
  186. fields = set.new();
  187. vanish_set = set.new();
  188. butcher_set = set.new();
  189. set.add(butcher_set, "zombie");
  190. set.add(butcher_set, "zombie_villager");
  191. set.add(butcher_set, "husk");
  192. set.add(butcher_set, "skeleton");
  193. set.add(butcher_set, "creeper");
  194. set.add(butcher_set, "enderman");
  195. set.add(butcher_set, "pillager");
  196. set.add(butcher_set, "spider");
  197. permgroupToRank = map.new();
  198. map.add(permgroupToRank, "admin", "§cAdmin");
  199. map.add(permgroupToRank, "builder", "§5Builder");
  200. map.add(permgroupToRank, "vip", "§5VIP");
  201. map.add(permgroupToRank, "dev", "§5Dev");
  202. map.add(permgroupToRank, "supporter", "§bSupport");
  203. map.add(permgroupToRank, "mod", "§9Mod");
  204. map.add(permgroupToRank, "yt", "§5YT");
  205. map.add(permgroupToRank, "sponsor", "§5Sponsor");
  206. permgroupsmap = map.new();
  207. map.add(permgroupsmap, "worldedit", 1);
  208. map.add(permgroupsmap, "admin", 2);
  209. map.add(permgroupsmap, "builder", 3);
  210. map.add(permgroupsmap, "vip", 4);
  211. map.add(permgroupsmap, "dev", 5);
  212. map.add(permgroupsmap, "teleport", 6);
  213. map.add(permgroupsmap, "supporter", 9);
  214. map.add(permgroupsmap, "streamer", 11);
  215. map.add(permgroupsmap, "mod", 12);
  216. map.add(permgroupsmap, "yt", 13);
  217. map.add(permgroupsmap, "sponsor", 14);
  218. map.add(permgroupsmap, "bypass", 15);
  219. permgroupsmap2 = map.new();
  220. map.add(permgroupsmap2, 1, "worldedit");
  221. map.add(permgroupsmap2, 2, "admin");
  222. map.add(permgroupsmap2, 3, "builder");
  223. map.add(permgroupsmap2, 4, "vip");
  224. map.add(permgroupsmap2, 5, "dev");
  225. map.add(permgroupsmap2, 6, "teleport");
  226. map.add(permgroupsmap2, 9, "supporter");
  227. map.add(permgroupsmap2, 11, "streamer");
  228. map.add(permgroupsmap2, 12, "mod");
  229. map.add(permgroupsmap2, 13, "yt");
  230. map.add(permgroupsmap2, 14, "sponsor");
  231. map.add(permgroupsmap2, 15, "bypass");
  232. monthlist = map.new();
  233. map.add(monthlist, 1, "Jan");
  234. map.add(monthlist, 2, "Feb");
  235. map.add(monthlist, 3, "Mar");
  236. map.add(monthlist, 4, "Apr");
  237. map.add(monthlist, 5, "May");
  238. map.add(monthlist, 6, "Jun");
  239. map.add(monthlist, 7, "Jul");
  240. map.add(monthlist, 8, "Aug");
  241. map.add(monthlist, 9, "Sep");
  242. map.add(monthlist, 10, "Oct");
  243. map.add(monthlist, 11, "Nov");
  244. map.add(monthlist, 12, "Dec");
  245. monthdays = map.new();
  246. map.add(monthdays, 1, 31);
  247. map.add(monthdays, 2, 28);
  248. map.add(monthdays, 3, 31);
  249. map.add(monthdays, 4, 30);
  250. map.add(monthdays, 5, 31);
  251. map.add(monthdays, 6, 30);
  252. map.add(monthdays, 7, 31);
  253. map.add(monthdays, 8, 31);
  254. map.add(monthdays, 9, 30);
  255. map.add(monthdays, 10, 31);
  256. map.add(monthdays, 11, 30);
  257. map.add(monthdays, 12, 31);
  258. easter_eggs = list.new();
  259. list.add(easter_eggs, "kajetan is the founder of wusi in our community.");
  260. list.add(easter_eggs, "wusi means everything and nothing.");
  261. list.add(easter_eggs, "The first rule of wusi is: You do not talk about wusi.");
  262. list.add(easter_eggs, "§7#owner: §rfuck rules, you are owner.");
  263. list.add(easter_eggs, "§7#owner: §rpeople do not really like you, they just want permissions from you.");
  264. list.add(easter_eggs, "§7#owner: §rlet bugs sink through to everybody before fixing them.");
  265. list.add(easter_eggs, "§7#admin: §rfeel bad because you have less permissions than devs.");
  266. list.add(easter_eggs, "§7#admin: §rtemp ban users if you are in a bad mood.");
  267. list.add(easter_eggs, "§7#admin: §rabuse the summon command at least once.");
  268. list.add(easter_eggs, "§7#admin: §rnever pay the server bill on time, this would make owners life easier.");
  269. list.add(easter_eggs, "§7#admin: §rbeg for permissions, it works.");
  270. list.add(easter_eggs, "§7#admin: §roccasionally write wrong commands like 7ban *insert annoying player*.");
  271. list.add(easter_eggs, "§7#admin: §ryou can not pretend to be a girl because people know you.");
  272. list.add(easter_eggs, "§7#admin: §ranswer no before you hear the question.");
  273. list.add(easter_eggs, "§7#developer: §ryou can do whatever you want.");
  274. list.add(easter_eggs, "§7#developer: §rtemp ban admins with the help of snuviscript because you can.");
  275. list.add(easter_eggs, "§7#developer: §ryou can control permissions, do not ask for them.");
  276. list.add(easter_eggs, "§7#developer: §rrequest already built in features at least once.");
  277. list.add(easter_eggs, "§7#developer: §rcomplain about bugs you made.");
  278. list.add(easter_eggs, "§7#developer: §rblame your bugs on the owner.");
  279. list.add(easter_eggs, "§7#developer: §rif you can not blame your bugs on the owner try other developers.");
  280. list.add(easter_eggs, "§7#developer: §rpeople will never notice your efforts.");
  281. list.add(easter_eggs, "§7#developer: §rpretend something is impossible if you do not want to program it.");
  282. list.add(easter_eggs, "§7#developer: §rprogram things like you want them, you do not care about others.");
  283. list.add(easter_eggs, "§7#developer: §ryou have no idea what the user wants.");
  284. list.add(easter_eggs, "§7#builder: §rnobody is allowed to touch your buildings, you are the best.");
  285. list.add(easter_eggs, "§7#builder: §rif you haven´t got any motivation to build play another game.");
  286. list.add(easter_eggs, "§7#builder: §rif a snuvi developer needs buildings for quests pretend to be afk.");
  287. list.add(easter_eggs, "§7#builder: §rpeople will notice your efforts but claim they could do it better.");
  288. list.add(easter_eggs, "§7#builder: §ruse spruce or dark oak wood.");
  289. list.add(easter_eggs, "§7#vip: §ryou seem to be a very special snowflake, maybe you are just a girl and the team likes you.");
  290. list.add(easter_eggs, "§7#vip: §rusers hate ya cause they aint ya.");
  291. list.add(easter_eggs, "§7#vip: §rshow off with your real life connections to the staff.");
  292. list.add(easter_eggs, "§7#user: §rnever mess with snuvi developer, they are like god and have connections to god.");
  293. list.add(easter_eggs, "§7#user: §rfirst rule about permissions, dont talk about permissions.");
  294. list.add(easter_eggs, "§7#user: §rwear a girl skin to get presents.");
  295. list.add(easter_eggs, "§7#user: §rwear a girl skin to get attention from desperate boys.");
  296. list.add(easter_eggs, "§7#user: §rbe a girl or pretend to, people will be nicer to you.");
  297. list.add(easter_eggs, "§7#user: §rask before you think.");
  298. list.add(easter_eggs, "§7#user: §rask for an admin on first join, in general ask for an admin.");
  299. list.add(easter_eggs, "§7#user: §rnever appreciate what a developer has done.");
  300. list.add(easter_eggs, "§7#user: §rnever say things like great server to anybody else than the admins, only admins work on the server.");
  301. list.add(easter_eggs, "§7#user: §rblame your wrong usage of things on the developers.");
  302. list.add(easter_eggs, "§7#user: §rnever see the problem in yourself, feel free to say things like stupid server.");
  303. list.add(easter_eggs, "§7#user: §rtry griefing blocks on your first join to show dominance.");
  304. list.add(easter_eggs, "§7#user: §rwear a stupid skin on your first join to make a good first impression.");
  305. list.add(easter_eggs, "§7#user: §rgive yourself a name containing HD, LP or something else, this way staff knows you are a great youtuber.");
  306. list.add(easter_eggs, "§7#user: §rask things at least twice, pretend on having not seen the first answer.");
  307. list.add(easter_eggs, "§7#user: §rtell everbody your microphone is broken to get rid of others who want to voice chat with you.");
  308. list.add(easter_eggs, "§7#user: §rtry /op on yourself at least once.");
  309. list.add(easter_eggs, "§7#user: §rask when the next update comes, right after an update.");
  310. list.add(easter_eggs, "§7#user: §rif you don´t unterstand something spam the chat. Expect immediate answers.");
  311. list.add(easter_eggs, "§7#user: §r'it doesn't work' is your only phrase when you tell developers about a bug you've found.");
  312. list.add(easter_eggs, "§7#user: §rif you died and lost your stuff ask an admin for help.");
  313. jailed_list = list.new();
  314. ironbars = read.item("minecraft:iron_bars", 1, "§r");
  315. jailmenu = inv.new("222222222");
  316. inv.setItem(jailmenu, 0, ironbars);
  317. inv.setItem(jailmenu, 1, ironbars);
  318. inv.setItem(jailmenu, 2, ironbars);
  319. inv.setItem(jailmenu, 3, ironbars);
  320. inv.setItem(jailmenu, 4, ironbars);
  321. inv.setItem(jailmenu, 5, ironbars);
  322. inv.setItem(jailmenu, 6, ironbars);
  323. inv.setItem(jailmenu, 7, ironbars);
  324. inv.setItem(jailmenu, 8, ironbars);
  325. consoleCommands = set.new();
  326. set.add(consoleCommands, "ban");
  327. set.add(consoleCommands, "silentban");
  328. set.add(consoleCommands, "tempban");
  329. set.add(consoleCommands, "unban");
  330. set.add(consoleCommands, "kick");
  331. set.add(consoleCommands, "silentkick");
  332. set.add(consoleCommands, "say");
  333. set.add(consoleCommands, "list");
  334. set.add(consoleCommands, "lastseen");
  335. set.add(consoleCommands, "start");
  336. set.add(consoleCommands, "msg");
  337. set.add(consoleCommands, "answer");
  338. 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);"));
  339. 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);"));
  340. databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS tipps (tipp_key VARCHAR(20) PRIMARY KEY, tipp_value VARCHAR(255));"));
  341. 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);"));
  342. 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);"));
  343. databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS warps (name VARCHAR(20) NOT NULL PRIMARY KEY, 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);"));
  344. jail_loop_active = false;
  345. coords_loop_active = false;
  346. afk_loop_active = false;
  347. event.load("inv_click");
  348. event.load("inv_close");
  349. event.load("function_key");
  350. event.load("missing_perm");
  351. event.load("missing_command");
  352. event.load("custom_command");
  353. event.load("block_place");
  354. event.load("block_break");
  355. event.load("player_logout");
  356. msg("dev", "§bCommands §rloaded.");
  357. @wait
  358. wait();
  359. if(event == "custom_command") {
  360. //Permission-Check
  361. command = text.toLowerCase(command);
  362. command = map.getOrDefault(alias_map, command, command);
  363. size = list.getSize(args);
  364. if(player == null) {
  365. sender = "SERVER";
  366. sender_name = "SERVER";
  367. if(set.contains(consoleCommands, command)) {
  368. ignoreGoto(command);
  369. goto("wait");
  370. }
  371. msg("SERVER", "Sorry. Not a console-command yet. Go and tell marvinius.");
  372. goto("wait");
  373. }
  374. if(!perm.has(player, command)) {
  375. perm.no(player, command);
  376. goto("wait");
  377. }
  378. sender = player;
  379. sender_name = player.getName(player);
  380. affectedname = player.getName(player);
  381. player_name = player.getName(player);
  382. affectedplayer = player;
  383. if(command != "leave") {
  384. if(player.isCommandBlocked(player)) {
  385. msg.prefix(player, prefix_commands, "§rThe most important rule in competition: Sabotage!");
  386. goto("wait");
  387. }
  388. }
  389. ignoreGoto(command);
  390. goto("wait");
  391. }
  392. if(event == "block_place") {
  393. //Hopper unter gesichertern Kisten sind verboten
  394. if(block_type == "minecraft:hopper") {
  395. b_loc = loc.mod(block_loc, 0, 1, 0);
  396. b_type = block.getType(b_loc);
  397. if(b_type == "minecraft:chest") {
  398. if(!lock.isLocked(b_loc)) {
  399. goto("wait");
  400. }
  401. uuid = player.getUuid(player);
  402. //Spieler muss Owner der Kiste sein
  403. if(!lock.isOwner(b_loc, uuid)) {
  404. cancel = true;
  405. owner_uuid = lock.getOwner(b_loc);
  406. owner_name = player.getName(owner_uuid);
  407. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  408. goto("wait");
  409. }
  410. }
  411. goto("wait");
  412. }
  413. //Kistensicherungen
  414. if(block_type == "minecraft:chest") {
  415. chest_loc2 = block.getSecChest(block_loc);
  416. if(chest_loc2 == null) {
  417. goto("wait");
  418. }
  419. if(lock.isLocked(chest_loc2)) {
  420. uuid = player.getUuid(player);
  421. //Spieler muss Owner der Kiste sein
  422. if(!lock.isOwner(chest_loc2, uuid)) {
  423. cancel = true;
  424. owner_uuid = lock.getOwner(chest_loc2);
  425. owner_name = player.getName(owner_uuid);
  426. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  427. goto("wait");
  428. }
  429. //Sicherung erweitern
  430. lock.expand(block_loc, chest_loc2);
  431. msg.prefix(player, prefix_lock, "§rSecurity expanded.");
  432. goto("wait");
  433. }
  434. }
  435. goto("wait");
  436. }
  437. if(event == "block_break") {
  438. //Kistensicherungen
  439. if(block_type == "minecraft:chest") {
  440. if(lock.isLocked(block_loc)) {
  441. uuid = player.getUuid(player);
  442. //Spieler muss Owner der Kiste sein
  443. if(!lock.isOwner(block_loc, uuid)) {
  444. cancel = true;
  445. owner_uuid = lock.getOwner(block_loc);
  446. owner_name = player.getName(owner_uuid);
  447. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  448. goto("wait");
  449. }
  450. //Sicherung entfernen
  451. lock.remove(block_loc);
  452. chest_loc2 = block.getSecChest(block_loc);
  453. if(chest_loc2 == null) {
  454. lock.remove(chest_loc2);
  455. }
  456. msg.prefix(player, prefix_lock, "§rSecurity removed.");
  457. goto("wait");
  458. }
  459. }
  460. goto("wait");
  461. }
  462. if(event == "missing_command") {
  463. if(player == null) { //--> Server
  464. player = "SERVER";
  465. if(command_name == null) {
  466. msg.prefix(player, prefix_commands, concat("Missing Command"));
  467. goto("wait");
  468. }
  469. }
  470. msg.prefix(player, prefix_commands, concat("No command ", command_name));
  471. goto("wait");
  472. }
  473. if(event == "player_logout") {
  474. setAfk(player, false);
  475. list.remove(jailed_list, player.getUuid(player));
  476. if(player.hasQuest2(player)) {
  477. script_id = quest.getFromPlayer(player);
  478. script = script.getFromId(script_id);
  479. setScriptVar("player", player);
  480. script.callEvent("quest_term", script);
  481. quest.term(script, player);
  482. }
  483. goto("wait");
  484. }
  485. if(event == "missing_perm") {
  486. if(player == null) { //--> Server
  487. player = "SERVER";
  488. if(command_name == null) {
  489. msg.prefix(player, prefix_commands, concat("Missing Perm"));
  490. goto("wait");
  491. }
  492. }
  493. perm.no(player, command_name);
  494. goto("wait");
  495. }
  496. if(event == "inv_click") {
  497. //inv see
  498. if(set.contains(invseeids, inv_id)) {
  499. //On inv_click in an invsee inventory
  500. text.split(split_list, " ", inv_name);
  501. p_name = list.getIndex(split_list, 2);
  502. p = read.player(p_name);
  503. if(p == null) {
  504. inv.close(player);
  505. msg.prefix(sender_name, prefix_commands, "This player is no longer online. Use /inv load <player> and /inv save <player> to overwrite an offline player's inventory.");
  506. goto("wait");
  507. }
  508. //Transmit item
  509. player.removeItem(p, item);
  510. safeGiveItemPlayer(player, item);
  511. inv.setItem(inv, inv_slot, read.item("minecraft:air"));
  512. inv.update(player);
  513. }
  514. //settings
  515. if(inv_name == "§8Settings") {
  516. if(inv_slot == 0) {
  517. new_value = !player.getAutoCloseDoor(player);
  518. player.setAutoCloseDoor(player, new_value);
  519. inv.setItem(inv, inv_slot, read.item("minecraft:oak_door", 1, "§fAuto Door-Close", new_value));
  520. }
  521. elseif(inv_slot == 1) {
  522. new_value = !player.doesAcceptTpaRequests(player);
  523. player.acceptTpaRequests(player, new_value);
  524. inv.setItem(inv, inv_slot, read.item("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", new_value));
  525. }
  526. elseif(inv_slot == 2) {
  527. new_value = !showCoords.get(player);
  528. showCoords.set(player, new_value);
  529. inv.setItem(inv, inv_slot, read.item("minecraft:compass", 1, "§fShow Coords", new_value));
  530. if(new_value) {
  531. if(!coords_loop_active) {
  532. sgoto(30, "coordsloop");
  533. }
  534. } else {
  535. display.remove(player, 30);
  536. }
  537. }
  538. elseif(inv_slot == 3) {
  539. new_value = !player.hasSittingActivated(player);
  540. player.activateSitting(player, new_value);
  541. inv.setItem(inv, inv_slot, read.item("minecraft:oak_stairs", 1, "§fStair-Sitting", new_value));
  542. }
  543. inv.update(player);
  544. }
  545. goto("wait");
  546. }
  547. if(event == "inv_close") {
  548. if(set.contains(invseeids, inv_id)) {
  549. set.remove(invseeids, inv_id);
  550. }
  551. goto("wait");
  552. }
  553. if(event == "function_key") {
  554. if(key == 1) {
  555. inv = inv.new("333333333");
  556. inv.setItem(inv, 0, read.item("minecraft:oak_door", 1, "§fAuto Door-Close", player.getAutoCloseDoor(player)));
  557. inv.setItem(inv, 1, read.item("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", player.doesAcceptTpaRequests(player)));
  558. inv.setItem(inv, 2, read.item("minecraft:compass", 1, "§fShow Coords", showCoords.get(player)));
  559. inv.setItem(inv, 3, read.item("minecraft:oak_stairs", 1, "§fStair-Sitting", player.hasSittingActivated(player)));
  560. inv.open(inv, player, "§8Settings");
  561. }
  562. goto("wait");
  563. }
  564. goto("wait");
  565. @vanish
  566. //vanish [on/off] [player]
  567. if(size == 0) {
  568. if(set.contains(vanish_set, player.getUuid(affectedplayer))) {
  569. bool = "off";
  570. } else {
  571. bool = "on";
  572. }
  573. }
  574. if(size >= 1) {
  575. bool = list.getIndex(args, 0);
  576. }
  577. if(size == 2) {
  578. affectedname = list.getIndex(args, 1);
  579. affectedplayer = read.player(affectedname);
  580. affectedname = player.getName(affectedplayer);
  581. if(affectedplayer == null) {
  582. msg.prefix(player, prefix_commands, "This player is not online.");
  583. goto("wait");
  584. }
  585. }
  586. if(bool == "on") {
  587. if(affectedname != player_name) {
  588. msg.prefix(player, prefix_commands, concat(affectedname, " has been vanished."));
  589. msg.prefix(affectedplayer, prefix_commands, concat("You have been vanished by ", player_name, "."));
  590. } else {
  591. msg.prefix(affectedplayer, prefix_commands, "You are vanished.");
  592. }
  593. set.add(vanish_set, player.getUuid(affectedplayer));
  594. player.hide(affectedplayer);
  595. } elseif(bool == "off") {
  596. if(affectedname != player_name) {
  597. msg.prefix(player, prefix_commands, concat(affectedname, " is no longer vanished."));
  598. msg.prefix(affectedplayer, prefix_commands, concat("You are no longer vanished caused by ", player_name, "."));
  599. } else {
  600. msg.prefix(affectedplayer, prefix_commands, "You are no longer vanished.");
  601. }
  602. set.remove(vanish_set, player.getUuid(affectedplayer));
  603. player.show(affectedplayer);
  604. } else {
  605. msg.prefix(player, prefix_commands, "§r/vanish [on/off] [player]");
  606. }
  607. goto("wait");
  608. @user
  609. if(size == 0) {
  610. p_name = player.getName(player);
  611. p_uuid = player.getUuid(p_name);
  612. } else {
  613. if(!perm.has(player, "user.other")) {
  614. perm.no(player, "user.other");
  615. goto("wait");
  616. }
  617. p_name = list.getIndex(args, 0);
  618. if(!checkIfEverOnline(p_name)) {
  619. msg.prefix(player, prefix_commands, "This player has never been online.");
  620. goto("wait");
  621. }
  622. p_uuid = player.getUuid(p_name);
  623. p_name = player.getName(p_uuid);
  624. }
  625. p = read.player(p_name);
  626. p_id = player.getId(p_uuid);
  627. if(p == null) {
  628. p_or_id = p_id;
  629. } else {
  630. p_or_id = p;
  631. }
  632. table = table.new("§8", 6, 24);
  633. msg(player, table.getStart(table));
  634. msg(player, table.get(table, "Player", p_name));
  635. msg(player, table.getMiddle(table));
  636. msg(player, table.get(table, "Playtime", text.number(math.roundDown(player.getTotalPlaytime(p_or_id) / 60))));
  637. msg(player, table.get(table, "Joins", text.number(player.getJoins(p_or_id))));
  638. msg(player, table.get(table, "First Join", getDateString(player.getFirstJoin(p_or_id))));
  639. msg(player, table.get(table, "Last Join", getDateString(player.getLastJoin(p_or_id))));
  640. msg(player, table.get(table, "UUID", p_uuid));
  641. msg(player, table.get(table, "ID", text.number(p_id)));
  642. msg(player, table.get(table, "Rank", getRank(p_or_id)));
  643. msg(player, table.get(table, "PvP", hasPvpOn(p_or_id)));
  644. msg(player, table.get(table, "Quests", text.number(quest.getCounter(p_or_id))));
  645. msg(player, table.get(table, "Elo", text.number(minigame.getElo(p_or_id))));
  646. msg(player, table.getEnd(table));
  647. goto("wait");
  648. @friend
  649. if(size == 0) {
  650. @friend_syntax
  651. msg.prefix(player, prefix_friends, "§r/friend ...");
  652. msg(player, "§5 - add <player> §rAdds a friend");
  653. msg(player, "§5 - remove <player> §rRemoves a friend");
  654. msg(player, "§5 - list §rLists all your friends");
  655. goto("wait");
  656. }
  657. arg0 = text.toLowerCase(list.getIndex(args, 0));
  658. if(arg0 == "add") {
  659. if(size != 2) {
  660. msg.prefix(player, prefix_friends, "§r/friend add <player>");
  661. goto("wait");
  662. }
  663. friend_name = list.getIndex(args, 1);
  664. if(player_name == friend_name) {
  665. msg.prefix(player, prefix_friends, "You can't invite yourself.");
  666. goto("wait");
  667. }
  668. player_id = player.getId(player);
  669. if(!checkIfEverOnline(friend_name)) {
  670. msg.prefix(player, prefix_friends, "This player has never been online.");
  671. goto("wait");
  672. }
  673. friend_id = player.getId(player.getUuid(friend_name));
  674. if(friend.check(player_id, friend_id)) {
  675. msg.prefix(player, prefix_friends, "This player is already your friend.");
  676. goto("wait");
  677. }
  678. if(map.contains(friend_requests, friend_id)) {
  679. if(map.get(friend_requests, friend_id) == player_id) {
  680. friend.add(player_id, friend_id);
  681. map.remove(friend_requests, friend_id);
  682. msg.prefix(player, prefix_friends, concat("§7", friend_name, "§r is your friend now."));
  683. player.sendMessage(player, friend_name, prefix_friends, concat("§7", player_name, "§r is your friend now."), true);
  684. goto("wait");
  685. }
  686. }
  687. map.add(friend_requests, player_id, friend_id); //Einlader, Eingeladener
  688. friend = read.player(friend_name);
  689. msg.prefix(player, prefix_friends, concat("You sent an invitation to §7", friend_name, "§r."));
  690. player.sendMessage(player, friend_name, prefix_friends, concat("§7", player_name, "§r wants to be your friend."), true);
  691. if(friend != null) {
  692. msg(friend, text.click("§r[§aAccept§r]", concat("/friend add ", player_name)));
  693. }
  694. goto("wait");
  695. }
  696. if(arg0 == "remove") {
  697. if(size != 2) {
  698. msg.prefix(player, prefix_friends, "§r/friend remove <player>");
  699. goto("wait");
  700. }
  701. friend_name = list.getIndex(args, 1);
  702. player_id = player.getId(player);
  703. if(!checkIfEverOnline(friend_name)) {
  704. msg.prefix(player, prefix_friends, "This player has never been online.");
  705. goto("wait");
  706. }
  707. friend_id = player.getId(player.getUuid(friend_name));
  708. if(!friend.check(player_id, friend_id)) {
  709. msg.prefix(player, prefix_friends, "This player isn't your friend.");
  710. goto("wait");
  711. }
  712. friend.delete(player_id, friend_id);
  713. msg.prefix(player, prefix_friends, concat("§7", friend_name, "§r is no longer your friend."));
  714. player.sendMessage(player, friend_name, prefix_friends, concat("§7", player_name, "§r is no longer your friend."), true);
  715. goto("wait");
  716. }
  717. if(arg0 == "list") {
  718. if(size != 1) {
  719. msg.prefix(player, prefix_friends, "/friend list");
  720. goto("wait");
  721. }
  722. player_id = player.getId(player);
  723. friendlist = friend.getList(player_id);
  724. listsize = list.getSize(friendlist);
  725. if(listsize == 0) {
  726. msg.prefix(player, prefix_friends, "You have no friends yet.");
  727. goto("wait");
  728. }
  729. msg(player, "§5Friends:");
  730. for(i = 0; i <= listsize - 1; i++) {
  731. msg(player, "§r- ", list.getIndex(friendlist, i));
  732. }
  733. goto("wait");
  734. }
  735. goto("friend_syntax");
  736. @var
  737. if(size != 2) {
  738. msg.prefix(player, prefix_commands, "§r/var <id> <varname>");
  739. goto("wait");
  740. }
  741. script_id = list.getIndex(args, 0);
  742. script = script.getFromId(script_id);
  743. if(script == null) {
  744. msg.prefix(player, "§dScript", "Invalid id");
  745. goto("wait");
  746. }
  747. var_name = list.getIndex(args, 1);
  748. var = script.getVar(script, var_name);
  749. msg.prefix(player, "§dScript", concat(var_name, " = ", var));
  750. goto("wait");
  751. @lock
  752. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  753. if(!isSurvWorldName(world_name)) {
  754. msg.prefix(player, prefix_commands, "Only available in survival-worlds.");
  755. goto("wait");
  756. }
  757. if(size == 0) {
  758. @lockhelp
  759. msg.prefix(player, prefix_lock, "§r/lock ...");
  760. msg(player, "§e§y- create §rAdds a security");
  761. msg(player, "§e§y- delete §rRemoves a security");
  762. msg(player, "§e§y- share <player> §rShares the security with a player");
  763. msg(player, "§e§y- kick <player> §rremoves a player from a security");
  764. goto("wait");
  765. }
  766. arg0 = list.getIndex(args, 0);
  767. if(arg0 == "create") {
  768. //Kiste muss angeschaut werden
  769. target_loc = player.getTarget(player, 5, false, false);
  770. type = block.getType(target_loc);
  771. if(type != "minecraft:chest") {
  772. msg.prefix(player, prefix_lock, "You have to look at a chest.");
  773. goto("wait");
  774. }
  775. //Kiste darf nicht bereits gesichert sein
  776. if(lock.isLocked(target_loc)) {
  777. owner_uuid = lock.getOwner(target_loc);
  778. owner_name = player.getName(owner_uuid);
  779. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  780. goto("wait");
  781. }
  782. //Kiste sichern
  783. uuid = player.getUuid(player);
  784. lock.create(target_loc, uuid);
  785. chest_loc2 = block.getSecChest(target_loc);
  786. if(chest_loc2 != null) {
  787. lock.create(chest_loc2, uuid);
  788. }
  789. msg.prefix(player, prefix_lock, "You have locked this chest.");
  790. goto("wait");
  791. }
  792. if(arg0 == "delete") {
  793. //Kiste muss angeschaut werden
  794. target_loc = player.getTarget(player, 5, false, false);
  795. type = block.getType(target_loc);
  796. if(type != "minecraft:chest") {
  797. msg.prefix(player, prefix_lock, "You have to look at a chest.");
  798. goto("wait");
  799. }
  800. //Spieler muss Owner der Kiste sein
  801. if(!lock.isLocked(target_loc)) {
  802. msg.prefix(player, prefix_lock, "This chest isn't locked.");
  803. goto("wait");
  804. }
  805. uuid = player.getUuid(player);
  806. owner_uuid = lock.getOwner(target_loc);
  807. if(owner_uuid != uuid) {
  808. owner_name = player.getName(owner_uuid);
  809. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  810. goto("wait");
  811. }
  812. //Kiste entsichern
  813. lock.remove(target_loc);
  814. chest_loc2 = block.getSecChest(target_loc);
  815. if(chest_loc2 != null) {
  816. lock.remove(chest_loc2);
  817. }
  818. msg.prefix(player, prefix_lock, "You have removed security from this chest.");
  819. goto("wait");
  820. }
  821. if(arg0 == "share") {
  822. if(size < 2) {
  823. msg.prefix(player, prefix_lock, "§r/lock share <player>");
  824. goto("wait");
  825. }
  826. p_name = list.getIndex(args, 1);
  827. if(!checkIfEverOnline(p_name)) {
  828. msg.prefix(player, prefix_lock, "This player has never been online.");
  829. goto("wait");
  830. }
  831. p_uuid = player.getUuid(p_name);
  832. p_name = player.getName(p_uuid);
  833. //Kiste muss angeschaut werden
  834. target_loc = player.getTarget(player, 5, false, false);
  835. type = block.getType(target_loc);
  836. if(type != "minecraft:chest") {
  837. msg.prefix(player, prefix_lock, "You have to look at a chest.");
  838. goto("wait");
  839. }
  840. //Spieler muss Owner der Kiste sein
  841. if(!lock.isLocked(target_loc)) {
  842. msg.prefix(player, prefix_lock, "This chest isn't locked.");
  843. goto("wait");
  844. }
  845. uuid = player.getUuid(player);
  846. owner_uuid = lock.getOwner(target_loc);
  847. if(owner_uuid != uuid) {
  848. owner_name = player.getName(owner_uuid);
  849. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  850. goto("wait");
  851. }
  852. //Kistensicherung erweitern
  853. success = lock.share(target_loc, p_uuid);
  854. if(!success) {
  855. msg.prefix(player, prefix_lock, concat("§e§y", p_name, "§r already has access."));
  856. goto("wait");
  857. }
  858. chest_loc2 = block.getSecChest(target_loc);
  859. if(chest_loc2 != null) {
  860. lock.share(chest_loc2, p_uuid);
  861. }
  862. msg.prefix(player, prefix_lock, concat("§e§y", p_name, "§r has been granted access."));
  863. goto("wait");
  864. }
  865. if(arg0 == "kick") {
  866. if(size < 2) {
  867. msg.prefix(player, prefix_lock, "§r/lock kick <player>");
  868. goto("wait");
  869. }
  870. p_name = list.getIndex(args, 1);
  871. if(!checkIfEverOnline(p_name)) {
  872. msg.prefix(player, prefix_lock, "This player has never been online.");
  873. goto("wait");
  874. }
  875. p_uuid = player.getUuid(p_name);
  876. p_name = player.getName(p_uuid);
  877. //Kiste muss angeschaut werden
  878. target_loc = player.getTarget(player, 5, false, false);
  879. type = block.getType(target_loc);
  880. if(type != "minecraft:chest") {
  881. msg.prefix(player, prefix_lock, "You have to look at a chest.");
  882. goto("wait");
  883. }
  884. //Spieler muss Owner der Kiste sein
  885. if(!lock.isLocked(target_loc)) {
  886. msg.prefix(player, prefix_lock, "This chest isn't locked.");
  887. goto("wait");
  888. }
  889. uuid = player.getUuid(player);
  890. owner_uuid = lock.getOwner(target_loc);
  891. if(owner_uuid != uuid) {
  892. owner_name = player.getName(owner_uuid);
  893. msg.prefix(player, prefix_lock, concat("This chest was locked by §e§y", owner_name, "§r."));
  894. goto("wait");
  895. }
  896. //Owner kann sich nicht selbst entfernen
  897. if(owner_uuid == p_uuid) {
  898. msg.prefix(player, prefix_lock, "The owner can't be removed.");
  899. goto("wait");
  900. }
  901. //Kistensicherung erweitern
  902. success = lock.kick(target_loc, p_uuid);
  903. if(!success) {
  904. msg.prefix(player, prefix_lock, concat("This chest isn't secured §e§y", p_name, "§r."));
  905. goto("wait");
  906. }
  907. chest_loc2 = block.getSecChest(target_loc);
  908. if(chest_loc2 != null) {
  909. lock.kick(chest_loc2, p_uuid);
  910. }
  911. msg.prefix(player, prefix_lock, concat("§e§y", p_name, "§r removed from chest security."));
  912. goto("wait");
  913. }
  914. goto("lockhelp");
  915. @voxel
  916. if(size < 1) {
  917. msg.prefix(player, prefix_commands, "/voxel <radius:1-5>");
  918. goto("wait");
  919. }
  920. radius = list.getIndex(args, 0);
  921. if(!isDouble(radius)) {
  922. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  923. goto("wait");
  924. }
  925. if(radius < 1) {
  926. radius = 1;
  927. }
  928. if(radius > 5) {
  929. radius = 5;
  930. }
  931. map = script.getVar(script.get("Voxel"), "radius_per_player");
  932. map.add(map, player.getUuid(player), radius);
  933. script.setVar(script.get("Voxel"), "radius_per_player", map);
  934. msg.prefix(player, prefix_commands, concat("Set radius to ", text.number(radius), "."));
  935. goto("wait");
  936. @setservermessage
  937. if(size < 1) {
  938. msg.prefix(player, prefix_commands, "/setservermessage <text>");
  939. goto("wait");
  940. }
  941. message = text.concatList(args, " ", 0, size - 1);
  942. message = text.replace(message, "&", "§");
  943. setMOTD(message);
  944. msg.prefix(player, prefix_commands, "Server-Message gesetzt");
  945. goto("wait");
  946. @error
  947. if(size < 1) {
  948. msg.prefix(player, "§cError", "§r/error ...");
  949. msg(player, "§c - list §rLists all errors");
  950. msg(player, "§c - clear §rDeletes all errors");
  951. goto("wait");
  952. }
  953. arg0 = list.getIndex(args, 0);
  954. if(arg0 == "list") {
  955. error_size = error.getSize();
  956. if(error_size == 0) {
  957. msg.prefix(player, "§cError", "No errors existing.");
  958. goto("wait");
  959. }
  960. for(i = 0; i < error_size; i++) {
  961. msg(player, error.getIndex(i));
  962. }
  963. goto("wait");
  964. }
  965. if(arg0 == "clear") {
  966. error.clear();
  967. msg.prefix(player, "§cError", "All errors deleted.");
  968. goto("wait");
  969. }
  970. goto("wait");
  971. @errordebug
  972. if(size < 1) {
  973. msg.prefix(player, "§cErrorDebugs", "§r/errordebug ...");
  974. msg(player, "§c - list §rLists all errordebugs");
  975. msg(player, "§c - clear §rDeletes all errordebugs");
  976. msg(player, "§c - toggle §rToggles errordebugs");
  977. goto("wait");
  978. }
  979. arg0 = list.getIndex(args, 0);
  980. if(arg0 == "list") {
  981. error_size = debug.getSize();
  982. if(error_size == 0) {
  983. msg.prefix(player, "§cErrorDebugs", "No errordebugs existing.");
  984. goto("wait");
  985. }
  986. for(i = 0; i < error_size; i++) {
  987. msg(player, debug.getIndex(i));
  988. }
  989. goto("wait");
  990. }
  991. if(arg0 == "clear") {
  992. debug.clear();
  993. msg.prefix(player, "§cErrorDebugs", "All errordebugs deleted.");
  994. goto("wait");
  995. }
  996. if(arg0 == "toggle") {
  997. new_value = !perm.has(player, "script.debug");
  998. player.showDebug(player, new_value);
  999. if(new_value) {
  1000. msg.prefix(player, prefix_commands, "Debug messages are now shown.");
  1001. } else {
  1002. msg.prefix(player, prefix_commands, "Debug messages are now hidden.");
  1003. }
  1004. goto("wait");
  1005. }
  1006. goto("wait");
  1007. @hat
  1008. item = entity.getEquip(player, "hand");
  1009. if(item.getType(item) == "minecraft:air") {
  1010. msg.prefix(player, prefix_commands, "You have to hold an item in hand.");
  1011. goto("wait");
  1012. }
  1013. entity.setEquip(player, "head", item);
  1014. entity.setEquip(player, "hand", read.item("minecraft:air"));
  1015. goto("wait");
  1016. @news
  1017. if(size < 1) {
  1018. msg.prefix(player, prefix_commands, "/news <text>");
  1019. goto("wait");
  1020. }
  1021. message = text.concatList(args, " ", 0, size - 1);
  1022. online_list = players.toList();
  1023. for(i = 0; i < list.getSize(online_list); i++) {
  1024. p = list.getIndex(online_list, i);
  1025. title.reset(p);
  1026. title.setSub(p, concat("by ", player_name));
  1027. title.send(p, "§cNews");
  1028. msg.prefix(p, "§4News", concat("§c", message));
  1029. }
  1030. goto("wait");
  1031. @spawn
  1032. if(size == 1) {
  1033. if(!perm.has(player, "teleport.other")) {
  1034. perm.no(player, "teleport.other");
  1035. goto("wait");
  1036. }
  1037. affectedname = list.getIndex(args, 0);
  1038. affectedplayer = read.player(affectedname);
  1039. if(affectedplayer == null) {
  1040. msg.prefix(player, prefix_commands, "This player is not online.");
  1041. goto("wait");
  1042. }
  1043. }
  1044. if(player.hasMinigame(affectedplayer)) {
  1045. if(size == 1) {
  1046. msg(player, "§rThe player can't be teleported now.");
  1047. } else {
  1048. msg(player, "§rYou can't teleport now.");
  1049. }
  1050. goto("wait");
  1051. }
  1052. if(player.teleport(affectedplayer, serverspawn, true)) {
  1053. if(player == affectedplayer) {
  1054. msg.prefix(affectedplayer, prefix_commands, "You have been teleported to the spawn.");
  1055. } else {
  1056. affectedname = player.getName(affectedplayer);
  1057. msg.prefix(player, prefix_commands, concat(affectedname, " was teleported to the spawn."));
  1058. }
  1059. }
  1060. goto("wait");
  1061. @rank
  1062. msg(player, getSpacer());
  1063. rank = getRank(player);
  1064. msg(player, concat("§6Current rank: §r[", rank, "§r]"));
  1065. msg(player, "Choose a rank:");
  1066. //Team-Ränge
  1067. if(perm.has(player, "isOwner")) {
  1068. msg(player, text.click("[§4Owner§r]", concat("/setrank ", player_name, " &4Owner")));
  1069. }
  1070. if(perm.has(player, "isAdmin")) {
  1071. msg(player, text.click("[§cAdmin§r]", concat("/setrank ", player_name, " &cAdmin")));
  1072. }
  1073. if(perm.has(player, "isMod")) {
  1074. msg(player, text.click("[§9Mod§r]", concat("/setrank ", player_name, " &9Mod")));
  1075. }
  1076. if(perm.has(player, "isSupporter")) {
  1077. msg(player, text.click("[§bSupport§r]", concat("/setrank ", player_name, " &bSupport")));
  1078. }
  1079. if(perm.has(player, "isDev")) {
  1080. msg(player, text.click("[§5Dev§r]", concat("/setrank ", player_name, " &5Dev")));
  1081. }
  1082. if(perm.has(player, "isBuilder")) {
  1083. msg(player, text.click("[§5Builder§r]", concat("/setrank ", player_name, " &5Builder")));
  1084. }
  1085. if(perm.has(player, "isVIP")) {
  1086. msg(player, text.click("[§5VIP§r]", concat("/setrank ", player_name, " &5VIP")));
  1087. }
  1088. if(perm.has(player, "isYT")) {
  1089. msg(player, text.click("[§5YT§r]", concat("/setrank ", player_name, " &5YT")));
  1090. }
  1091. if(perm.has(player, "isSponsor")) {
  1092. msg(player, text.click("[§5Sponsor§r]", concat("/setrank ", player_name, " &5Sponsor")));
  1093. }
  1094. //Spielzeit
  1095. playtime = player.getTotalPlaytime(player);
  1096. if(playtime > 12000) { //200 Stunden
  1097. msg(player, text.click("[§6Stammgast§r]", concat("/setrank ", player_name, " &6Stammgast")));
  1098. }
  1099. if(playtime > 60000) { //1000 Stunden
  1100. msg(player, text.click("[§2Legende§r]", concat("/setrank ", player_name, " &2Legende")));
  1101. }
  1102. //Abenteuer
  1103. if(player.isOnAdventure(player)) {
  1104. msg(player, text.click("[§eAbenteurer§r]", concat("/setrank ", player_name, " &eAbenteurer")));
  1105. }
  1106. adventures = player.getAdventureAmounts(player);
  1107. if(adventures == null) {
  1108. adventures = 0;
  1109. }
  1110. if(adventures >= 1) {
  1111. msg(player, text.click("[§6Entdecker§r]", concat("/setrank ", player_name, " &6Entdecker")));
  1112. }
  1113. if(adventures >= 10) {
  1114. msg(player, text.click("[§2Pionier§r]", concat("/setrank ", player_name, " &2Pionier")));
  1115. }
  1116. //Minigames
  1117. if(tjr.getWholeModule(player) == 54) {
  1118. msg(player, text.click("[§cGod of Jump§r]", concat("/setrank ", player_name, " &cGod of Jump")));
  1119. }
  1120. //Default User
  1121. msg(player, text.click("[§bUser§r]", concat("/setrank ", player_name, " &bUser")));
  1122. goto("wait");
  1123. @setrank
  1124. if(size < 2) {
  1125. msg.prefix(player, prefix_commands, "§r/setrank <player> <rank>");
  1126. goto("wait");
  1127. }
  1128. p_name = list.getIndex(args, 0);
  1129. if(!checkIfEverOnline(p_name)) {
  1130. msg.prefix(player, prefix_commands, "This player has never been online.");
  1131. goto("wait");
  1132. }
  1133. p = read.player(p_name);
  1134. if(p == null) {
  1135. msg.prefix(player, prefix_commands, "This player is not online.");
  1136. goto("wait");
  1137. }
  1138. p_name = player.getName(p);
  1139. rank = text.concatList(args, " ", 1, size - 1);
  1140. if(!perm.has(player, "setrank.other")) {
  1141. if(player_name != p_name) {
  1142. perm.no(player, "setrank.other");
  1143. goto("wait");
  1144. }
  1145. noperm = true;
  1146. if(rank == "&4Owner" && perm.has(p, "isOwner")) {
  1147. noperm = false;
  1148. } elseif(rank == "&cAdmin" && perm.has(p, "isAdmin")) {
  1149. noperm = false;
  1150. } elseif(rank == "&9Mod" && perm.has(p, "isMod")) {
  1151. noperm = false;
  1152. } elseif(rank == "&bSupport" && perm.has(p, "isSupporter")) {
  1153. noperm = false;
  1154. } elseif(rank == "&5Builder" && perm.has(p, "isBuilder")) {
  1155. noperm = false;
  1156. } elseif(rank == "&5Dev" && perm.has(p, "isDev")) {
  1157. noperm = false;
  1158. } elseif(rank == "&5VIP" && perm.has(p, "isVIP")) {
  1159. noperm = false;
  1160. } elseif(rank == "&5YT" && perm.has(p, "isYT")) {
  1161. noperm = false;
  1162. } elseif(rank == "&5Sponsor" && perm.has(p, "isSponsor")) {
  1163. noperm = false;
  1164. } elseif(rank == "&bUser" && perm.has(p, "isUser")) {
  1165. noperm = false;
  1166. }
  1167. //Spielzeit
  1168. playtime = player.getTotalPlaytime(p);
  1169. if(rank == "&6Stammgast") {
  1170. if(playtime > 12000) { //200 Stunden
  1171. noperm = false;
  1172. }
  1173. } elseif(rank == "&2Legende") {
  1174. if(playtime > 60000) { //200 Stunden
  1175. noperm = false;
  1176. }
  1177. }
  1178. //Abenteuer
  1179. if(rank == "&eAbenteurer") {
  1180. if(player.isOnAdventure(p)) {
  1181. noperm = false;
  1182. }
  1183. }
  1184. adventures = player.getAdventureAmounts(p);
  1185. if(rank == "&6Entdecker" || rank == "&eAbenteurer") {
  1186. if(adventures != null && adventures >= 1) {
  1187. noperm = false;
  1188. }
  1189. }
  1190. if(rank == "&2Pionier") {
  1191. if(adventures != null && adventures >= 10) {
  1192. noperm = false;
  1193. }
  1194. }
  1195. if(rank == "&cGod of Jump") {
  1196. if(tjr.getWholeModule(player) != 54) {
  1197. noperm = false;
  1198. }
  1199. }
  1200. if(noperm) {
  1201. rank = text.replace(rank, "&", "§");
  1202. msg.prefix(player, prefix_perms, concat("You have no permission for ", rank, "§r."));
  1203. goto("wait");
  1204. }
  1205. }
  1206. if(text.length(rank) >= 20) {
  1207. msg.prefix(player, prefix_commands, "Only 20 letters allowed.");
  1208. goto("wait");
  1209. }
  1210. rank = text.replace(rank, "&", "§");
  1211. setRank(p, rank);
  1212. //Tabliste
  1213. nickname = player.getNickname(p);
  1214. if(isAfk(p)) {
  1215. tab_name = concat("§7§m", nickname);
  1216. } else {
  1217. if(text.startswith(rank, "§", 0)) {
  1218. colorcode = text.subString(rank, 0, 2);
  1219. tab_name = concat(colorcode, nickname);
  1220. } else {
  1221. tab_name = nickname;
  1222. }
  1223. }
  1224. player.setDisplayName(p, tab_name);
  1225. msg.prefix(player, prefix_commands, concat("Rank for ", p_name, " changed to [", rank, "§r]."));
  1226. goto("wait");
  1227. @nowb
  1228. nickname = player.getNickname(player);
  1229. if(removeFormat(nickname) == player_name) {
  1230. player_id = player.getId(player);
  1231. rank = getRank(player_id);
  1232. colorcode = text.subString(rank, 0, 2);
  1233. } else {
  1234. colorcode = "§b";
  1235. }
  1236. if(isAfk(player)) {
  1237. setAfk(player, false);
  1238. msg.prefix(player, prefix_commands, "marvinius whispers to you: Welcome back ;-)");
  1239. player.setDisplayName(player, concat(colorcode, nickname));
  1240. } else {
  1241. msg.prefix(player, prefix_commands, "You are not afk.");
  1242. }
  1243. goto("wait");
  1244. @afk
  1245. nickname = player.getNickname(player);
  1246. if(removeFormat(nickname) == player_name) {
  1247. player_id = player.getId(player);
  1248. rank = getRank(player_id);
  1249. colorcode = text.subString(rank, 0, 2);
  1250. } else {
  1251. colorcode = "§b";
  1252. }
  1253. if(isAfk(player)) {
  1254. msg.prefix("online", prefix_commands, concat(nickname, "§7 is back."));
  1255. setAfk(player, false);
  1256. player.setDisplayName(player, concat(colorcode, nickname));
  1257. } else {
  1258. msg.prefix("online", prefix_commands, concat(nickname, "§7 is afk."));
  1259. setAfk(player, true);
  1260. player.setDisplayName(player, concat("§7§m", nickname));
  1261. }
  1262. if(!afk_loop_active) {
  1263. sgoto(30, "afk_loop");
  1264. }
  1265. goto("wait");
  1266. @silentjoin
  1267. silentjoin = player.getSilentJoin(player);
  1268. if(silentjoin) {
  1269. player.setSilentJoin(player, false);
  1270. msg.prefix(player, prefix_commands, "Silentjoin deactivated.");
  1271. } else {
  1272. player.setSilentJoin(player, true);
  1273. msg.prefix(player, prefix_commands, "Silentjoin activated.");
  1274. }
  1275. goto("wait");
  1276. @jailloop
  1277. size = list.getSize(jailed_list);
  1278. for(i = 0; i < size; i++) {
  1279. p_name = player.getName(list.getIndex(jailed_list, i));
  1280. showJail(p_name);
  1281. }
  1282. if(size > 0) {
  1283. jail_loop_active = true;
  1284. sgoto(5, "jailloop");
  1285. } else {
  1286. jail_loop_active = false;
  1287. }
  1288. goto("wait");
  1289. @coordsloop
  1290. list = players.toList();
  1291. size = list.getSize(list);
  1292. for(i = 0; i < size; i++) {
  1293. p = list.getIndex(list, i);
  1294. if(showcoords.get(p)) {
  1295. p_loc = entity.getLocation(p);
  1296. display.add(p, 30, concat("§6Koords: §r", text.number(loc.getCoord(p_loc, "bx")), " / ", text.number(loc.getCoord(p_loc, "by")), " / ", text.number(loc.getCoord(p_loc, "bz"))));
  1297. }
  1298. }
  1299. if(size > 0) {
  1300. coords_loop_active = true;
  1301. sgoto(30, "coordsloop");
  1302. } else {
  1303. coords_loop_active = false;
  1304. }
  1305. goto("wait");
  1306. @afk_loop
  1307. afk_map = getScriptVar("afk_map");
  1308. iter = map.iterator(afk_map);
  1309. while(hasNext(iter)) {
  1310. element = next(iter);
  1311. yaw = map.getValue(element);
  1312. player = player.get(map.getKey(element));
  1313. if(player != null) {
  1314. if(yaw != loc.getYaw(entity.getLocation(player))) {
  1315. player_name = player.getName(player);
  1316. nickname = player.getNickname(player);
  1317. if(removeFormat(nickname) == player_name) {
  1318. player_id = player.getId(player);
  1319. rank = getRank(player_id);
  1320. colorcode = text.subString(rank, 0, 2);
  1321. } else {
  1322. colorcode = "§b";
  1323. }
  1324. msg.prefix("online", prefix_commands, concat(nickname, "§7 is back."));
  1325. remove(iter);
  1326. setAfk(player, false);
  1327. player.setDisplayName(player, concat(colorcode, nickname));
  1328. }
  1329. }
  1330. }
  1331. size = map.getSize(afk_map);
  1332. if(size > 0) {
  1333. afk_loop_active = true;
  1334. sgoto(30, "afk_loop");
  1335. } else {
  1336. afk_loop_active = false;
  1337. }
  1338. goto("wait");
  1339. @pvp
  1340. if(size == 0) {
  1341. if(hasPvpOn(player)) {
  1342. mode = "off";
  1343. } else {
  1344. mode = "on";
  1345. }
  1346. } elseif(size == 1) {
  1347. mode = list.getIndex(args, 0);
  1348. if(!(mode == "on" || mode == "off")) {
  1349. goto("pvphelp");
  1350. }
  1351. } elseif(size == 2) {
  1352. if(!perm.has(player, "pvp.other")) {
  1353. perm.no(player, "pvp.other");
  1354. goto("wait");
  1355. }
  1356. mode = list.getIndex(args, 0);
  1357. if(!(mode == "on" || mode == "off")) {
  1358. goto("pvphelp");
  1359. }
  1360. affectedname = list.getIndex(args, 1);
  1361. if(!checkIfEverOnline(affectedname)) {
  1362. msg.prefix(player, prefix_commands, "This player has never been online.");
  1363. goto("wait");
  1364. }
  1365. affectedplayer = read.player(affectedname);
  1366. if(affectedplayer == null) {
  1367. msg.prefix(player, prefix_commands, "This player is not online.");
  1368. goto("wait");
  1369. }
  1370. } else {
  1371. @pvphelp
  1372. if(perm.has(player, "pvp.other")) {
  1373. msg.prefix(player, prefix_commands, "§r/pvp [on/off] [player]");
  1374. } else {
  1375. msg.prefix(player, prefix_commands, "§r/pvp [on/off]");
  1376. }
  1377. goto("wait");
  1378. }
  1379. if(mode == "on") {
  1380. setPvp(affectedplayer, true);
  1381. msg.prefix(affectedplayer, prefix_commands, "You have enabled PvP!");
  1382. if(affectedplayer != player) {
  1383. affectedname = player.getName(affectedplayer);
  1384. msg.prefix(player, prefix_commands, concat(affectedname, " has now enabled PvP!"));
  1385. }
  1386. } else {
  1387. setPvp(affectedplayer, false);
  1388. msg.prefix(affectedplayer, prefix_commands, "You have PvP disabled!");
  1389. if(affectedplayer != player) {
  1390. affectedname = player.getName(affectedplayer);
  1391. msg.prefix(player, prefix_commands, concat(affectedname, " has now disabled PvP!"));
  1392. }
  1393. }
  1394. goto("wait");
  1395. @kill
  1396. if(size < 0 || size > 1) {
  1397. msg.prefix(player, prefix_commands, "§r/kill [player]");
  1398. goto("wait");
  1399. }
  1400. if(size == 1) {
  1401. if(!perm.has(player, "kill.other")) {
  1402. perm.no(player, "kill.other");
  1403. goto("wait");
  1404. }
  1405. affectedname = list.getIndex(args, 0);
  1406. affectedplayer = read.player(affectedname);
  1407. if(affectedplayer == null) {
  1408. msg.prefix(player, prefix_commands, "This player is not online.");
  1409. goto("wait");
  1410. }
  1411. }
  1412. if(affectedplayer != player) {
  1413. affectedname = player.getName(affectedplayer);
  1414. msg.prefix(player, prefix_commands, concat(affectedname, " has been killed."));
  1415. msg.prefix(affectedplayer, prefix_commands, concat("You have been killed by ", player_name, "."));
  1416. } else {
  1417. msg.prefix(affectedplayer, prefix_commands, "You killed yourself.");
  1418. }
  1419. entity.damage(affectedplayer, 1000);
  1420. goto("wait");
  1421. @nickname
  1422. if(size < 1) {
  1423. msg.prefix(player, "§eNickname", "§r/nickname ...");
  1424. msg(player, "§e - <name> ", "Sets a nickname");
  1425. msg(player, "§e - remove ", "Removes a nickname");
  1426. goto("wait");
  1427. }
  1428. nickname = text.replace(text.concatList(args, " ", 0, size - 1), "&", "§");
  1429. if(nickname == "remove") {
  1430. player.removeNickName(player);
  1431. player_id = player.getId(player);
  1432. rank = getRank(player_id);
  1433. colorcode = text.subString(rank, 0, 2);
  1434. tab_name = concat(colorcode, player_name);
  1435. player.setDisplayName(player, concat("§b", tab_name));
  1436. msg.prefix(player, prefix_commands, concat("§rYour nickname was removed."));
  1437. } else {
  1438. player.setNickName(player, nickname);
  1439. player.setDisplayName(player, concat("§b", nickname));
  1440. msg.prefix(player, prefix_commands, concat("§rYou nickname was changed to ", nickname, "§r."));
  1441. }
  1442. goto("wait");
  1443. @iteminfo
  1444. item = entity.getEquip(player, "hand");
  1445. text = text.item(item);
  1446. text = text.replace(text, "\"","\\\"");
  1447. msg(player, text.clipBoard(text, text));
  1448. goto("wait");
  1449. @perm
  1450. if(size == 0) {
  1451. @perm_syntax
  1452. msg.prefix(player, prefix_perms, "§r/perm ...");
  1453. if(perm.has(player, "perm.give")) {
  1454. msg(player, "§6 - give <player> <perm>");
  1455. }
  1456. if(perm.has(player, "perm.remove")) {
  1457. msg(player, "§6 - remove <player> <perm>");
  1458. }
  1459. if(perm.has(player, "perm.removeall")) {
  1460. msg(player, "§6 - removeall <player>");
  1461. }
  1462. if(perm.has(player, "perm.list")) {
  1463. msg(player, "§6 - list <player>");
  1464. }
  1465. if(perm.has(player, "perm.toggle")) {
  1466. msg(player, "§6 - toggle <player>");
  1467. }
  1468. goto("wait");
  1469. }
  1470. arg0 = list.getIndex(args, 0);
  1471. if(arg0 == "give") {
  1472. if(!perm.has(player, "perm.give")) {
  1473. perm.no(player, "perm.give");
  1474. goto("wait");
  1475. }
  1476. if(size != 3) {
  1477. msg.prefix(player, prefix_perms, "/perm give <player> <perm>");
  1478. } else {
  1479. p_name = list.getIndex(args, 1);
  1480. perm = list.getIndex(args, 2);
  1481. if(!checkIfEverOnline(p_name)) {
  1482. msg.prefix(player, prefix_perms, "This player has never been online.");
  1483. goto("wait");
  1484. }
  1485. if(!isAPermGroup(perm)) {
  1486. msg.prefix(player, prefix_perms, "This is no permission group.");
  1487. goto("wait");
  1488. }
  1489. p_uuid = player.getUuid(p_name);
  1490. p_id = player.getId(p_uuid);
  1491. p_name = player.getName(p_uuid);
  1492. perm_id = map.get(permgroupsmap, perm);
  1493. if(hasPermAlready(p_id, perm_id)) {
  1494. msg.prefix(player, prefix_perms, "§rPerm already added");
  1495. goto("wait");
  1496. }
  1497. if(isOnline(p_name)) {
  1498. p = read.player(p_name);
  1499. rank = map.get(permgroupToRank, perm);
  1500. if(rank != null) {
  1501. offerRank(p, rank);
  1502. }
  1503. }
  1504. givePerm(p_id, perm_id);
  1505. msg.prefix(player, prefix_perms, concat("§rPerm §7", perm, "§r added to §7", p_name, "§r."));
  1506. }
  1507. goto("wait");
  1508. }
  1509. if(arg0 == "remove") {
  1510. if(!perm.has(player, "perm.remove")) {
  1511. perm.no(player, "perm.remove");
  1512. goto("wait");
  1513. }
  1514. if(size != 3) {
  1515. msg.prefix(player, prefix_perms, "/perm remove <player> <perm>");
  1516. } else {
  1517. p_name = list.getIndex(args, 1);
  1518. perm = list.getIndex(args, 2);
  1519. if(!checkIfEverOnline(p_name)) {
  1520. msg.prefix(player, prefix_perms, "This player has never been online.");
  1521. goto("wait");
  1522. }
  1523. if(!isAPermGroup(perm)) {
  1524. msg.prefix(player, prefix_perms, "This is no permission group.");
  1525. goto("wait");
  1526. }
  1527. p_uuid = player.getUuid(p_name);
  1528. p_id = player.getId(p_uuid);
  1529. p_name = player.getName(p_uuid);
  1530. //Wenn marvinius eine Permission entfernt wird, wird dies blockiert, ausgenommen er tut dies selbst
  1531. player_id = player.getId(player);
  1532. if(player_id != 2) {
  1533. if(p_id == 2) {
  1534. msg(player, "§cSorry §s¯\\_(ツ)_/¯");
  1535. goto("wait");
  1536. }
  1537. }
  1538. perm_id = map.get(permgroupsmap, perm);
  1539. if(!hasPermAlready(p_id, perm_id)) {
  1540. msg.prefix(player, prefix_perms, "§rThis player doesn't have that perm");
  1541. goto("wait");
  1542. }
  1543. removePerm(p_id, perm_id);
  1544. msg.prefix(player, prefix_perms, concat("§rPerm §7", perm, " §rwas removed from §7", p_name));
  1545. }
  1546. goto("wait");
  1547. }
  1548. if(arg0 == "removeall") {
  1549. if(!perm.has(player, "perm.removeall")) {
  1550. perm.no(player, "perm.removeall");
  1551. goto("wait");
  1552. }
  1553. if(size != 2) {
  1554. msg.prefix(player, prefix_perms, "/perm removeall <player>");
  1555. } else {
  1556. p_name = list.getIndex(args, 1);
  1557. if(!checkIfEverOnline(p_name)) {
  1558. msg.prefix(player, prefix_perms, "This player has never been online.");
  1559. goto("wait");
  1560. }
  1561. //Wenn marvinius Permissions entfernt werden, wird dies blockiert, ausgenommen er tut dies selbst
  1562. p_id = player.getId(player.getUuid(p_name));
  1563. player_id = player.getId(player);
  1564. if(player_id != 2) {
  1565. if(p_id == 2) {
  1566. msg(player, "§cSorry §s¯\\_(ツ)_/¯");
  1567. goto("wait");
  1568. }
  1569. }
  1570. removeAllPerms(p_id);
  1571. msg.prefix(player, prefix_perms, concat("§r All perms of §7", p_name, " §rwere removed"));
  1572. }
  1573. goto("wait");
  1574. }
  1575. if(arg0 == "list") {
  1576. if(!perm.has(player, "perm.list")) {
  1577. perm.no(player, "perm.list");
  1578. goto("wait");
  1579. }
  1580. if(size != 2) {
  1581. msg.prefix(player, prefix_perms, "/perm list <player>");
  1582. } else {
  1583. p_name = list.getIndex(args, 1);
  1584. if(!checkIfEverOnline(p_name)) {
  1585. msg.prefix(player, prefix_perms, "This player has never been online.");
  1586. goto("wait");
  1587. }
  1588. p_id = player.getId(player.getUuid(p_name));
  1589. permslist = getPermsFromPlayer(p_id);
  1590. listsize = list.getSize(permslist);
  1591. if(listsize == 0) {
  1592. msg.prefix(player, prefix_perms, "§rKeine Permissions vorhanden");
  1593. } else {
  1594. msg.prefix(player, prefix_perms, p_name);
  1595. for(i = 0; i < listsize; i++) {
  1596. msg(player, " - ", map.get(permgroupsmap2, list.getIndex(permslist, i)));
  1597. }
  1598. }
  1599. }
  1600. goto("wait");
  1601. }
  1602. if(arg0 == "toggle") {
  1603. if(!perm.has(player, "perm.toggle")) {
  1604. perm.no(player, "perm.toggle");
  1605. goto("wait");
  1606. }
  1607. player_id = player.getId(player);
  1608. if(perm.has(player, "pseudoPerm")) {
  1609. reloadAllPerms(player_id);
  1610. msg.prefix(player, prefix_commands, "You have regained your permissions.");
  1611. } else {
  1612. removeAllPermsTemporarly(player_id);
  1613. msg.prefix(player, prefix_commands, "Have fun as a user.");
  1614. }
  1615. goto("wait");
  1616. }
  1617. goto("perm_syntax");
  1618. @allsounds
  1619. if(size == 0) {
  1620. msg.prefix(player, prefix_commands, "§r/allsounds...");
  1621. msg(player, "§e - start");
  1622. msg(player, "§e - stop");
  1623. goto("wait");
  1624. }
  1625. arg0 = list.getIndex(args, 0);
  1626. if(arg0 == "start") {
  1627. if(!map.exists(sounds_map)) {
  1628. sounds_map = map.new();
  1629. }
  1630. player_uuid = player.getUuid(player);
  1631. script_id = map.get(sounds_map, player_uuid);
  1632. if(script_id != null) {
  1633. script = script.getFromId(script_id);
  1634. if(script != null) {
  1635. msg.prefix(player, prefix_commands, "Sounds already started.");
  1636. goto("wait");
  1637. }
  1638. }
  1639. script = script.start("global/playsounds");
  1640. script.setVar(script, "player", player);
  1641. map.add(sounds_map, player.getUuid(player), script.getId(script));
  1642. msg.prefix(player, prefix_commands, "Sounds started.");
  1643. goto("wait");
  1644. }
  1645. if(arg0 == "stop") {
  1646. if(!map.exists(sounds_map)) {
  1647. sounds_map = map.new();
  1648. }
  1649. script_id = map.get(sounds_map, player.getUuid(player));
  1650. if(script_id == null) {
  1651. msg.prefix(player, prefix_commands, "No sounds playing.");
  1652. goto("wait");
  1653. }
  1654. script = script.getFromId(script_id);
  1655. if(script == null) {
  1656. msg.prefix(player, prefix_commands, "No sounds playing.");
  1657. goto("wait");
  1658. }
  1659. script.term(script);
  1660. msg.prefix(player, prefix_commands, "Sounds stopped.");
  1661. goto("wait");
  1662. }
  1663. goto("wait");
  1664. @weather
  1665. if(size == 0) {
  1666. @weather_syntax
  1667. msg.prefix(player, "§eWeather", "§r/weather ...");
  1668. msg(player, "§e - clear [duration]");
  1669. msg(player, "§e - rain [duration]");
  1670. msg(player, "§e - thunder [duration]");
  1671. goto("wait");
  1672. }
  1673. arg0 = list.getIndex(args, 0);
  1674. if(arg0 == "clear" || arg0 == "rain" || arg0 == "thunder") {
  1675. if(size == 2) {
  1676. duration = list.getIndex(args, 1);
  1677. if(!isDouble(duration)) {
  1678. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  1679. goto("wait");
  1680. }
  1681. if(duration < 0) {
  1682. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  1683. goto("wait");
  1684. }
  1685. } else {
  1686. duration = 650;
  1687. }
  1688. world = loc.getWorld(entity.getLocation(player));
  1689. if(arg0 == "clear") {
  1690. if(size > 2) {
  1691. msg.prefix(player, prefix_commands, "§r/weather clear [duration]");
  1692. goto("wait");
  1693. }
  1694. world.clearWeather(world, duration);
  1695. msg.prefix(player, prefix_commands, "§rWetter wurde auf Klar gestellt");
  1696. goto("wait");
  1697. }
  1698. if(arg0 == "rain") {
  1699. if(size > 2) {
  1700. msg.prefix(player, prefix_commands, "§r/weather rain [duration]");
  1701. goto("wait");
  1702. }
  1703. world.setRain(world, duration);
  1704. msg.prefix(player, prefix_commands, "§rWetter wurde auf Regen gestellt");
  1705. goto("wait");
  1706. }
  1707. if(arg0 == "thunder") {
  1708. if(size > 2) {
  1709. msg.prefix(player, prefix_commands, "§r/weather thunder [duration]");
  1710. goto("wait");
  1711. }
  1712. world.setThunder(world, duration);
  1713. msg.prefix(player, prefix_commands, "§rWetter wurde auf Gewitter gestellt");
  1714. goto("wait");
  1715. }
  1716. goto("wait");
  1717. }
  1718. goto("weather_syntax");
  1719. @time
  1720. if(size == 0) {
  1721. @time_syntax
  1722. msg.prefix(player, "§eTime", "§r/time ...");
  1723. msg(player, "§e - set <time>");
  1724. msg(player, "§e - add <time>");
  1725. msg(player, "§e - <day / noon / night / midnight>");
  1726. goto("wait");
  1727. }
  1728. arg0 = list.getIndex(args, 0);
  1729. if(arg0 == "set") {
  1730. if(size != 2) {
  1731. msg.prefix(player, prefix_commands, "§r/time set <time>");
  1732. goto("wait");
  1733. }
  1734. setTime = list.getIndex(args, 1);
  1735. if(!isDouble(setTime)) {
  1736. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  1737. goto("wait");
  1738. }
  1739. if(setTime < 0) {
  1740. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  1741. goto("wait");
  1742. }
  1743. world = loc.getWorld(entity.getLocation(player));
  1744. while(setTime >= 24000) {
  1745. setTime -= 24000;
  1746. }
  1747. world.setTime(world, setTime);
  1748. msg.prefix(player, prefix_commands, concat("Time set to ", text.number(setTime), "."));
  1749. goto("wait");
  1750. }
  1751. if(arg0 == "add") {
  1752. if(size != 2) {
  1753. msg.prefix(player, prefix_commands, "§r/time add <time>");
  1754. goto("wait");
  1755. }
  1756. addTime = list.getIndex(args, 1);
  1757. if(!isDouble(addTime)) {
  1758. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  1759. goto("wait");
  1760. }
  1761. if(addTime < 0) {
  1762. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  1763. goto("wait");
  1764. }
  1765. world = loc.getWorld(entity.getLocation(player));
  1766. newtime = world.getTime(world) + addTime;
  1767. while(newtime >= 24000) {
  1768. newtime -= 24000;
  1769. }
  1770. world.setTime(world, newtime);
  1771. msg.prefix(player, prefix_commands, concat("Time set to ", text.number(newtime), "."));
  1772. goto("wait");
  1773. }
  1774. newtime = null;
  1775. if(arg0 == "day") {
  1776. newtime = 1000;
  1777. } elseif(arg0 == "noon") {
  1778. newtime = 6000;
  1779. } elseif(arg0 == "night") {
  1780. newtime = 13000;
  1781. } elseif(arg0 == "midnight") {
  1782. newtime = 18000;
  1783. }
  1784. if(newtime != null) {
  1785. world = loc.getWorld(entity.getLocation(player));
  1786. world.setTime(world, newtime);
  1787. msg.prefix(player, prefix_commands, concat("Time set to ", text.number(newtime), "."));
  1788. goto("wait");
  1789. }
  1790. goto("time_syntax");
  1791. @gamerule
  1792. world = loc.getWorld(entity.getLocation(player));
  1793. if(size == 0) {
  1794. msg.prefix(player, prefix_commands, "/gamerule <gamerule> [value]");
  1795. goto("wait");
  1796. }
  1797. gamerule_string = list.getIndex(args, 0);
  1798. gamerule_key = gamerule.getKey(gamerule_string);
  1799. if(gamerule_key == null) {
  1800. msg.prefix(player, prefix_commands, "Gamerule doesn't exist.");
  1801. goto("wait");
  1802. }
  1803. gamerule_value = gamerule.getValue(world, gamerule_key);
  1804. if(size == 1) {
  1805. if(gamerule.isBool(gamerule_value)) {
  1806. value = gamerule.getBool(gamerule_value);
  1807. } elseif(gamerule.isInt(gamerule_value)) {
  1808. value = text.number(gamerule.getInt(gamerule_value));
  1809. } else {
  1810. msg.prefix(player, prefix_commands, "Unknown gamerule type.");
  1811. goto("wait");
  1812. }
  1813. msg.prefix(player, prefix_commands, concat(gamerule_string, " ", value));
  1814. goto("wait");
  1815. }
  1816. if(size == 2) {
  1817. if(!perm.has(player, "gamerule.write")) {
  1818. perm.no(player, "gamerule.write");
  1819. goto("wait");
  1820. }
  1821. value = list.getIndex(args, 1);
  1822. if(gamerule.isBool(gamerule_value)) {
  1823. if(!isBool(value)) {
  1824. msg.prefix(player, prefix_commands, "Boolean expected.");
  1825. goto("wait");
  1826. }
  1827. gamerule.setBool(gamerule_value, value);
  1828. } elseif(gamerule.isInt(gamerule_value)) {
  1829. if(!isDouble(value)) {
  1830. msg.prefix(player, prefix_commands, "Number expected.");
  1831. goto("wait");
  1832. }
  1833. gamerule.setInt(gamerule_value, value);
  1834. value = text.number(value);
  1835. } else {
  1836. msg.prefix(player, prefix_commands, "Unknown gamerule type.");
  1837. goto("wait");
  1838. }
  1839. msg.prefix(player, prefix_commands, concat(gamerule_string, " set to ", value, "."));
  1840. goto("wait");
  1841. }
  1842. goto("wait");
  1843. @tip
  1844. if(size == 0) {
  1845. msg.prefix(player, prefix_tips, "§r/tip ...");
  1846. msg(player, "§e - list §rList all tips");
  1847. msg(player, "§e - add <tip> <text> §rAdds a tip");
  1848. msg(player, "§e - remove <tip> §rRemoves a tip");
  1849. msg(player, "§e - <tip> [player] §rSends a tip to all/a player");
  1850. goto("wait");
  1851. }
  1852. arg0 = list.getIndex(args, 0);
  1853. if(arg0 == "list") {
  1854. msg(player, "§r--==§eTipps§r==--");
  1855. counter = 0;
  1856. getTippsListStatement = databank.prepare("SELECT * FROM tipps;");
  1857. result = databank.execute(getTippsListStatement);
  1858. while(databank.next(result)) {
  1859. tipp_key = databank.getString(result, 1);
  1860. tipp_value = databank.getString(result, 2);
  1861. msg(player, concat("§e", tipp_key, "§r : ", tipp_value));
  1862. counter++;
  1863. }
  1864. databank.close(result);
  1865. databank.close(getTippsListStatement);
  1866. if(counter == 0) {
  1867. msg.prefix(player, prefix_tips, "§rIm Moment stehen keine Tipps zur Verfügung.");
  1868. }
  1869. goto("wait");
  1870. }
  1871. if(arg0 == "add") {
  1872. if(size < 3) {
  1873. msg.prefix(player, prefix_commands, "§r/tip add <name> <text>");
  1874. goto("wait");
  1875. }
  1876. tipp_key = list.getIndex(args, 1);
  1877. tipp_value = concatList(args, " ", 2, size - 1);
  1878. tipp.register(tipp_key, tipp_value);
  1879. msg.prefix(player, prefix_tips, "§rDer Tipp wurde hinzugefügt.");
  1880. goto("wait");
  1881. }
  1882. if(arg0 == "remove") {
  1883. if(size != 2) {
  1884. msg.prefix(player, prefix_commands, "§r/tip remove <name>");
  1885. goto("wait");
  1886. }
  1887. tipp_key = list.getIndex(args, 1);
  1888. removeTippStatement = databank.prepare("DELETE FROM tipps WHERE tipp_key = ?;");
  1889. databank.setInt(removeTippStatement, 1, tipp_key);
  1890. databank.workerExecute(removeTippStatement);
  1891. msg.prefix(player, prefix_tips, "§rDer Tipp wurde entfernt.");
  1892. goto("wait");
  1893. }
  1894. tipp_key = arg0;
  1895. tipp_value = tipp.get(tipp_key);
  1896. if(tipp_value == null) {
  1897. msg.prefix(player, prefix_tips, "§rDer Tipp existiert nicht.");
  1898. goto("wait");
  1899. }
  1900. if(size == 1) {
  1901. msg.prefix("online", prefix_tips, tipp_value);
  1902. } else {
  1903. p_name = list.getIndex(args, 1);
  1904. if(!isOnline(p_name)) {
  1905. msg.prefix(player, prefix_tips, "§rDieser Spieler ist nicht online");
  1906. goto("wait");
  1907. }
  1908. msg.prefix(p_name, prefix_tips, tipp_value);
  1909. msg.prefix(player, prefix_tips, concat("§rDer Tipp wurde §7", p_name, "§r gesendet."));
  1910. }
  1911. goto("wait");
  1912. @help
  1913. if(size > 1) {
  1914. msg.prefix(player, prefix_commands, "§r/help [seite]");
  1915. goto("wait");
  1916. }
  1917. //Auf Permission überprüfen
  1918. temp_list = list.new();
  1919. for(i = 0; i < list.getSize(command_list); i++) {
  1920. command = list.getIndex(command_list, i);
  1921. if(perm.has(player, command)) {
  1922. list.add(temp_list, command);
  1923. }
  1924. }
  1925. list.sort(temp_list);
  1926. temp_size = list.getSize(temp_list);
  1927. max_side = temp_size / 10;
  1928. if(size == 0) {
  1929. side = 1;
  1930. print_side = side - 1;
  1931. } else {
  1932. side = list.getIndex(args, 0);
  1933. if(!isDouble(side)) {
  1934. msg.prefix(player, prefix_commands, "§r/help [seite]");
  1935. goto("wait");
  1936. }
  1937. print_side = side - 1;
  1938. if(print_side < 0 || print_side > max_side) {
  1939. msg.prefix(player, prefix_commands, concat("Möglich: 1 - ", text.number(math.roundDown(max_side + 1))));
  1940. goto("wait");
  1941. }
  1942. }
  1943. msg(player, "§a --- Help ", text.number(side), " ---");
  1944. for(i = print_side * 10; i < print_side * 10 + 10; i++) {
  1945. if(i < temp_size) {
  1946. command = list.getIndex(temp_list, i);
  1947. command = text.hover(command, map.getOrDefault(command_map, command, ""));
  1948. msg(player, " /", command);
  1949. }
  1950. }
  1951. if(side == 1) {
  1952. backward = "§c<<Backward<<";
  1953. forward = text.click("§b>>Forward>>", concat("/help ", side + 1));
  1954. } elseif(side > max_side) {
  1955. backward = text.click("§b<<Backward<<", concat("/help ", side - 1));
  1956. forward = "§c>>Forward>>";
  1957. } else {
  1958. backward = text.click("§b<<Backward<<", concat("/help ", side - 1));
  1959. forward = text.click("§b>>Forward>>", concat("/help ", side + 1));
  1960. }
  1961. msg(player, backward, " ", forward);
  1962. goto("wait");
  1963. @cli
  1964. if(size != 1) {
  1965. msg.prefix(player, prefix_commands, "§r/cli <radius>");
  1966. goto("wait");
  1967. }
  1968. radius = list.getIndex(args, 0);
  1969. if(!isDouble(radius)) {
  1970. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  1971. goto("wait");
  1972. }
  1973. if(radius < 0) {
  1974. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  1975. goto("wait");
  1976. }
  1977. entity.removeAll("net.minecraft.entity.item.ItemEntity", entity.getLocation(player), radius);
  1978. msg.prefix(player, prefix_commands, "§rItems entfernt");
  1979. goto("wait");
  1980. @plough
  1981. if(size != 1) {
  1982. msg.prefix(player, prefix_commands, "§r/plough <radius>");
  1983. goto("wait");
  1984. }
  1985. radius = list.getIndex(args, 0);
  1986. if(!isDouble(radius)) {
  1987. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  1988. goto("wait");
  1989. }
  1990. if(radius < 0) {
  1991. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  1992. goto("wait");
  1993. }
  1994. center_loc = getBlockLocation(entity.getLocation(player));
  1995. for(x = radius * -1; x <= radius; x++) {
  1996. for(z = radius * -1; z <= radius; z++) {
  1997. for(y = radius * -1; y <= radius; y++) {
  1998. length = math.hypot(x, math.hypot(y, z));
  1999. if(length <= radius) {
  2000. mod_loc = loc.mod(center_loc, x, y, z);
  2001. block = block.get(mod_loc);
  2002. if(block.hasTag(dirt_tag, block) && block.getType(loc.mod(mod_loc, 0, 1, 0)) == "minecraft:air") {
  2003. block.set(mod_loc, "minecraft:farmland[moisture=7]");
  2004. }
  2005. }
  2006. }
  2007. }
  2008. }
  2009. msg.prefix(player, prefix_commands, "§rFeld gepflügt");
  2010. goto("wait");
  2011. @plant
  2012. if(size != 1) {
  2013. msg.prefix(player, prefix_commands, "§r/plant <radius>");
  2014. goto("wait");
  2015. }
  2016. radius = list.getIndex(args, 0);
  2017. if(!isDouble(radius)) {
  2018. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  2019. goto("wait");
  2020. }
  2021. if(radius < 0) {
  2022. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  2023. goto("wait");
  2024. }
  2025. center_loc = getBlockLocation(entity.getLocation(player));
  2026. for(x = radius * -1; x <= radius; x++) {
  2027. for(z = radius * -1; z <= radius; z++) {
  2028. for(y = radius * -1; y <= radius; y++) {
  2029. length = math.hypot(x, math.hypot(y, z));
  2030. if(length <= radius) {
  2031. mod_loc = loc.mod(center_loc, x, y, z);
  2032. upper_loc = loc.mod(mod_loc, 0, 1, 0);
  2033. if(block.getType(mod_loc) == "minecraft:farmland" && block.getType(upper_loc) == "minecraft:air") {
  2034. block.set(upper_loc, "minecraft:wheat[age=7]");
  2035. }
  2036. }
  2037. }
  2038. }
  2039. }
  2040. msg.prefix(player, prefix_commands, "§rFeld bepflanzt");
  2041. goto("wait");
  2042. @grow
  2043. if(size != 1) {
  2044. msg.prefix(player, prefix_commands, "§r/grow <radius>");
  2045. goto("wait");
  2046. }
  2047. radius = list.getIndex(args, 0);
  2048. if(!isDouble(radius)) {
  2049. msg.prefix(player, prefix_commands, "§rZahl erwartet");
  2050. goto("wait");
  2051. }
  2052. if(radius < 0) {
  2053. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet");
  2054. goto("wait");
  2055. }
  2056. center_loc = getBlockLocation(entity.getLocation(player));
  2057. for(x = radius * -1; x <= radius; x++) {
  2058. for(z = radius * -1; z <= radius; z++) {
  2059. for(y = radius * -1; y <= radius; y++) {
  2060. length = math.hypot(x, math.hypot(y, z));
  2061. if(length <= radius) {
  2062. mod_loc = loc.mod(center_loc, x, y, z);
  2063. block = block.get(mod_loc);
  2064. if(block.hasTag(crops_tag, block)) {
  2065. block.set(mod_loc, concat(block.getType(mod_loc), "[age=7]"));
  2066. }
  2067. }
  2068. }
  2069. }
  2070. }
  2071. msg.prefix(player, prefix_commands, "§rFeld gedüngt");
  2072. goto("wait");
  2073. @start
  2074. if(size != 1) {
  2075. @starthelp
  2076. msg.prefix(sender, prefix_commands, "/start ...");
  2077. msg(sender, " - ai");
  2078. msg(sender, " - chat");
  2079. msg(sender, " - commands");
  2080. msg(sender, " - creative");
  2081. msg(sender, " - damage");
  2082. msg(sender, " - friends");
  2083. msg(sender, " - games");
  2084. msg(sender, " - mails");
  2085. msg(sender, " - party");
  2086. msg(sender, " - perms");
  2087. msg(sender, " - pumpkin");
  2088. msg(sender, " - quests");
  2089. msg(sender, " - shop");
  2090. msg(sender, " - sitting");
  2091. msg(sender, " - stats");
  2092. msg(sender, " - survival");
  2093. msg(sender, " - ticket");
  2094. msg(sender, " - voxel");
  2095. goto("wait");
  2096. }
  2097. arg0 = list.getIndex(args, 0);
  2098. if(arg0 == "commands") {
  2099. script = script.startNamed("Commands", "startcommands");
  2100. if(script == null) {
  2101. snuvi.debug("Old commands script still active due to error in new script");
  2102. goto("wait");
  2103. }
  2104. script.term(script.get());
  2105. }
  2106. elseif(arg0 == "games") {
  2107. script = script.get("Gamecenter");
  2108. if(script != null) {
  2109. script.term(script);
  2110. }
  2111. script.startNamed("Gamecenter", "global/gamecenter", "utils/u_general", "utils/u_games", "utils/u_party");
  2112. }
  2113. elseif(arg0 == "party") {
  2114. script = script.get("Party");
  2115. if(script != null) {
  2116. script.term(script);
  2117. }
  2118. script.startNamed("Party", "global/party", "utils/u_general", "utils/u_party");
  2119. }
  2120. elseif(arg0 == "damage") {
  2121. script = script.get("Damage");
  2122. if(script != null) {
  2123. script.term(script);
  2124. }
  2125. script.startNamed("Damage", "system/damage");
  2126. }
  2127. elseif(arg0 == "creative") {
  2128. script = script.get("Creative");
  2129. if(script != null) {
  2130. script.term(script);
  2131. }
  2132. script.startNamed("Creative", "system/creative", "utils/u_general");
  2133. }
  2134. elseif(arg0 == "ai") {
  2135. script = script.get("Ai");
  2136. if(script != null) {
  2137. script.term(script);
  2138. }
  2139. script.startNamed("Ai", "system/ai", "utils/u_general");
  2140. }
  2141. elseif(arg0 == "chat") {
  2142. script = script.get("Chat");
  2143. if(script != null) {
  2144. script.term(script);
  2145. }
  2146. script.startNamed("Chat", "system/chat", "utils/u_general");
  2147. }
  2148. elseif(arg0 == "voxel") {
  2149. script = script.get("Voxel");
  2150. if(script != null) {
  2151. script.term(script);
  2152. }
  2153. script.startNamed("Voxel", "global/voxel");
  2154. }
  2155. elseif(arg0 == "perms") {
  2156. script.start("system/perms", "utils/u_general");
  2157. }
  2158. elseif(arg0 == "pumpkin") {
  2159. script = script.get("Pumpkin");
  2160. if(script != null) {
  2161. script.term(script);
  2162. }
  2163. script.startNamed("Pumpkin", "global/pumpkin", "utils/u_general");
  2164. }
  2165. elseif(arg0 == "stats") {
  2166. script = script.get("Ranklist", "scripts/global/ranklist.txt");
  2167. if(script != null) {
  2168. script.term(script);
  2169. }
  2170. script.startNamed("Ranklist", "global/ranklist", "utils/u_general", "utils/u_games");
  2171. }
  2172. elseif(arg0 == "shop") {
  2173. script = script.get("Shops");
  2174. if(script != null) {
  2175. script.term(script);
  2176. }
  2177. script.startNamed("Shops", "global/chestshops", "utils/u_general");
  2178. }
  2179. elseif(arg0 == "mails") {
  2180. script = script.get("Mails");
  2181. if(script != null) {
  2182. script.term(script);
  2183. }
  2184. script.startNamed("Mails", "global/mailsystem", "utils/u_general");
  2185. }
  2186. elseif(arg0 == "ticket") {
  2187. script = script.get("Ticket");
  2188. if(script != null) {
  2189. script.term(script);
  2190. }
  2191. script.startNamed("Ticket", "global/ticketsystem", "utils/u_general");
  2192. }
  2193. elseif(arg0 == "quests") {
  2194. script = script.get("SpawnQuests");
  2195. if(script != null) {
  2196. script.term(script);
  2197. }
  2198. script.startNamed("SpawnQuests", "storydorf/spawn/core", "utils/u_general");
  2199. }
  2200. elseif(arg0 == "sitting") {
  2201. script = script.get("Sitting");
  2202. if(script != null) {
  2203. script.term(script);
  2204. }
  2205. script.startNamed("Sitting", "global/sitting", "utils/u_general");
  2206. }
  2207. elseif(arg0 == "survival") {
  2208. script = script.get("Survival");
  2209. if(script != null) {
  2210. script.term(script);
  2211. }
  2212. script.startNamed("Survival", "survival/survival", "utils/u_general");
  2213. } else {
  2214. goto("starthelp");
  2215. }
  2216. goto("wait");
  2217. @senditem
  2218. if(size != 1) {
  2219. msg.prefix(player, prefix_commands, "/senditem <player>");
  2220. goto("wait");
  2221. }
  2222. item = entity.getEquip(player, "hand");
  2223. if(item.getType(item) == "minecraft:air") {
  2224. msg.prefix(player, prefix_commands, "§rDu musst ein Item in der Hand halten");
  2225. goto("wait");
  2226. }
  2227. p_name = list.getIndex(args, 0);
  2228. p_uuid = player.getUuid(p_name);
  2229. if(p_uuid == null) {
  2230. msg.prefix(player, prefix_commands, "This player has never been online.");
  2231. goto("wait");
  2232. }
  2233. p = read.player(p_name);
  2234. if(p == null) {
  2235. msg.prefix(player, prefix_commands, "This player is not online.");
  2236. goto("wait");
  2237. }
  2238. safeGiveItemPlayer(p, item);
  2239. player.removeItem(player, item);
  2240. goto("wait");
  2241. @top
  2242. player_loc = entity.getLocation(player);
  2243. y = 255;
  2244. loc.setY(player_loc, y);
  2245. while(block.isAir(player_loc)) {
  2246. loc.setY(player_loc, y);
  2247. y--;
  2248. }
  2249. teleportPlayer(player, loc.mod(player_loc, 0, 1, 0), true);
  2250. goto("wait");
  2251. @games
  2252. world = loc.getWorld(gamesspawn);
  2253. if(world == null) {
  2254. msg.prefix(player, prefix_commands, "This world is not loaded.");
  2255. goto("wait");
  2256. }
  2257. if(size > 1) {
  2258. msg.prefix(player, prefix_commands, "/games [player]");
  2259. goto("wait");
  2260. }
  2261. if(size == 1) {
  2262. affectedname = list.getIndex(args, 0);
  2263. affectedplayer = read.player(affectedname);
  2264. if(affectedplayer == null) {
  2265. msg.prefix(player, prefix_commands, "This player is not online.");
  2266. goto("wait");
  2267. }
  2268. if(!perm.has(player, "teleport.other")) {
  2269. perm.no(player, "teleport.other");
  2270. goto("wait");
  2271. }
  2272. }
  2273. if(player.hasMinigame(affectedplayer)) {
  2274. if(size == 1) {
  2275. msg(player, "§rThe player can't be teleported now.");
  2276. } else {
  2277. msg(player, "§rYou can't teleport now.");
  2278. }
  2279. goto("wait");
  2280. }
  2281. if(size == 1) {
  2282. if(player != affectedplayer) {
  2283. affectedname = player.getName(affectedplayer);
  2284. msg.prefix(player, prefix_commands, concat(affectedname, " was teleported to the games world."));
  2285. }
  2286. }
  2287. if(player.teleport(affectedplayer, gamesspawn, true)) {
  2288. msg.prefix(affectedplayer, prefix_commands, "You have been teleported to the games world.");
  2289. }
  2290. goto("wait");
  2291. @bug
  2292. msg.prefix(player, prefix_commands, "§rBug gefunden? Melde ihn an marvinius mit §b/mail marvinius <nachricht>");
  2293. goto("wait");
  2294. @repair
  2295. item = entity.getEquip(player, "hand");
  2296. if(item.getType(item) == "minecraft:air") {
  2297. msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand.");
  2298. goto("wait");
  2299. }
  2300. item.setDamage(item, 0);
  2301. msg.prefix(player, prefix_commands, "Your item has been repaired.");
  2302. goto("wait");
  2303. @report
  2304. msg.prefix(player, prefix_commands, "§rDu möchtest jemanden melden?");
  2305. msg(player, " - §b/ticket <nachricht>");
  2306. msg(player, " - §b/mail marvinius <nachricht>");
  2307. goto("wait");
  2308. @playtime
  2309. if(size == 0) {
  2310. p_id = player.getId(player);
  2311. arg0 = player.getName(player);
  2312. } else {
  2313. arg0 = list.getIndex(args, 0);
  2314. if(arg0 == "year") {
  2315. if(!perm.has(player, "playtime.year")) {
  2316. perm.no(player, "playtime.year");
  2317. goto("wait");
  2318. }
  2319. calendar = time.new(time.getMillis());
  2320. now_month = time.getMonth(calendar);
  2321. now_year = time.getYear(calendar);
  2322. if(size == 1) {
  2323. year = now_year;
  2324. } else {
  2325. year = list.getIndex(args, 1);
  2326. if(!isDouble(year)) {
  2327. msg.prefix(player, prefix_commands, "Number expected.");
  2328. goto("wait");
  2329. }
  2330. if(year > now_year) {
  2331. year = now_year;
  2332. }
  2333. }
  2334. //Von allen Online-Spielern die Onlinezeit abrufen, summieren und zur Heute-Spielzeit addieren
  2335. since_minutes = playtime.getTotalOnlineMinutes();
  2336. //Tabelle erstellen
  2337. table = table.new("§8", 4, 5, 5);
  2338. msg(player, table.getStart(table));
  2339. msg(player, table.get(table, text.number(year), "Playtime", "Change"));
  2340. msg(player, table.getMiddle(table));
  2341. //Erstes Mitternacht des gewählten Jahres festlegen
  2342. now_day = time.getDay(calendar);
  2343. time.nextDay(calendar);
  2344. midnight = time.from(calendar) - (time.getDaysBetween(1, 1, year, now_day, now_month, now_year) + 1) * 86400000;
  2345. //Monats-Spielzeit berechnen
  2346. temp_list = list.new();
  2347. list.add(temp_list, playtime.getInterval(midnight - time.getMonthDays(12, year - 1) * 86400000, midnight)); //Dezember des Vorjahres hinzufügen
  2348. for(i = 1; i <= 12; i++) {
  2349. midnight_2 = midnight + time.getMonthDays(i, now_year) * 86400000; //Alle Tage eines Monats * 24 Stunden
  2350. minutes = playtime.getInterval(midnight, midnight_2);
  2351. list.add(temp_list, minutes);
  2352. midnight = midnight_2;
  2353. if(i == now_month && year == now_year) {
  2354. minutes += since_minutes;
  2355. }
  2356. }
  2357. for(i = 1; i <= 12; i++) {
  2358. minutes = list.getIndex(temp_list, i);
  2359. hours = math.roundDown(minutes / 60);
  2360. mod_minutes = minutes % 60;
  2361. if(mod_minutes < 10) {
  2362. time_string = concat("§6§v", text.number(hours), ":0", text.number(mod_minutes), " h");
  2363. } else {
  2364. time_string = concat("§6§v", text.number(hours), ":", text.number(mod_minutes), " h");
  2365. }
  2366. pre_minutes = list.getIndex(temp_list, i - 1);
  2367. if(minutes >= pre_minutes) {
  2368. color = "§a+";
  2369. a = minutes;
  2370. b = pre_minutes;
  2371. } else {
  2372. color = "§c-";
  2373. a = pre_minutes;
  2374. b = minutes;
  2375. }
  2376. if(b == 0) {
  2377. change = "";
  2378. } else {
  2379. change = math.round(a / b * 100 - 100);
  2380. change = concat(color, text.number(change), " %");
  2381. }
  2382. msg(player, table.get(table, concat("§6", map.get(monthlist, i)), time_string, change));
  2383. if(i == now_month && year == now_year) {
  2384. break;
  2385. }
  2386. }
  2387. //Tabelle beenden
  2388. msg(player, table.getEnd(table));
  2389. goto("wait");
  2390. }
  2391. if(arg0 == "month") {
  2392. if(!perm.has(player, "playtime.month")) {
  2393. perm.no(player, "playtime.month");
  2394. goto("wait");
  2395. }
  2396. calendar = time.new(time.getMillis());
  2397. now_month = time.getMonth(calendar);
  2398. now_year = time.getYear(calendar);
  2399. year = now_year;
  2400. if(size == 1) {
  2401. month = now_month;
  2402. } else {
  2403. month = list.getIndex(args, 1);
  2404. if(!isDouble(month)) {
  2405. msg.prefix(player, prefix_commands, "Number expected.");
  2406. goto("wait");
  2407. }
  2408. if(month < 1) {
  2409. month = 1;
  2410. } elseif(month > 12) {
  2411. month = 12;
  2412. }
  2413. if(size == 3) {
  2414. year = list.getIndex(args, 2);
  2415. if(!isDouble(year)) {
  2416. msg.prefix(player, prefix_commands, "Number expected.");
  2417. goto("wait");
  2418. }
  2419. }
  2420. if(year > now_year ||(year >= now_year && month > now_month)) {
  2421. month = now_month;
  2422. year = now_year;
  2423. }
  2424. }
  2425. //Von allen Online-Spielern die Onlinezeit abrufen, summieren und zur Heute-Spielzeit addieren
  2426. since_minutes = playtime.getTotalOnlineMinutes();
  2427. //Tabelle erstellen
  2428. table = table.new("§8", 4, 5, 5);
  2429. msg(player, table.getStart(table));
  2430. msg(player, table.get(table, map.get(monthlist, month), "Playtime", "Players"));
  2431. msg(player, table.getMiddle(table));
  2432. //Erstes Mitternacht des gewählten Monats festlegen
  2433. now_day = time.getDay(calendar);
  2434. time.nextDay(calendar);
  2435. midnight = time.from(calendar) - (time.getDaysBetween(1, month, year, now_day, now_month, now_year) + 1) * 86400000;
  2436. //Tages-Spielzeit berechnen
  2437. for(i = 1; i <= time.getMonthDays(month, year); i++) {
  2438. players = playtime.getPlayersPerInterval(midnight, midnight + 86400000);
  2439. minutes = playtime.getInterval(midnight, midnight + 86400000);
  2440. midnight += 86400000; //24 Stunden
  2441. if(i == now_day && month == now_month && year == now_year) {
  2442. minutes += since_minutes;
  2443. }
  2444. hours = math.roundDown(minutes / 60);
  2445. minutes = minutes % 60;
  2446. if(minutes < 10) {
  2447. time_string = concat("§6§v", text.number(hours), ":0", text.number(minutes), " h");
  2448. } else {
  2449. time_string = concat("§6§v", text.number(hours), ":", text.number(minutes), " h");
  2450. }
  2451. msg(player, table.get(table, concat("§6", text.number(i)), time_string, text.number(players)));
  2452. if(i == now_day && month == now_month && year == now_year) {
  2453. break;
  2454. }
  2455. }
  2456. //Tabelle beenden
  2457. msg(player, table.getEnd(table));
  2458. goto("wait");
  2459. }
  2460. if(arg0 == "all") {
  2461. msg(player, getSpacer());
  2462. msg.prefix(player, prefix_commands, "Server-Playtime");
  2463. //Von allen Online-Spielern die Onlinezeit abrufen, summieren und zur Heute-Spielzeit addieren
  2464. since_minutes = playtime.getTotalOnlineMinutes();
  2465. now_time = time.getMillis();
  2466. //Spielzeit heute
  2467. calendar = time.new(now_time);
  2468. time.nextDay(calendar);
  2469. midnight = time.from(calendar) - 86400000; //24 Stunden von nächstem Mitternacht abziehen
  2470. minutes = playtime.getInterval(midnight, now_time) + since_minutes;
  2471. hours = text.number(math.roundDown(minutes / 60));
  2472. minutes = text.number(minutes % 60);
  2473. msg(player, "§6Today: §r", hours, " h ", minutes, " min");
  2474. //Spielzeit 30 Tage für alle Spieler
  2475. oneMonthAgo = now_time - 2592000000; //30 Tage von jetzt an
  2476. minutes = playtime.getInterval(oneMonthAgo, now_time) + since_minutes;
  2477. hours = text.number(math.roundDown(minutes / 60));
  2478. minutes = text.number(minutes % 60);
  2479. msg(player, "§630 Days: §r", hours, " h ", minutes, " min");
  2480. //Spielzeit gesamt
  2481. minutes = playtime.getTotal();
  2482. hours = text.number(math.roundDown(minutes / 60));
  2483. minutes = text.number(minutes % 60);
  2484. msg(player, "§6Total: §r", hours, " h ", minutes, " min");
  2485. goto("wait");
  2486. }
  2487. if(!perm.has(player, "playtime.other")) {
  2488. perm.no(player, "playtime.other");
  2489. goto("wait");
  2490. }
  2491. }
  2492. if(!checkIfEverOnline(arg0)) {
  2493. msg.prefix(player, prefix_commands, "This player has never been online.");
  2494. goto("wait");
  2495. }
  2496. now_time = time.getMillis();
  2497. p_uuid = player.getUuid(arg0);
  2498. arg0 = player.getName(p_uuid);
  2499. p_id = player.getId(p_uuid);
  2500. msg(player, getSpacer());
  2501. msg.prefix(player, prefix_commands, concat("Playtime of ", player.getName(p_uuid)));
  2502. //Online seit
  2503. since_minutes = playtime.getPlayerOnlineMinutes(p_id);
  2504. if(isOnline(arg0)) {
  2505. since_hours = math.roundDown(since_minutes / 60);
  2506. mod_minutes = since_minutes % 60;
  2507. msg(player, concat("§aOnline since: §r", text.number(since_hours), " hours ", text.number(mod_minutes), " minutes"));
  2508. } else {
  2509. msg(player, "§6Status: ", "§cOffline");
  2510. }
  2511. //Spielzeit heute
  2512. calendar = time.new(now_time);
  2513. time.nextDay(calendar);
  2514. midnight = time.from(calendar) - 86400000; //24 Stunden von nächstem Mitternacht abziehen
  2515. minutes = playtime.getPlayerInterval(p_id, midnight, now_time) + since_minutes;
  2516. hours = text.number(math.roundDown(minutes / 60));
  2517. minutes = text.number(minutes % 60);
  2518. msg(player, "§6Today: §r", hours, " h ", minutes, " min");
  2519. //Spielzeit 30 Tage
  2520. oneMonthAgo = now_time - 2592000000; //30 Tage von jetzt an
  2521. minutes = playtime.getPlayerInterval(p_id, oneMonthAgo, now_time) + since_minutes;
  2522. hours = text.number(math.roundDown(minutes / 60));
  2523. minutes = text.number(minutes % 60);
  2524. msg(player, "§630 Days: §r", hours, " h ", minutes, " min");
  2525. //Spielzeit gesamt
  2526. minutes = playtime.getPlayerTotal(p_id);
  2527. hours = text.number(math.roundDown(minutes / 60));
  2528. minutes = text.number(minutes % 60);
  2529. msg(player, "§6Total: §r", hours, " h ", minutes, " min");
  2530. goto("wait");
  2531. @datatools
  2532. if(size == 0) {
  2533. @datatoolshelp
  2534. msg.prefix(player, prefix_datatools, "/datatools ...");
  2535. msg(player, "§6§v - hide <name> §rHides wusi on an itemstack");
  2536. msg(player, "§6§v - attribute <attribut> <slot> <double> <op> §rFügt ein Attribut zu einem ItemStack hinzu");
  2537. msg(player, "§6§v - hide-entity §rMacht ein Entity unsichtbar");
  2538. msg(player, "§6§v - show-entity §rMacht ein Entity sichtbar");
  2539. msg(player, "§6§v - name-entity <name> §rSetzt den Namen des Entities");
  2540. msg(player, "§6§v - name-visibility <boolean> §rZeigt den Namen (nicht) dauerhaft");
  2541. msg(player, "§6§v - name-item <name> §rSetzt den Itemnamen");
  2542. msg(player, "§6§v - lore-item <line> <lore> §rSetzt die Itemlore");
  2543. goto("wait");
  2544. }
  2545. arg0 = list.getIndex(args, 0);
  2546. if(arg0 == "hide") {
  2547. if(size < 2) {
  2548. msg.prefix(player, prefix_datatools, "§r/datatools hide <name>");
  2549. goto("wait");
  2550. }
  2551. item = entity.getEquip(player, "hand");
  2552. if(item.getType(item) == "minecraft:air") {
  2553. msg.prefix(player, prefix_datatools, "Hold an item in your hand.");
  2554. goto("wait");
  2555. }
  2556. name = text.concatList(args, " ", 1, size - 1);
  2557. if(item.hide(item, name)) {
  2558. msg.prefix(player, prefix_datatools, "You hided something.");
  2559. } else {
  2560. msg.prefix(player, prefix_datatools, "You can't hide that.");
  2561. }
  2562. goto("wait");
  2563. }
  2564. if(arg0 == "attribute") {
  2565. if(size < 5) {
  2566. msg.prefix(player, prefix_datatools, "/datatools attribute <attribut> <slot> <double> <op>");
  2567. goto("wait");
  2568. }
  2569. item = entity.getEquip(player, "hand");
  2570. if(item.getType(item) == "minecraft:air") {
  2571. msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand.");
  2572. goto("wait");
  2573. }
  2574. double = list.getIndex(args, 3);
  2575. if(!isDouble(double) || double < 0) {
  2576. msg.prefix(player, prefix_datatools, "Natural number expected.");
  2577. goto("wait");
  2578. }
  2579. attribut = concat("generic.", list.getIndex(args, 1));
  2580. slot = read.slot(list.getIndex(args, 2));
  2581. if(slot == null) {
  2582. msg.prefix(player, prefix_datatools, "Incorrect slot.");
  2583. goto("wait");
  2584. }
  2585. operation = list.getIndex(args, 4);
  2586. if(operation == "ADDITION") {
  2587. operation = 0;
  2588. } elseif(operation == "MULTIPLY_BASE") {
  2589. operation = 1;
  2590. } elseif(operation == "MULTIPLY_TOTAL") {
  2591. operation = 2;
  2592. } else {
  2593. msg.prefix(player, prefix_datatools, "Incorrect operation.");
  2594. goto("wait");
  2595. }
  2596. item.addAttribute(item, attribut, slot, double, operation);
  2597. msg.prefix(player, prefix_datatools, "Attribute added.");
  2598. goto("wait");
  2599. }
  2600. if(arg0 == "name-item") {
  2601. if(size < 2) {
  2602. msg.prefix(player, prefix_datatools, "§r/datatools name-item <name>");
  2603. goto("wait");
  2604. }
  2605. item = entity.getEquip(player, "hand");
  2606. if(item.getType(item) == "minecraft:air") {
  2607. msg.prefix(player, prefix_datatools, "§rDu musst ein Item in der Hand halten.");
  2608. goto("wait");
  2609. }
  2610. name = text.concatList(args, " ", 1, size - 1);
  2611. name = text.replace(name, "&", "§");
  2612. item.setName(item, name);
  2613. msg.prefix(player, prefix_datatools, concat("Das Item trägt nun den Namen ", name, "§r."));
  2614. goto("wait");
  2615. }
  2616. if(arg0 == "lore-item") {
  2617. if(size < 3) {
  2618. msg.prefix(player, prefix_datatools, "§r/datatools lore-item <line> <lore>");
  2619. goto("wait");
  2620. }
  2621. item = entity.getEquip(player, "hand");
  2622. if(item.getType(item) == "minecraft:air") {
  2623. msg.prefix(player, prefix_datatools, "§rDu musst ein Item in der Hand halten.");
  2624. goto("wait");
  2625. }
  2626. line = list.getIndex(args, 1);
  2627. if(!isDouble(line)) {
  2628. msg.prefix(player, prefix_datatools, "Zahl erwartet.");
  2629. goto("wait");
  2630. }
  2631. if(line < 0) {
  2632. msg.prefix(player, prefix_datatools, "Positive Zahl erwartet.");
  2633. goto("wait");
  2634. }
  2635. lore = text.concatList(args, " ", 2, size - 1);
  2636. lore = text.replace(lore, "&", "§");
  2637. item.addLore(item, line, lore);
  2638. msg.prefix(player, prefix_datatools, "Die neue Lore wurde hinzugefügt.");
  2639. goto("wait");
  2640. }
  2641. if(arg0 == "maxhealth") {
  2642. if(size < 2) {
  2643. msg.prefix(player, prefix_datatools, "§r/datatools maxhealth <value>");
  2644. goto("wait");
  2645. }
  2646. value = list.getIndex(args, 1);
  2647. if(!isDouble(value)) {
  2648. msg.prefix(player, prefix_datatools, "Zahl erwartet.");
  2649. goto("wait");
  2650. }
  2651. templist = living.near(player, 3);
  2652. if(list.getSize(templist) == 0) {
  2653. msg.prefix(player, prefix_datatools, "Zu weit weg vom Entity.");
  2654. goto("wait");
  2655. }
  2656. entity = list.getIndex(templist, 0);
  2657. if(isPlayer(entity)) {
  2658. msg.prefix(player, prefix_datatools, "Auf Spieler nicht anwendbar.");
  2659. goto("wait");
  2660. }
  2661. living.setMaxHealth(entity, value);
  2662. msg.prefix(player, prefix_datatools, concat("Das Entity ", entity.getType(entity), " hat nun Maxhealth: ", entity.getMaxHealth(entity), "§r."));
  2663. goto("wait");
  2664. }
  2665. if(arg0 == "name-entity") {
  2666. if(size < 2) {
  2667. msg.prefix(player, prefix_datatools, "§r/datatools name-entity <name>");
  2668. goto("wait");
  2669. }
  2670. templist = living.near(player, 3);
  2671. if(list.getSize(templist) == 0) {
  2672. msg.prefix(player, prefix_datatools, "Zu weit weg vom Entity.");
  2673. goto("wait");
  2674. }
  2675. entity = list.getIndex(templist, 0);
  2676. name = text.concatList(args, " ", 1, size - 1);
  2677. name = text.replace(name, "&", "§");
  2678. name = text.replace(name, "\\n", "\n");
  2679. entity.setName(entity, name, true);
  2680. msg.prefix(player, prefix_datatools, concat("Das Entity trägt nun den Namen ", name, "§r."));
  2681. goto("wait");
  2682. }
  2683. if(arg0 == "name-visibility") {
  2684. if(size != 2) {
  2685. msg.prefix(player, prefix_datatools, "§r/datatools name-visibility <boolean>");
  2686. goto("wait");
  2687. }
  2688. templist = living.near(player, 3);
  2689. if(list.getSize(templist) == 0) {
  2690. msg.prefix(player, prefix_datatools, "Zu weit weg vom Entity.");
  2691. goto("wait");
  2692. }
  2693. entity = list.getIndex(templist, 0);
  2694. boolean = list.getIndex(args, 1);
  2695. name = entity.getName(entity);
  2696. entity.setName(entity, name, boolean);
  2697. msg.prefix(player, prefix_datatools, "Änderung durchgeführt.");
  2698. goto("wait");
  2699. }
  2700. if(arg0 == "hide-entity") {
  2701. if(size != 1) {
  2702. msg.prefix(player, prefix_datatools, "§r/datatools hide-entity");
  2703. goto("wait");
  2704. }
  2705. templist = living.near(player, 3);
  2706. if(list.getSize(templist) == 0) {
  2707. msg.prefix(player, prefix_datatools, "Zu weit weg vom Entity.");
  2708. goto("wait");
  2709. }
  2710. entity = list.getIndex(templist, 0);
  2711. entity.setInvisible(entity, true);
  2712. msg.prefix(player, prefix_datatools, "Das Entity ist nun unsichtbar.");
  2713. goto("wait");
  2714. }
  2715. if(arg0 == "show-entity") {
  2716. if(size != 1) {
  2717. msg.prefix(player, prefix_datatools, "§r/datatools show-entity");
  2718. goto("wait");
  2719. }
  2720. templist = living.near(player, 3);
  2721. if(list.getSize(templist) == 0) {
  2722. msg.prefix(player, prefix_datatools, "Zu weit weg vom Entity.");
  2723. goto("wait");
  2724. }
  2725. entity = list.getIndex(templist, 0);
  2726. entity.setInvisible(entity, false);
  2727. msg.prefix(player, prefix_datatools, "Das Entity ist nun sichtbar.");
  2728. goto("wait");
  2729. }
  2730. goto("datatoolshelp");
  2731. @human
  2732. if(size == 0) {
  2733. @humanhelp
  2734. msg.prefix(player, prefix_human, "/human ...");
  2735. msg(player, concat("§6§v - spawn §rSpawnt einen Human"));
  2736. msg(player, concat("§6§v - set <name> §rSetzt den Skin"));
  2737. msg(player, concat("§6§v - setuuid <uuid> §rSetzt den Skin"));
  2738. msg(player, concat("§6§v - name §rSetzt den Namen"));
  2739. msg(player, concat("§6§v - kill §rTötet einen Human"));
  2740. msg(player, concat("§6§v - size <scale> §rSetzt die Größenskalierung"));
  2741. msg(player, concat("§6§v - steve §rSchaltet auf Steve Skin"));
  2742. msg(player, concat("§6§v - alex §rSchaltet auf Alex Skin"));
  2743. msg(player, concat("§6§v - statue <bool> §rToggles between statue"));
  2744. goto("wait");
  2745. }
  2746. arg0 = list.getIndex(args, 0);
  2747. if(arg0 == "spawn") {
  2748. human.spawn(entity.getLocation(player));
  2749. msg.prefix(player, prefix_human, "Human gespawnt.");
  2750. goto("wait");
  2751. }
  2752. player_loc = entity.getLocation(player);
  2753. human = entity.get(player_loc, 3, "me.km.entities.EntityHuman");
  2754. if(human == null) {
  2755. msg.prefix(player, prefix_human, "Zu weit weg vom Human.");
  2756. goto("wait");
  2757. }
  2758. if(arg0 == "set") {
  2759. if(size == 2) {
  2760. name = list.getIndex(args, 1);
  2761. human.setSkin(human, name);
  2762. msg.prefix(player, prefix_human, "Skin gesetzt.");
  2763. goto("wait");
  2764. }
  2765. }
  2766. elseif(arg0 == "setuuid") {
  2767. if(size == 2) {
  2768. uuid = list.getIndex(args, 1);
  2769. human.setSkin(human, uuid);
  2770. msg.prefix(player, prefix_human, "Skin gesetzt.");
  2771. goto("wait");
  2772. }
  2773. }
  2774. elseif(arg0 == "name") {
  2775. if(size > 1) {
  2776. name = text.concatList(args, " ", 1, size - 1);
  2777. name = text.replace(name, "&", "§");
  2778. name = text.replace(name, "\\n", "\n");
  2779. entity.setName(human, name, true);
  2780. msg.prefix(player, prefix_human, concat("Das Entity trägt nun den Namen ", name, "§r."));
  2781. goto("wait");
  2782. }
  2783. }
  2784. elseif(arg0 == "kill") {
  2785. entity.remove(human);
  2786. msg.prefix(player, prefix_human, "Human getötet.");
  2787. goto("wait");
  2788. }
  2789. elseif(arg0 == "size") {
  2790. if(size == 2) {
  2791. scale = list.getIndex(args, 1);
  2792. if(!isDouble(scale)) {
  2793. msg.prefix(player, prefix_human, "Zahl erwartet.");
  2794. goto("wait");
  2795. }
  2796. if(scale > 10) {
  2797. msg.prefix(player, prefix_human, "Maximal 10.");
  2798. scale = 10;
  2799. }
  2800. human.setScale(human, scale);
  2801. msg.prefix(player, prefix_human, "Größe verändert.");
  2802. goto("wait");
  2803. }
  2804. }
  2805. elseif(arg0 == "steve") {
  2806. human.setSlim(human, false);
  2807. msg.prefix(player, prefix_human, "Skin-Format geändert.");
  2808. goto("wait");
  2809. }
  2810. elseif(arg0 == "alex") {
  2811. human.setSlim(human, true);
  2812. msg.prefix(player, prefix_human, "Skin-Format geändert.");
  2813. goto("wait");
  2814. }
  2815. elseif(arg0 == "statue") {
  2816. if(size == 1) {
  2817. bool = true;
  2818. } elseif(size == 2) {
  2819. bool = list.getIndex(args, 1);
  2820. if(bool != true && bool != false) {
  2821. bool = true;
  2822. }
  2823. }
  2824. human.setStatue(human, bool);
  2825. msg.prefix(player, prefix_human, "Human changed.");
  2826. goto("wait");
  2827. }
  2828. goto("humanhelp");
  2829. @answer
  2830. if(player.isMuted(player)) {
  2831. msg.prefix(player, "§6Commands", "You are muted.");
  2832. goto("wait");
  2833. }
  2834. if(size < 1) {
  2835. msg.prefix(sender, prefix_commands, "/answer <nachricht>");
  2836. goto("wait");
  2837. }
  2838. player_uuid = player.getUuid(sender);
  2839. p_uuid = map.get(answer_map, player_uuid);
  2840. if(p_uuid == null) {
  2841. msg.prefix(sender, prefix_commands, "Du hast niemanden, dem du antworten könntest.");
  2842. goto("wait");
  2843. }
  2844. nachricht = text.replace(text.concatList(args, " ", 0, size - 1), "&", "§");
  2845. if(player.getId(p_uuid) == 18) {
  2846. msg(sender, concat("§6[ -> §cSERVER§6] §r", nachricht));
  2847. msg("SERVER", concat("§6[§c", sender_name, "§6] §r", nachricht));
  2848. } else {
  2849. p = player.get(p_uuid);
  2850. if(p == null) {
  2851. msg.prefix(sender, prefix_commands, "This player is not online.");
  2852. goto("wait");
  2853. }
  2854. msg(sender, concat("§6[ -> §c", player.getName(p), "§6] §r", nachricht));
  2855. msg(p, concat("§6[§c", sender_name, "§6] §r", nachricht));
  2856. }
  2857. map.add(answer_map, p_uuid, player_uuid);
  2858. map.add(answer_map, player_uuid, p_uuid);
  2859. goto("wait");
  2860. @msg
  2861. if(player.isMuted(player)) {
  2862. msg.prefix(player, "§6Commands", "You are muted.");
  2863. goto("wait");
  2864. }
  2865. if(size < 2) {
  2866. msg.prefix(sender, prefix_commands, "/msg <player> <nachricht>");
  2867. goto("wait");
  2868. }
  2869. p_name = list.getIndex(args, 0);
  2870. p_uuid = player.getUuid(p_name);
  2871. if(p_uuid == null) {
  2872. msg.prefix(sender, prefix_commands, "Unknown player.");
  2873. goto("wait");
  2874. }
  2875. nachricht = text.replace(text.concatList(args, " ", 1, size - 1), "&", "§");
  2876. if(text.toUpperCase(p_name) == "SERVER") {
  2877. msg("SERVER", concat("§6[§c", sender_name, "§6] §r", nachricht));
  2878. msg(sender, concat("§6[ -> §cSERVER§6] §r", nachricht));
  2879. } else {
  2880. p = read.player(p_name);
  2881. if(p == null) {
  2882. msg.prefix(sender, prefix_commands, "This player is not online.");
  2883. goto("wait");
  2884. }
  2885. msg(p, concat("§6[§c", sender_name, "§6] §r", nachricht));
  2886. msg(sender, concat("§6[ -> §c", player.getName(p), "§6] §r", nachricht));
  2887. }
  2888. player_uuid = player.getUuid(sender);
  2889. map.add(answer_map, p_uuid, player_uuid);
  2890. map.add(answer_map, player_uuid, p_uuid);
  2891. goto("wait");
  2892. @list
  2893. list = players.toList();
  2894. size = list.getSize(list);
  2895. msg(sender, getSpacer());
  2896. if(size == 1) {
  2897. msg(sender, concat("§6Momentan ist ", text.number(size), " Spieler online"));
  2898. } else {
  2899. msg(sender, concat("§6Momentan sind ", text.number(size), " Spieler online"));
  2900. }
  2901. for(i = 0; i < size; i++) {
  2902. p = list.getIndex(list, i);
  2903. p_name = player.getName(p);
  2904. nickname = player.getNickname(p);
  2905. if(removeFormat(nickname) == p_name) {
  2906. personally_messages = true;
  2907. } else {
  2908. personally_messages = false;
  2909. }
  2910. player_id = player.getId(p);
  2911. rank = getRank(player_id);
  2912. if(personally_messages) {
  2913. fullname = concat("[", rank, "§r] ", removeFormat(nickname));
  2914. } else {
  2915. fullname = concat("[§bUser§r] ", removeFormat(nickname));
  2916. }
  2917. if(isAfk(p)) {
  2918. msg(sender, concat("§7§m", removeFormat(fullname)));
  2919. } else {
  2920. msg(sender, fullname);
  2921. }
  2922. }
  2923. goto("wait");
  2924. @ass
  2925. if(size < 2) {
  2926. msg.prefix(player, prefix_commands, "§r/ass ...");
  2927. msg(player, " - set <name>");
  2928. msg(player, " - rename <name>");
  2929. msg(player, " - remove <radius>");
  2930. goto("wait");
  2931. }
  2932. arg0 = list.getIndex(args, 0);
  2933. if(arg0 == "set") {
  2934. name = text.concatList(args, " ", 1, size - 1);
  2935. name = text.replace(name, "&", "§");
  2936. name = text.replace(name, "\\n", "\n");
  2937. ent = entity.spawn("km:nobody", entity.getLocation(player), "{NoGravity:true}");
  2938. entity.setName(ent, name);
  2939. goto("wait");
  2940. }
  2941. if(arg0 == "rename") {
  2942. name = text.concatList(args, " ", 1, size - 1);
  2943. name = text.replace(name, "&", "§");
  2944. name = text.replace(name, "\\n", "\n");
  2945. ent_list = living.near(player, 5);
  2946. for(i = 0; i < list.getSize(ent_list); i++) {
  2947. ent = list.getIndex(ent_list, i);
  2948. if(entity.getType(ent) == "nobody") {
  2949. entity.setName(ent, name);
  2950. goto("wait");
  2951. }
  2952. }
  2953. msg.prefix(player, prefix_commands, "§rKeinen Lufttext gefunden");
  2954. goto("wait");
  2955. }
  2956. if(arg0 == "remove") {
  2957. radius = list.getIndex(args, 1);
  2958. if(!isDouble(radius)) {
  2959. msg.prefix(player, prefix_commands, "Zahl erwartet.");
  2960. goto("wait");
  2961. }
  2962. if(radius < 0 || radius > 5) {
  2963. msg.prefix(player, prefix_commands, "§rRadius: 0-5");
  2964. goto("wait");
  2965. }
  2966. ent_list = living.near(player, radius);
  2967. for(i = 0; i < list.getSize(ent_list); i++) {
  2968. ent = list.getIndex(ent_list, i);
  2969. if(entity.getType(ent) == "nobody") {
  2970. entity.remove(ent);
  2971. msg.prefix(player, prefix_commands, "§rLufttext entfernt");
  2972. goto("wait");
  2973. }
  2974. }
  2975. msg.prefix(player, prefix_commands, "§rKeinen Lufttext gefunden");
  2976. }
  2977. goto("wait");
  2978. @coords
  2979. target_loc = player.getTarget(player, 5, false, false);
  2980. targettype = block.getType(target_loc);
  2981. if(targettype == "minecraft:air") {
  2982. msg.prefix(player, prefix_commands, "Du musst auf einen Block gerichtet sein.");
  2983. goto("wait");
  2984. }
  2985. msg(player, getSpacer());
  2986. x = text.Number(loc.getX(target_loc));
  2987. y = text.Number(loc.getY(target_loc));
  2988. z = text.Number(loc.getZ(target_loc));
  2989. msg(player, "§6Welt: §r", world.getName(loc.getWorld(target_loc)));
  2990. msg(player, "§6Koordinaten: §r", x, " / ", y, " / ", z);
  2991. msg(player, "§6Block: §r", targettype);
  2992. goto("wait");
  2993. @sign
  2994. if(size == 0) {
  2995. msg.prefix(player, prefix_commands, "/sign <1-4> [text]");
  2996. goto("wait");
  2997. }
  2998. target_loc = player.getTarget(player, 5, false, false);
  2999. block = block.get(target_loc);
  3000. if(!block.hasTag(sign_tag, block)) {
  3001. msg.prefix(player, prefix_commands, "Look at a sign.");
  3002. goto("wait");
  3003. }
  3004. line = list.getIndex(args, 0);
  3005. if(!isDouble(line)) {
  3006. msg.prefix(player, prefix_commands, "Number expected.");
  3007. goto("wait");
  3008. }
  3009. if(!(line == 1 || line == 2 || line == 3 || line == 4)) {
  3010. msg.prefix(player, prefix_commands, "Number between 1 and 5 expected.");
  3011. goto("wait");
  3012. }
  3013. string = "";
  3014. if(size > 1) {
  3015. for(i = 1; i < size; i++) {
  3016. arg = list.getIndex(args, i);
  3017. if(isDouble(arg)) {
  3018. arg = text.number(arg);
  3019. }
  3020. if(i == 1) {
  3021. string = arg;
  3022. } else {
  3023. string = concat(string, " ", arg);
  3024. }
  3025. }
  3026. }
  3027. string = text.replace(string, "&", "§");
  3028. block.setSign(target_loc, line - 1, string);
  3029. goto("wait");
  3030. @head
  3031. if(size != 1) {
  3032. msg.prefix(player, prefix_commands, "/head <player>");
  3033. goto("wait");
  3034. }
  3035. name = list.getIndex(args, 0);
  3036. uuid = player.getUuid(name);
  3037. if(uuid == null) {
  3038. player.giveItem(player, read.item(concat("{id:\"minecraft:player_head\", Count:1b, tag:{SkullOwner:\"", name, "\"}}")));
  3039. } else {
  3040. player.giveItem(player, player.getHead(uuid, name));
  3041. }
  3042. goto("wait");
  3043. @mute
  3044. if(size < 1) {
  3045. msg.prefix(sender, prefix_commands, "/mute <player>");
  3046. goto("wait");
  3047. }
  3048. p_name = list.getIndex(args, 0);
  3049. if(!isOnline(p_name)) {
  3050. msg.prefix(sender, prefix_commands, "This player is not online.");
  3051. goto("wait");
  3052. }
  3053. p = read.player(p_name);
  3054. p_name = player.getName(p);
  3055. if(p_name == "marvinius") {
  3056. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3057. goto("wait");
  3058. }
  3059. msg("online", concat("§c", p_name, " was muted by ", sender_name, "."));
  3060. player.mute(p, true);
  3061. goto("wait");
  3062. @unmute
  3063. if(size < 1) {
  3064. msg.prefix(sender, prefix_commands, "/unmute <player>");
  3065. goto("wait");
  3066. }
  3067. p_name = list.getIndex(args, 0);
  3068. if(!isOnline(p_name)) {
  3069. msg.prefix(sender, prefix_commands, "This player is not online.");
  3070. goto("wait");
  3071. }
  3072. p = read.player(p_name);
  3073. p_name = player.getName(p);
  3074. if(p_name == "marvinius") {
  3075. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3076. goto("wait");
  3077. }
  3078. msg("online", concat("§c", p_name, " was unmuted by ", sender_name, "."));
  3079. player.mute(p, false);
  3080. goto("wait");
  3081. @kick
  3082. if(size < 1) {
  3083. msg.prefix(sender, prefix_commands, "/kick <player> [reason]");
  3084. goto("wait");
  3085. }
  3086. p_name = list.getIndex(args, 0);
  3087. if(!isOnline(p_name)) {
  3088. msg.prefix(sender, prefix_commands, "§rDieser Spieler ist nicht online.");
  3089. goto("wait");
  3090. }
  3091. p = read.player(p_name);
  3092. p_name = player.getName(p);
  3093. if(p_name == "marvinius") {
  3094. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3095. goto("wait");
  3096. }
  3097. if(size > 1) {
  3098. reason = text.concatList(args, " ", 1, size - 1);
  3099. msg("online", concat("§c", p_name, " wurde von ", sender_name, " gekickt: ", reason));
  3100. } else {
  3101. reason = "Du wurdest gekickt";
  3102. msg("online", concat("§c", p_name, " wurde von ", sender_name, " gekickt."));
  3103. }
  3104. ban.kick(p, reason);
  3105. goto("wait");
  3106. @silentkick
  3107. if(size < 1) {
  3108. msg.prefix(sender, prefix_commands, "/silentkick <player> [reason]");
  3109. goto("wait");
  3110. }
  3111. p_name = list.getIndex(args, 0);
  3112. if(!isOnline(p_name)) {
  3113. msg.prefix(sender, prefix_commands, "§rDieser Spieler ist nicht online.");
  3114. goto("wait");
  3115. }
  3116. p = read.player(p_name);
  3117. p_name = player.getName(p);
  3118. if(p_name == "marvinius") {
  3119. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3120. goto("wait");
  3121. }
  3122. if(size > 1) {
  3123. reason = text.concatList(args, " ", 1, size - 1);
  3124. msg(sender, concat("§cDu hast ", p_name, " silent gekickt: ", reason));
  3125. } else {
  3126. reason = "Du wurdest gekickt";
  3127. msg(sender, concat("§cDu hast ", p_name, " silent gekickt."));
  3128. }
  3129. ban.kick(p, reason);
  3130. goto("wait");
  3131. @warn
  3132. if(size != 1) {
  3133. msg.prefix(player, prefix_commands, "/warn <player>");
  3134. goto("wait");
  3135. }
  3136. p_name = list.getIndex(args, 0);
  3137. if(!isOnline(p_name)) {
  3138. msg.prefix(player, prefix_commands, "§rDieser Spieler ist nicht online.");
  3139. goto("wait");
  3140. }
  3141. p = read.player(p_name);
  3142. p_name = player.getName(p);
  3143. if(p_name == "marvinius") {
  3144. msg(player, "§cSorry §s¯\\_(ツ)_/¯");
  3145. goto("wait");
  3146. }
  3147. head.add(p, 0, sender_name, 160, 50, 20);
  3148. title.setSub(p, "is watching you");
  3149. title.send(p, concat("§c", sender_name));
  3150. list.add(warninglist, p_name);
  3151. sgoto(100, "removeWarning");
  3152. msg.prefix(player, prefix_commands, "§rDer Spieler wurde gewarnt.");
  3153. goto("wait");
  3154. @removeWarning
  3155. p_name = list.getIndex(warninglist, 0);
  3156. if(isOnline(p_name)) {
  3157. p = read.player(p_name);
  3158. head.remove(p, 0);
  3159. list.removeIndex(warninglist, 0);
  3160. }
  3161. goto("wait");
  3162. @ban
  3163. if(size < 1) {
  3164. msg.prefix(sender, prefix_commands, "/ban <player> [reason]");
  3165. goto("wait");
  3166. }
  3167. p_name = list.getIndex(args, 0);
  3168. if(!checkIfEverOnline(p_name)) {
  3169. msg.prefix(sender, prefix_commands, "This player has never been online.");
  3170. goto("wait");
  3171. }
  3172. p_name = player.getName(player.getUuid(p_name));
  3173. if(p_name == "marvinius") {
  3174. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3175. goto("wait");
  3176. }
  3177. if(size > 1) {
  3178. reason = text.concatList(args, " ", 1, size - 1);
  3179. msg("online", concat("§c", p_name, " wurde von ", sender_name, " gebannt: ", reason));
  3180. msg("SERVER", concat("§c", p_name, " wurde von ", sender_name, " gebannt: ", reason));
  3181. } else {
  3182. reason = "Du wurdest gebannt";
  3183. msg("online", concat("§c", p_name, " wurde von ", sender_name, " gebannt."));
  3184. msg("SERVER", concat("§c", p_name, " wurde von ", sender_name, " gebannt."));
  3185. }
  3186. ban.add(player.getUuid(p_name), reason, sender_name);
  3187. if(isOnline(p_name)) {
  3188. p = read.player(p_name);
  3189. ban.kick(p, reason);
  3190. }
  3191. goto("wait");
  3192. @silentban
  3193. if(size < 1) {
  3194. msg.prefix(sender, prefix_commands, "/silentban <player> [reason]");
  3195. goto("wait");
  3196. }
  3197. p_name = list.getIndex(args, 0);
  3198. if(!checkIfEverOnline(p_name)) {
  3199. msg.prefix(sender, prefix_commands, "This player has never been online.");
  3200. goto("wait");
  3201. }
  3202. p_name = player.getName(player.getUuid(p_name));
  3203. if(p_name == "marvinius") {
  3204. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3205. goto("wait");
  3206. }
  3207. if(size > 1) {
  3208. reason = text.concatList(args, " ", 1, size - 1);
  3209. msg(sender, concat("§cDu hast ", p_name, " silent gebannt: ", reason));
  3210. } else {
  3211. reason = "Du wurdest gebannt";
  3212. msg(sender, concat("§cDu hast ", p_name, " silent gebannt."));
  3213. }
  3214. ban.add(player.getUuid(p_name), reason, sender_name);
  3215. if(isOnline(p_name)) {
  3216. p = read.player(p_name);
  3217. ban.kick(p, reason);
  3218. }
  3219. goto("wait");
  3220. @unban
  3221. if(size != 1) {
  3222. msg.prefix(sender, prefix_commands, "/unban <player>");
  3223. goto("wait");
  3224. }
  3225. p_name = list.getIndex(args, 0);
  3226. if(!checkIfEverOnline(p_name)) {
  3227. msg.prefix(sender, prefix_commands, "This player has never been online.");
  3228. goto("wait");
  3229. }
  3230. p_name = player.getName(player.getUuid(p_name));
  3231. ban.remove(player.getUuid(p_name));
  3232. msg(sender, concat("§cDu hast ", p_name, " entbannt"));
  3233. goto("wait");
  3234. @tempban
  3235. if(size < 4) {
  3236. msg.prefix(sender, prefix_commands, "/tempban <player> <days> <hours> <minutes> [reason]");
  3237. goto("wait");
  3238. }
  3239. p_name = list.getIndex(args, 0);
  3240. if(!checkIfEverOnline(p_name)) {
  3241. msg.prefix(sender, prefix_commands, "This player has never been online.");
  3242. goto("wait");
  3243. }
  3244. p_name = player.getName(player.getUuid(p_name));
  3245. if(p_name == "marvinius") {
  3246. msg(sender, "§cSorry §s¯\\_(ツ)_/¯");
  3247. goto("wait");
  3248. }
  3249. days = list.getIndex(args, 1);
  3250. hours = list.getIndex(args, 2);
  3251. minutes = list.getIndex(args, 3);
  3252. if(!isDouble(days) || !isDouble(hours) || !isDouble(minutes)) {
  3253. msg.prefix(sender, prefix_commands, "Zahl erwartet.");
  3254. goto("wait");
  3255. }
  3256. if(days < 0 || hours < 0 || minutes < 0) {
  3257. msg.prefix(sender, prefix_commands, "Positive Zahl erwartet.");
  3258. goto("wait");
  3259. }
  3260. endtime = time.getMillis() + minutes * 60000 + hours * 3600000 + days * 86400000;
  3261. timestring = getTimeString(endtime);
  3262. if(size > 4) {
  3263. reason = text.concatList(args, " ", 4, size - 1);
  3264. msg("online", concat("§c", p_name, " wurde von ", sender_name, " bis ", timestring, " Uhr gebannt: ", reason));
  3265. msg("SERVER", concat("§c", p_name, " wurde von ", sender_name, " bis ", timestring, " Uhr gebannt: ", reason));
  3266. } else {
  3267. reason = "Du wurdest gebannt";
  3268. msg("online", concat("§c", p_name, " wurde von ", sender_name, " bis ", timestring, " Uhr gebannt."));
  3269. msg("SERVER", concat("§c", p_name, " wurde von ", sender_name, " bis ", timestring, " Uhr gebannt."));
  3270. }
  3271. calendar = time.new(endtime);
  3272. ban.add(player.getUuid(p_name), reason, sender_name, calendar);
  3273. if(isOnline(p_name)) {
  3274. p = read.player(p_name);
  3275. ban.kick(p, reason);
  3276. }
  3277. goto("wait");
  3278. @ping
  3279. msg(player, "pong");
  3280. goto("wait");
  3281. @plot
  3282. if(size == 0) {
  3283. @plothelp
  3284. msg.prefix(player, prefix_plot, "/plot ...");
  3285. msg(player, "§d - info §rGibt Infos über die aktuelle Position");
  3286. msg(player, "§d - pos1/pos2 §rMarkiert Eckpunkte");
  3287. msg(player, "§d - create §rErstellt ein Plot (0 - 255)");
  3288. msg(player, "§d - create3D §rErstellt ein Plot");
  3289. msg(player, "§d - remove §rEntfernt ein Plot");
  3290. if(perm.has(player, "plot.expand")) {
  3291. msg(player, "§d - expand <anzahl> §rErweitert das Grundstück in Blickrichtung");
  3292. }
  3293. msg(player, "§d - name <name> §rGibt einem Plot einen Namen");
  3294. msg(player, "§d - share <player> §rFügt einen Spieler hinzu");
  3295. msg(player, "§d - kick <player> §rEntfernt einen Spieler");
  3296. msg(player, "§d - leader <player> §rErnennt einen neuen Plot-Leiter");
  3297. if(perm.has(player, "plot.moreinfo")) {
  3298. msg(player, "§d - moreinfo §rGibt viele detaillierte Infos aus");
  3299. msg(player, "§d - listall §rListet alle Plots auf");
  3300. msg(player, "§d - flags <flags> <boolean> §rSetzt alle Flags auf den Boolean");
  3301. }
  3302. goto("wait");
  3303. }
  3304. arg0 = text.toLowerCase(list.getIndex(args, 0));
  3305. if(arg0 == "leader") {
  3306. if(size < 2) {
  3307. msg.prefix(player, prefix_commands, "/plot leader <player>");
  3308. goto("wait");
  3309. }
  3310. p_name = list.getIndex(args, 1);
  3311. p_uuid = player.getUuid(p_name);
  3312. if(p_uuid == null) {
  3313. msg.prefix(player, prefix_plot, "This player has never been online.");
  3314. goto("wait");
  3315. }
  3316. p_name = player.getName(p_uuid);
  3317. location = entity.getLocation(player);
  3318. world = loc.getWorld(location);
  3319. plot_list = plot.get(location);
  3320. amount = list.getSize(plot_list);
  3321. if(amount == 0) {
  3322. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot.");
  3323. goto("wait");
  3324. }
  3325. plot = list.getIndex(plot_list, 0);
  3326. if(amount > 1) {
  3327. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3328. for(i = 0; i < amount; i++) {
  3329. plot = list.getIndex(plot_list, i);
  3330. plot_id = plot.getId(plot);
  3331. x = loc.getX(location);
  3332. y = loc.getY(location);
  3333. z = loc.getZ(location);
  3334. msg(player, text.click(" [§cSetLeader§r] ", concat("/plot leader ", p_name)));
  3335. }
  3336. goto("wait");
  3337. }
  3338. player_id = player.getId(player);
  3339. if(!perm.has(player, "plot.other")) {
  3340. world_name = world.getName(world);
  3341. if(!isSurvWorldName(world_name)) {
  3342. msg.prefix(player, prefix_perms, "Du hast in dieser Welt keine Permission dafür.");
  3343. goto("wait");
  3344. }
  3345. if(!plot.isLeader(plot, player_id)) {
  3346. msg.prefix(player, prefix_plot, "Du bist nicht der Plot-Leiter.");
  3347. goto("wait");
  3348. }
  3349. if(player_name == p_name) {
  3350. msg.prefix(player, prefix_plot, "Du bist bereits der Plot-Leiter.");
  3351. goto("wait");
  3352. }
  3353. }
  3354. p_id = player.getId(p_uuid);
  3355. if(plot.isLeader(plot, p_id)) {
  3356. msg.prefix(player, prefix_plot, "Der Spieler ist bereits Plot-Leiter.");
  3357. goto("wait");
  3358. }
  3359. old_leader = getPlotLeader(plot);
  3360. if(old_leader != null) {
  3361. plot.removeRank(plot, old_leader);
  3362. }
  3363. plot.setRank(plot, p_id, "leader");
  3364. plot.addPlayer(plot, p_name);
  3365. msg.prefix(player, prefix_plot, concat(p_name, " wurde zum Plot-Leiter ernannt."));
  3366. goto("wait");
  3367. }
  3368. if(arg0 == "remove" || arg0 == "r" || arg0 == "delete") {
  3369. if(size == 1) {
  3370. location = entity.getLocation(player);
  3371. world = loc.getWorld(location);
  3372. plot_list = plot.get(location);
  3373. amount = list.getSize(plot_list);
  3374. if(amount == 0) {
  3375. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot");
  3376. goto("wait");
  3377. }
  3378. plot = list.getIndex(plot_list, 0);
  3379. if(amount > 1) {
  3380. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3381. for(i = 0; i < amount; i++) {
  3382. plot = list.getIndex(plot_list, i);
  3383. plot_id = plot.getId(plot);
  3384. x = loc.getX(location);
  3385. y = loc.getY(location);
  3386. z = loc.getZ(location);
  3387. msg(player, text.click(" [§cEntfernen§r] ", concat("/plot remove ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  3388. }
  3389. goto("wait");
  3390. }
  3391. } elseif(size == 6) {
  3392. plot_id = list.getIndex(args, 1);
  3393. x = list.getIndex(args, 2);
  3394. y = list.getIndex(args, 3);
  3395. z = list.getIndex(args, 4);
  3396. world = world.get(list.getIndex(args, 5));
  3397. location = loc.new(world, x, y, z);
  3398. plot_list = plot.get(location);
  3399. amount = list.getSize(plot_list);
  3400. for(i = 0; i < amount; i++) {
  3401. plot = list.getIndex(plot_list, i);
  3402. if(plot.getId(plot) == plot_id) {
  3403. break;
  3404. }
  3405. }
  3406. } else {
  3407. msg.prefix(player, prefix_commands, "/plot remove");
  3408. goto("wait");
  3409. }
  3410. if(!perm.has(player, "plot.other")) {
  3411. world_name = world.getName(world);
  3412. if(!isSurvWorldName(world_name)) {
  3413. msg.prefix(player, prefix_perms, "Du hast in dieser Welt keine Permission dafür.");
  3414. goto("wait");
  3415. }
  3416. player_id = player.getId(player);
  3417. if(!plot.isLeader(plot, player_id)) {
  3418. msg.prefix(player, prefix_plot, "Du bist nicht der Plot-Leiter.");
  3419. goto("wait");
  3420. }
  3421. }
  3422. nachricht = concat("Grundstück entfernt ", text.number(plot.getId(plot)), " ", plot.getName(plot));
  3423. plot.removeAllPlayers(plot);
  3424. plot.remove(plot, world);
  3425. msg.prefix(player, prefix_plot, "Das Plot wurde entfernt.");
  3426. goto("wait");
  3427. }
  3428. if(arg0 == "expand") {
  3429. if(!perm.has(player, "plot.expand")) {
  3430. perm.no(player, "plot.expand");
  3431. goto("wait");
  3432. }
  3433. if(size == 2) {
  3434. anzahl = list.getIndex(args, 1);
  3435. if(!isDouble(anzahl)) {
  3436. msg.prefix(player, prefix_plot, "Zahl erwartet.");
  3437. goto("wait");
  3438. }
  3439. if(anzahl < 0) {
  3440. msg.prefix(player, prefix_plot, "Positive Zahl erwartet.");
  3441. goto("wait");
  3442. }
  3443. location = entity.getLocation(player);
  3444. yaw = loc.getYaw(location);
  3445. direction = getDirection(yaw);
  3446. if(direction == null) {
  3447. msg.prefix(player, prefix_plot, "Blickrichtung zu ungenau");
  3448. goto("wait");
  3449. }
  3450. world = loc.getWorld(location);
  3451. plot_list = plot.get(location);
  3452. amount = list.getSize(plot_list);
  3453. if(amount == 0) {
  3454. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot");
  3455. goto("wait");
  3456. }
  3457. plot = list.getIndex(plot_list, 0);
  3458. if(amount > 1) {
  3459. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3460. for(i = 0; i < amount; i++) {
  3461. plot = list.getIndex(plot_list, i);
  3462. plot_id = plot.getId(plot);
  3463. x = loc.getX(location);
  3464. y = loc.getY(location);
  3465. z = loc.getZ(location);
  3466. msg(player, text.click(" [§cExpand§r] ", concat("/plot expand ", anzahl, " ", direction, " ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  3467. }
  3468. goto("wait");
  3469. }
  3470. } elseif(size == 8) {
  3471. anzahl = list.getIndex(args, 1);
  3472. direction = list.getIndex(args, 2);
  3473. plot_id = list.getIndex(args, 3);
  3474. x = list.getIndex(args, 4);
  3475. y = list.getIndex(args, 5);
  3476. z = list.getIndex(args, 6);
  3477. world = world.get(list.getIndex(args, 7));
  3478. location = loc.new(world, x, y, z);
  3479. plot_list = plot.get(location);
  3480. amount = list.getSize(plot_list);
  3481. for(i = 0; i < amount; i++) {
  3482. plot = list.getIndex(plot_list, i);
  3483. if(plot.getId(plot) == plot_id) {
  3484. break;
  3485. }
  3486. }
  3487. } else {
  3488. msg.prefix(player, prefix_commands, "/plot expand <anzahl>");
  3489. goto("wait");
  3490. }
  3491. x1 = plot.getMinX(plot);
  3492. y1 = plot.getMinY(plot);
  3493. z1 = plot.getMinZ(plot);
  3494. x2 = plot.getMaxX(plot);
  3495. y2 = plot.getMaxY(plot);
  3496. z2 = plot.getMaxZ(plot);
  3497. if(direction == "east") {
  3498. x2 += anzahl;
  3499. } elseif(direction == "south") {
  3500. z2 += anzahl;
  3501. } elseif(direction == "west") {
  3502. x1 -= anzahl;
  3503. } elseif(direction == "north") {
  3504. z1 -= anzahl;
  3505. }
  3506. gs_edge1 = loc.new(world, x1, y1, z1);
  3507. gs_edge2 = loc.new(world, x2, y2, z2);
  3508. plot.setEdges(plot, gs_edge1, gs_edge2);
  3509. msg.prefix(player, prefix_plot, "Das Plot wurde erweitert.");
  3510. goto("wait");
  3511. }
  3512. if(arg0 == "share") {
  3513. if(size == 2) {
  3514. p_name = list.getIndex(args, 1);
  3515. p_uuid = player.getUuid(p_name);
  3516. if(p_uuid == null) {
  3517. msg.prefix(player, prefix_plot, "This player has never been online.");
  3518. goto("wait");
  3519. }
  3520. p_name = player.getName(p_uuid);
  3521. location = entity.getLocation(player);
  3522. world = loc.getWorld(location);
  3523. plot_list = plot.get(location);
  3524. amount = list.getSize(plot_list);
  3525. if(amount == 0) {
  3526. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot");
  3527. goto("wait");
  3528. }
  3529. plot = list.getIndex(plot_list, 0);
  3530. if(amount > 1) {
  3531. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3532. for(i = 0; i < amount; i++) {
  3533. plot = list.getIndex(plot_list, i);
  3534. plot_id = plot.getId(plot);
  3535. x = loc.getX(location);
  3536. y = loc.getY(location);
  3537. z = loc.getZ(location);
  3538. msg(player, text.click(" [§cShare§r] ", concat("/plot share ", p_name, " ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  3539. }
  3540. goto("wait");
  3541. }
  3542. } elseif(size == 7) {
  3543. p_name = list.getIndex(args, 1);
  3544. plot_id = list.getIndex(args, 2);
  3545. x = list.getIndex(args, 3);
  3546. y = list.getIndex(args, 4);
  3547. z = list.getIndex(args, 5);
  3548. world = world.get(list.getIndex(args, 6));
  3549. location = loc.new(world, x, y, z);
  3550. plot_list = plot.get(location);
  3551. amount = list.getSize(plot_list);
  3552. for(i = 0; i < amount; i++) {
  3553. plot = list.getIndex(plot_list, i);
  3554. if(plot.getId(plot) == plot_id) {
  3555. break;
  3556. }
  3557. }
  3558. } else {
  3559. msg.prefix(player, prefix_commands, "/plot share <name>");
  3560. goto("wait");
  3561. }
  3562. if(!perm.has(player, "plot.other")) {
  3563. world_name = world.getName(world);
  3564. if(!isSurvWorldName(world_name)) {
  3565. msg.prefix(player, "§6Perms", "Du hast in dieser Welt keine Permission dafür.");
  3566. goto("wait");
  3567. }
  3568. player_id = player.getId(player);
  3569. if(!plot.isLeader(plot, player_id)) {
  3570. msg.prefix(player, prefix_plot, "Du bist nicht der Plot-Leiter.");
  3571. goto("wait");
  3572. }
  3573. }
  3574. plot.addPlayer(plot, p_name);
  3575. msg.prefix(player, prefix_plot, concat("Der Spieler ", p_name, " wurde zum Plot hinzugefügt."));
  3576. goto("wait");
  3577. }
  3578. if(arg0 == "kick") {
  3579. if(size == 2) {
  3580. location = entity.getLocation(player);
  3581. world = loc.getWorld(location);
  3582. plot_list = plot.get(location);
  3583. amount = list.getSize(plot_list);
  3584. p_name = list.getIndex(args, 1);
  3585. p_uuid = player.getUuid(p_name);
  3586. if(p_uuid == null) {
  3587. msg.prefix(player, prefix_plot, "This player has never been online.");
  3588. goto("wait");
  3589. }
  3590. p_name = player.getName(p_uuid);
  3591. if(amount == 0) {
  3592. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot");
  3593. goto("wait");
  3594. }
  3595. plot = list.getIndex(plot_list, 0);
  3596. if(amount > 1) {
  3597. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3598. for(i = 0; i < amount; i++) {
  3599. plot = list.getIndex(plot_list, i);
  3600. plot_id = plot.getId(plot);
  3601. x = loc.getX(location);
  3602. y = loc.getY(location);
  3603. z = loc.getZ(location);
  3604. msg(player, text.click(" [§cKick§r] ", concat("/plot kick ", p_name, " ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  3605. }
  3606. goto("wait");
  3607. }
  3608. } elseif(size == 7) {
  3609. p_name = list.getIndex(args, 1);
  3610. plot_id = list.getIndex(args, 2);
  3611. x = list.getIndex(args, 3);
  3612. y = list.getIndex(args, 4);
  3613. z = list.getIndex(args, 5);
  3614. world = world.get(list.getIndex(args, 6));
  3615. location = loc.new(world, x, y, z);
  3616. plot_list = plot.get(location);
  3617. amount = list.getSize(plot_list);
  3618. for(i = 0; i < amount; i++) {
  3619. plot = list.getIndex(plot_list, i);
  3620. if(plot.getId(plot) == plot_id) {
  3621. break;
  3622. }
  3623. }
  3624. } else {
  3625. msg.prefix(player, prefix_commands, "/plot kick <name>");
  3626. goto("wait");
  3627. }
  3628. if(!perm.has(player, "plot.other")) {
  3629. world_name = world.getName(world);
  3630. if(!isSurvWorldName(world_name)) {
  3631. msg.prefix(player, "§6Perms", "Du hast in dieser Welt keine Permission dafür.");
  3632. goto("wait");
  3633. }
  3634. player_id = player.getId(player);
  3635. if(!plot.isLeader(plot, player_id)) {
  3636. msg.prefix(player, prefix_plot, "Du bist nicht der Plot-Leiter.");
  3637. goto("wait");
  3638. }
  3639. if(player_name == p_name) {
  3640. msg.prefix(player, prefix_plot, "Du kannst dich nicht selbst entfernen");
  3641. goto("wait");
  3642. }
  3643. }
  3644. plot.removePlayer(plot, p_name);
  3645. msg.prefix(player, prefix_plot, concat("Der Spieler ", p_name, " wurde vom Plot entfernt."));
  3646. goto("wait");
  3647. }
  3648. if(arg0 == "name2") {
  3649. if(size == 7) {
  3650. name = text.concatList(args, " ", 1, size - 6);
  3651. plot_id = list.getIndex(args, size - 5);
  3652. x = list.getIndex(args, size - 4);
  3653. y = list.getIndex(args, size - 3);
  3654. z = list.getIndex(args, size - 2);
  3655. world = world.get(list.getIndex(args, size - 1));
  3656. location = loc.new(world, x, y, z);
  3657. plot_list = plot.get(location);
  3658. amount = list.getSize(plot_list);
  3659. for(i = 0; i < amount; i++) {
  3660. plot = list.getIndex(plot_list, i);
  3661. if(plot.getId(plot) == plot_id) {
  3662. break;
  3663. }
  3664. }
  3665. }
  3666. if(!perm.has(player, "plot.other")) {
  3667. world_name = world.getName(world);
  3668. if(!isSurvWorldName(world_name)) {
  3669. msg.prefix(player, "§6Perms", "Du hast in dieser Welt keine Permission dafür.");
  3670. goto("wait");
  3671. }
  3672. player_id = player.getId(player);
  3673. if(!plot.isLeader(plot, player_id)) {
  3674. msg.prefix(player, prefix_plot, "Du bist nicht der Plot-Leiter.");
  3675. goto("wait");
  3676. }
  3677. }
  3678. plot.setName(plot, name);
  3679. msg.prefix(player, prefix_plot, concat("Plot has been renamed to §6", name, "."));
  3680. goto("wait");
  3681. }
  3682. if(arg0 == "name") {
  3683. if(size < 2) {
  3684. msg.prefix(player, prefix_commands, "/plot name <name>");
  3685. goto("wait");
  3686. }
  3687. name = text.concatList(args, " ", 1, size - 1);
  3688. location = entity.getLocation(player);
  3689. world = loc.getWorld(location);
  3690. plot_list = plot.get(location);
  3691. amount = list.getSize(plot_list);
  3692. if(amount == 0) {
  3693. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot");
  3694. goto("wait");
  3695. }
  3696. plot = list.getIndex(plot_list, 0);
  3697. if(amount > 1) {
  3698. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3699. for(i = 0; i < amount; i++) {
  3700. plot = list.getIndex(plot_list, i);
  3701. plot_id = plot.getId(plot);
  3702. x = loc.getX(location);
  3703. y = loc.getY(location);
  3704. z = loc.getZ(location);
  3705. msg(player, text.click(" [§cRename§r] ", concat("/plot name2 ", name, " ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  3706. }
  3707. goto("wait");
  3708. }
  3709. if(!perm.has(player, "plot.other")) {
  3710. world_name = world.getName(world);
  3711. if(!isSurvWorldName(world_name)) {
  3712. msg.prefix(player, "§6Perms", "Du hast in dieser Welt keine Permission dafür.");
  3713. goto("wait");
  3714. }
  3715. player_id = player.getId(player);
  3716. if(!plot.isLeader(plot, player_id)) {
  3717. msg.prefix(player, prefix_plot, "Du bist nicht der Plot-Leiter.");
  3718. goto("wait");
  3719. }
  3720. }
  3721. plot.setName(plot, name);
  3722. msg.prefix(player, prefix_plot, concat("Plot wurde zu ", name, " umbenannt."));
  3723. goto("wait");
  3724. }
  3725. if(arg0 == "create" || arg0 == "c") {
  3726. player_id = player.getId(player);
  3727. loc1 = map.get(plotpos1, player_id);
  3728. loc2 = map.get(plotpos2, player_id);
  3729. if(loc1 == null || loc2 == null) {
  3730. msg.prefix(player, prefix_plot, "Keine Eckpunkte gesetzt.");
  3731. goto("wait");
  3732. }
  3733. world1 = loc.getWorld(loc1);
  3734. if(world1 != loc.getWorld(loc2)) {
  3735. msg.prefix(player, prefix_plot, "Eckpunkte haben unterschiedliche Welten");
  3736. goto("wait");
  3737. }
  3738. if(perm.has(player, "plot.other")) {
  3739. msg.prefix(player, prefix_plot, "Plot created.");
  3740. } else {
  3741. world_name = world.getName(world1);
  3742. if(!isSurvWorldName(world_name)) {
  3743. msg.prefix(player, "§6Perms", "Du hast in dieser Welt keine Permission dafür.");
  3744. goto("wait");
  3745. }
  3746. x1 = loc.getX(loc1);
  3747. y1 = loc.getY(loc1);
  3748. z1 = loc.getZ(loc1);
  3749. x2 = loc.getX(loc2);
  3750. y2 = loc.getY(loc2);
  3751. z2 = loc.getZ(loc2);
  3752. list = plot.intersecting(world1, x1, y1, z1, x2, y2, z2);
  3753. iter = list.iterator(list);
  3754. while(hasNext(iter)) {
  3755. plot = next(iter);
  3756. if(!plot.isLeader(plot, player_id)) {
  3757. msg.prefix(player, prefix_plot, "Auf einem der überschneidenden Grundstücke bist du nicht der Plot-Leiter");
  3758. goto("wait");
  3759. }
  3760. }
  3761. //Größe berechnen
  3762. length = math.abs(x1 - x2);
  3763. width = math.abs(z1 - z2);
  3764. area = length * width;
  3765. used_area = player.getUsedPlotArea(player);
  3766. if(!player.hasEnoughFreeArea(player, area)) {
  3767. msg.prefix(player, prefix_plot, concat("You used ", text.number(used_area), " / ", text.number(player.getFreePlotArea(player)), " plot blocks."));
  3768. goto("wait");
  3769. }
  3770. new_area = used_area + area;
  3771. player.setUsedPlotArea(player, new_area);
  3772. msg.prefix(player, prefix_plot, concat("Plot created. New used plot area: ", text.number(new_area)));
  3773. }
  3774. //Plot erstellen
  3775. loc.setY(loc1, 0);
  3776. loc.setY(loc2, 255);
  3777. loc.sort(loc1, loc2);
  3778. plot = plot.add(loc1, loc2);
  3779. plot.setName(plot, concat("GS: ", player_name));
  3780. plot.addPlayer(plot, player_name);
  3781. plot.setRank(plot, player_id, "leader");
  3782. offerRank(player, "§eSiedler");
  3783. goto("wait");
  3784. }
  3785. if(arg0 == "create3d" || arg0 == "add3d") {
  3786. player_id = player.getId(player);
  3787. loc1 = map.get(plotpos1, player_id);
  3788. loc2 = map.get(plotpos2, player_id);
  3789. if(loc1 == null || loc2 == null) {
  3790. msg.prefix(player, prefix_plot, "Keine Eckpunkte gesetzt.");
  3791. goto("wait");
  3792. }
  3793. world1 = loc.getWorld(loc1);
  3794. if(world1 != loc.getWorld(loc2)) {
  3795. msg.prefix(player, prefix_plot, "Eckpunkte haben unterschiedliche Welten");
  3796. goto("wait");
  3797. }
  3798. if(perm.has(player, "plot.other")) {
  3799. msg.prefix(player, prefix_plot, "3DPlot created.");
  3800. } else {
  3801. world_name = world.getName(world1);
  3802. if(!isSurvWorldName(world_name)) {
  3803. msg.prefix(player, "§6Perms", "Du hast in dieser Welt keine Permission dafür.");
  3804. goto("wait");
  3805. }
  3806. x1 = loc.getX(loc1);
  3807. y1 = loc.getY(loc1);
  3808. z1 = loc.getZ(loc1);
  3809. x2 = loc.getX(loc2);
  3810. y2 = loc.getY(loc2);
  3811. z2 = loc.getZ(loc2);
  3812. list = plot.intersecting(world1, x1, y1, z1, x2, y2, z2);
  3813. iter = list.iterator(list);
  3814. while(hasNext(iter)) {
  3815. plot = next(iter);
  3816. if(!plot.isLeader(plot, player_id)) {
  3817. msg.prefix(player, prefix_plot, "Auf einem der überschneidenden Grundstücke bist du nicht der Plot-Leiter");
  3818. goto("wait");
  3819. }
  3820. }
  3821. //Kosten berechnen
  3822. length = math.abs(x1 - x2);
  3823. width = math.abs(z1 - z2);
  3824. area = length * width;
  3825. used_area = player.getUsedPlotArea(player);
  3826. if(!player.hasEnoughFreeArea(player, area)) {
  3827. msg.prefix(player, prefix_plot, concat("You used ", text.number(used_area), " / ", text.number(player.getFreePlotArea(player)), " plot blocks."));
  3828. goto("wait");
  3829. }
  3830. new_area = used_area + area;
  3831. player.setUsedPlotArea(player, new_area);
  3832. msg.prefix(player, prefix_plot, concat("3DPlot created. New used plot area: ", text.number(new_area)));
  3833. }
  3834. //Plot erstellen
  3835. plot = plot.add(loc1, loc2);
  3836. plot.setName(plot, concat("GS: ", player_name));
  3837. plot.addPlayer(plot, player_name);
  3838. plot.setRank(plot, player_id, "leader");
  3839. offerRank(player, "§eSiedler");
  3840. goto("wait");
  3841. }
  3842. if(arg0 == "pos1" || arg0 == "pos2") {
  3843. loc = entity.getLocation(player);
  3844. loc = getBlockLocation(loc);
  3845. player_id = player.getId(player);
  3846. if(arg0 == "pos1") {
  3847. map.add(plotpos1, player_id, loc);
  3848. pos = "Pos1";
  3849. }
  3850. elseif(arg0 == "pos2") {
  3851. map.add(plotpos2, player_id, loc);
  3852. pos = "Pos2";
  3853. }
  3854. x = text.number(loc.getX(loc));
  3855. y = text.number(loc.getY(loc));
  3856. z = text.number(loc.getZ(loc));
  3857. msg.prefix(player, prefix_plot, concat(pos, " (", x, "/", y, "/", z, ") gesetzt"));
  3858. goto("wait");
  3859. }
  3860. if(arg0 == "flags") {
  3861. if(!perm.has(player, "plot.moreinfo")) {
  3862. perm.no(player, "plot.moreinfo");
  3863. goto("wait");
  3864. }
  3865. if(size == 3) {
  3866. location = entity.getLocation(player);
  3867. world = loc.getWorld(location);
  3868. plot_list = plot.get(location);
  3869. amount = list.getSize(plot_list);
  3870. flags = list.getIndex(args, 1);
  3871. if(!isDouble(flags)) {
  3872. msg.prefix(player, prefix_commands, "Zahl erwartet.");
  3873. goto("wait");
  3874. }
  3875. if(flags < 0) {
  3876. msg.prefix(player, prefix_commands, "§rPositive Zahl erwartet.");
  3877. goto("wait");
  3878. }
  3879. boolean = list.getIndex(args, 2);
  3880. if(!(boolean == true || boolean == false)) {
  3881. msg.prefix(player, prefix_commands, "§rBoolean erwartet.");
  3882. goto("wait");
  3883. }
  3884. if(amount == 0) {
  3885. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot");
  3886. goto("wait");
  3887. }
  3888. plot = list.getIndex(plot_list, 0);
  3889. if(amount > 1) {
  3890. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3891. for(i = 0; i < amount; i++) {
  3892. plot = list.getIndex(plot_list, i);
  3893. plot_id = plot.getId(plot);
  3894. x = loc.getX(location);
  3895. y = loc.getY(location);
  3896. z = loc.getZ(location);
  3897. msg(player, text.click(" [§cFlags§r] ", concat("/plot flags ", flags, " ", boolean, " ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  3898. }
  3899. goto("wait");
  3900. }
  3901. } elseif(size == 8) {
  3902. flags = list.getIndex(args, 1);
  3903. boolean = list.getIndex(args, 2);
  3904. plot_id = list.getIndex(args, 3);
  3905. x = list.getIndex(args, 4);
  3906. y = list.getIndex(args, 5);
  3907. z = list.getIndex(args, 6);
  3908. world = world.get(list.getIndex(args, 7));
  3909. location = loc.new(world, x, y, z);
  3910. plot_list = plot.get(location);
  3911. amount = list.getSize(plot_list);
  3912. for(i = 0; i < amount; i++) {
  3913. plot = list.getIndex(plot_list, i);
  3914. if(plot.getId(plot) == plot_id) {
  3915. break;
  3916. }
  3917. }
  3918. } else {
  3919. msg.prefix(player, prefix_commands, "/plot flags <flags> <boolean>");
  3920. goto("wait");
  3921. }
  3922. flags_list = list.new();
  3923. temp_flags = 0;
  3924. if(flags >= 128) {
  3925. list.add(flags_list, "FARM_FLAG");
  3926. temp_flags += 64;
  3927. }
  3928. if(flags >= 64) {
  3929. list.add(flags_list, "EXPLOSION_FLAG");
  3930. temp_flags += 64;
  3931. }
  3932. if(flags >= 32) {
  3933. list.add(flags_list, "ENTITY_INTERACT_FLAG");
  3934. temp_flags += 32;
  3935. }
  3936. if(flags >= 16) {
  3937. list.add(flags_list, "BLOCK_INTERACT_FLAG");
  3938. temp_flags += 16;
  3939. }
  3940. if(flags >= 8) {
  3941. list.add(flags_list, "HIT_AMBIENT_FLAG");
  3942. temp_flags += 8;
  3943. }
  3944. if(flags >= 4) {
  3945. list.add(flags_list, "BUCKET_FLAG");
  3946. temp_flags += 4;
  3947. }
  3948. if(flags >= 2) {
  3949. list.add(flags_list, "BREAK_FLAG");
  3950. temp_flags += 2;
  3951. }
  3952. if(flags >= 1) {
  3953. list.add(flags_list, "PLACE_FLAG");
  3954. temp_flags += 1;
  3955. }
  3956. plot.setFlags(plot, flags, boolean);
  3957. msg.prefix(player, prefix_plot, "Flags gesetzt.");
  3958. goto("wait");
  3959. }
  3960. if(arg0 == "listall") {
  3961. if(!perm.has(player, "plot.moreinfo")) {
  3962. perm.no(player, "plot.moreinfo");
  3963. goto("wait");
  3964. }
  3965. if(size != 1) {
  3966. msg.prefix(player, prefix_commands, "/plot listall");
  3967. goto("wait");
  3968. }
  3969. world = loc.getWorld(entity.getLocation(player));
  3970. msg.prefix(player, prefix_commands, concat("Alle Plots mit Ownern der Welt: ", world.getName(world)));
  3971. iterator = plot.iterator(world);
  3972. while(hasNext(iterator)) {
  3973. plot = next(iterator);
  3974. plot_id = plot.getId(plot);
  3975. msg(player, concat(" - #", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)), " ", plot);
  3976. }
  3977. goto("wait");
  3978. }
  3979. if(arg0 == "moreinfo" || arg0 == "mi") {
  3980. if(!perm.has(player, "plot.moreinfo")) {
  3981. perm.no(player, "plot.moreinfo");
  3982. goto("wait");
  3983. }
  3984. if(size == 1) {
  3985. location = entity.getLocation(player);
  3986. world = loc.getWorld(location);
  3987. plot_list = plot.get(location);
  3988. amount = list.getSize(plot_list);
  3989. if(amount == 0) {
  3990. msg.prefix(player, prefix_plot, "Du befindest dich auf keinem Plot.");
  3991. goto("wait");
  3992. }
  3993. plot = list.getIndex(plot_list, 0);
  3994. if(amount > 1) {
  3995. msg.prefix(player, prefix_plot, "Mehrere Plots vorhanden:");
  3996. for(i = 0; i < amount; i++) {
  3997. plot = list.getIndex(plot_list, i);
  3998. plot_id = plot.getId(plot);
  3999. x = loc.getX(location);
  4000. y = loc.getY(location);
  4001. z = loc.getZ(location);
  4002. msg(player, text.click(" [§cInfo§r] ", concat("/plot moreinfo ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))), concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  4003. }
  4004. goto("wait");
  4005. }
  4006. } elseif(size == 6) {
  4007. plot_id = list.getIndex(args, 1);
  4008. x = list.getIndex(args, 2);
  4009. y = list.getIndex(args, 3);
  4010. z = list.getIndex(args, 4);
  4011. world = world.get(list.getIndex(args, 5));
  4012. location = loc.new(world, x, y, z);
  4013. plot_list = plot.get(location);
  4014. amount = list.getSize(plot_list);
  4015. for(i = 0; i < amount; i++) {
  4016. plot = list.getIndex(plot_list, i);
  4017. if(plot.getId(plot) == plot_id) {
  4018. break;
  4019. }
  4020. }
  4021. } else {
  4022. msg.prefix(player, prefix_commands, "/plot moreinfo");
  4023. goto("wait");
  4024. }
  4025. owners = "";
  4026. owners_list = plot.getOwners(plot);
  4027. for(i = 0; i < list.getSize(owners_list); i++) {
  4028. owners = concat(owners, "/", player.getName(list.getIndex(owners_list, i)));
  4029. }
  4030. plot_id = plot.getId(plot);
  4031. msg.prefix(player, prefix_plot, concat("#", text.number(plot_id), " §6", plot.getName(plot), " §r", owners));
  4032. msg(player, " §dWorld: §r", world.getName(world));
  4033. msg(player, " §dPos1: §r", plot.getMinX(plot), " / ", plot.getMinY(plot), " / ", plot.getMinZ(plot));
  4034. msg(player, " §dPos2: §r", plot.getMaxX(plot), " / ", plot.getMaxY(plot), " / ", plot.getMaxZ(plot));
  4035. flags = plot.getFlags(plot);
  4036. flags_true = list.new();
  4037. flags_false = list.new();
  4038. array = array.new(2);
  4039. array[0] = 128;
  4040. array[1] = "FARM_FLAG";
  4041. if(flags >= 128) {
  4042. list.add(flags_true, array);
  4043. flags -= 128;
  4044. } else {
  4045. list.add(flags_false, array);
  4046. }
  4047. array = array.new(2);
  4048. array[0] = 64;
  4049. array[1] = "EXPLOSION_FLAG";
  4050. if(flags >= 64) {
  4051. list.add(flags_true, array);
  4052. flags -= 64;
  4053. } else {
  4054. list.add(flags_false, array);
  4055. }
  4056. array = array.new(2);
  4057. array[0] = 32;
  4058. array[1] = "ENTITY_INTERACT_FLAG";
  4059. if(flags >= 32) {
  4060. list.add(flags_true, array);
  4061. flags -= 32;
  4062. } else {
  4063. list.add(flags_false, array);
  4064. }
  4065. array = array.new(2);
  4066. array[0] = 16;
  4067. array[1] = "BLOCK_INTERACT_FLAG";
  4068. if(flags >= 16) {
  4069. list.add(flags_true, array);
  4070. flags -= 16;
  4071. } else {
  4072. list.add(flags_false, array);
  4073. }
  4074. array = array.new(2);
  4075. array[0] = 8;
  4076. array[1] = "HIT_AMBIENT_FLAG";
  4077. if(flags >= 8) {
  4078. list.add(flags_true, array);
  4079. flags -= 8;
  4080. } else {
  4081. list.add(flags_false, array);
  4082. }
  4083. array = array.new(2);
  4084. array[0] = 4;
  4085. array[1] = "BUCKET_FLAG";
  4086. if(flags >= 4) {
  4087. list.add(flags_true, array);
  4088. flags -= 4;
  4089. } else {
  4090. list.add(flags_false, array);
  4091. }
  4092. array = array.new(2);
  4093. array[0] = 2;
  4094. array[1] = "BREAK_FLAG";
  4095. if(flags >= 2) {
  4096. list.add(flags_true, array);
  4097. flags -= 2;
  4098. } else {
  4099. list.add(flags_false, array);
  4100. }
  4101. array = array.new(2);
  4102. array[0] = 1;
  4103. array[1] = "PLACE_FLAG";
  4104. if(flags >= 1) {
  4105. list.add(flags_true, array);
  4106. } else {
  4107. list.add(flags_false, array);
  4108. }
  4109. x = loc.getX(location);
  4110. y = loc.getY(location);
  4111. z = loc.getZ(location);
  4112. msg(player, " §dFlags true:");
  4113. iter = list.iterator(flags_true);
  4114. while(hasNext(iter)) {
  4115. array = next(iter);
  4116. flag_number = array[0];
  4117. flag_name = array[1];
  4118. msg(player, " ", text.click(concat(" §d[§r", flag_name, "§d] "), concat("/plot flags ", flag_number, " false ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))));
  4119. }
  4120. msg(player, " §dFlags false:");
  4121. iter = list.iterator(flags_false);
  4122. while(hasNext(iter)) {
  4123. array = next(iter);
  4124. flag_number = array[0];
  4125. flag_name = array[1];
  4126. msg(player, " ", text.click(concat(" §d[§r", flag_name, "§d] "), concat("/plot flags ", flag_number, " true ", plot_id, " ", x, " ", y, " ", z, " ", world.getName(world))));
  4127. }
  4128. goto("wait");
  4129. }
  4130. if(arg0 == "info" || arg0 == "i") {
  4131. location = entity.getLocation(player);
  4132. list = plot.get(location);
  4133. size = list.getSize(list);
  4134. if(size == 0) {
  4135. msg.prefix(player, prefix_plot, "Keine Plots vorhanden.");
  4136. goto("wait");
  4137. }
  4138. msg.prefix(player, prefix_plot, "Du befindest dich auf folgenden Plots:");
  4139. for(i = 0; i < size; i++) {
  4140. plot = list.getIndex(list, i);
  4141. plot_id = plot.getId(plot);
  4142. msg(player, concat(" - #", text.number(plot_id), " §6", plot.getName(plot), " §r", plot.getOwnersString(plot)));
  4143. }
  4144. goto("wait");
  4145. }
  4146. goto("plothelp");
  4147. @stopadventure
  4148. removeAdventureDisplay(player);
  4149. player.setAdventure(player, false);
  4150. msg.prefix(player, "§5Adventure", "Adventure canceled!");
  4151. goto("wait");
  4152. @speed
  4153. if(size < 1 || size > 2) {
  4154. if(perm.has(player, "speed.other")) {
  4155. msg.prefix(player, prefix_commands, "/speed <1-10> [player]");
  4156. } else {
  4157. msg.prefix(player, prefix_commands, "/speed <1-10>");
  4158. }
  4159. goto("wait");
  4160. }
  4161. speed = list.getIndex(args, 0);
  4162. if(!isDouble(speed)) {
  4163. msg.prefix(player, prefix_commands, "Zahl erwartet.");
  4164. goto("wait");
  4165. }
  4166. if(speed < 1) {
  4167. speed = 1;
  4168. }
  4169. if(speed > 10) {
  4170. speed = 10;
  4171. }
  4172. if(size == 2) {
  4173. if(!perm.has(player, "speed.other")) {
  4174. perm.no(player, "speed.other");
  4175. goto("wait");
  4176. }
  4177. affectedname = list.getIndex(args, 1);
  4178. affectedplayer = read.player(affectedname);
  4179. if(affectedplayer == null) {
  4180. msg.prefix(player, prefix_commands, "This player is not online.");
  4181. goto("wait");
  4182. }
  4183. }
  4184. player.setSpeed(affectedplayer, speed);
  4185. msg.prefix(affectedplayer, prefix_commands, concat("Set your speed to ", text.number(speed), "."));
  4186. if(affectedplayer != player) {
  4187. affectedname = player.getName(affectedplayer);
  4188. msg.prefix(player, prefix_commands, concat(affectedname, " set your speed to ", text.number(speed), "."));
  4189. }
  4190. goto("wait");
  4191. @butcher
  4192. loc = entity.getLocation(player);
  4193. world = loc.getWorld(loc);
  4194. list = world.getEntities(world);
  4195. size = list.getSize(list);
  4196. killed = 0;
  4197. for(i = 0; i < size; i++) {
  4198. element = list.getIndex(list, i);
  4199. if(isLiving(element)) {
  4200. entity_type = entity.getType(element);
  4201. if(set.contains(butcher_set, entity_type)) {
  4202. entity.remove(element);
  4203. killed++;
  4204. }
  4205. }
  4206. }
  4207. msg.prefix(player, prefix_commands, concat(text.number(killed), " mobs killed."));
  4208. goto("wait");
  4209. @enderchest
  4210. if(size < 1 || size > 2) {
  4211. msg.prefix(player, prefix_commands, "/enderchest [player] <from-player>");
  4212. goto("wait");
  4213. }
  4214. if(size == 1) {
  4215. from_name = list.getIndex(args, 0);
  4216. }
  4217. elseif(size == 2) {
  4218. affectedname = list.getIndex(args, 0);
  4219. from_name = list.getIndex(args, 1);
  4220. affectedplayer = read.player(affectedname);
  4221. if(affectedplayer == null) {
  4222. msg.prefix(player, prefix_commands, "This player is not online.");
  4223. goto("wait");
  4224. }
  4225. }
  4226. from_player = read.player(from_name);
  4227. if(from_player == null) {
  4228. msg.prefix(player, prefix_commands, "This player is not online.");
  4229. goto("wait");
  4230. }
  4231. player.openEnderchest(affectedplayer, from_player, concat("Enderchest von ", from_name));
  4232. goto("wait");
  4233. @gamemode
  4234. if(size < 1 || size > 2) {
  4235. msg.prefix(player, prefix_commands, "/gamemode <mode> [player]");
  4236. goto("wait");
  4237. }
  4238. if(size == 2) {
  4239. if(!perm.has(player, "gamemode.other")) {
  4240. perm.no(player, "gamemode.other");
  4241. goto("wait");
  4242. }
  4243. affectedname = list.getIndex(args, 1);
  4244. affectedplayer = read.player(affectedname);
  4245. if(affectedplayer == null) {
  4246. msg.prefix(player, prefix_commands, "This player is not online.");
  4247. goto("wait");
  4248. }
  4249. }
  4250. mode = list.getIndex(args, 0);
  4251. if(isDouble(mode)) {
  4252. mode = text.number(mode);
  4253. } else {
  4254. mode = text.toLowerCase(mode);
  4255. }
  4256. if(mode == "s" || mode == "0" || mode == "survival") {
  4257. mode = "survival";
  4258. } elseif(mode == "c" || mode == "1" || mode == "creative") {
  4259. mode = "creative";
  4260. } elseif(mode == "a" || mode == "2" || mode == "adventure") {
  4261. mode = "adventure";
  4262. } elseif(mode == "w" || mode == "3" || mode == "spectator") {
  4263. mode = "spectator";
  4264. } else {
  4265. msg.prefix(player, prefix_commands, "Unknown gamemode.");
  4266. goto("wait");
  4267. }
  4268. player.setGamemode(affectedplayer, mode);
  4269. if(affectedplayer != player) {
  4270. affectedname = player.getName(affectedplayer);
  4271. msg.prefix(player, prefix_commands, concat("Gamemode of ", affectedname, " set to ", mode, "."));
  4272. }
  4273. msg.prefix(affectedplayer, prefix_commands, concat("Set your gamemode to ", mode, "."));
  4274. goto("wait");
  4275. @home
  4276. if(size == 0) {
  4277. @homesyntax
  4278. msg.prefix(player, prefix_commands, "/home ...");
  4279. msg(player, "§6 - set <home> §rSets a home");
  4280. msg(player, "§6 - delete <home> §rDeletes a home");
  4281. if(perm.has(player, "home.other")) {
  4282. msg(player, "§6 - list [player] §rLists all homes");
  4283. msg(player, "§6 - <home> [player] §rTeleports to a home");
  4284. } else {
  4285. msg(player, "§6 - list §rLists your homes");
  4286. msg(player, "§6 - <home> §rTeleports to your home");
  4287. }
  4288. goto("wait");
  4289. }
  4290. arg0 = list.getIndex(args, 0);
  4291. if(arg0 == "del" || arg0 == "delete") {
  4292. if(size < 2) {
  4293. goto("homesyntax");
  4294. }
  4295. player_id = player.getId(player);
  4296. name = list.getIndex(args, 1);
  4297. if(!home.exists(player_id, name)) {
  4298. msg.prefix(player, prefix_commands, concat("Home ", name, "doesn't exist."));
  4299. goto("wait");
  4300. }
  4301. home.delete(player_id, name);
  4302. msg.prefix(player, prefix_commands, concat("Home ", name, " deleted."));
  4303. goto("wait");
  4304. }
  4305. if(arg0 == "list") {
  4306. affecteduuid = player.getUuid(affectedname);
  4307. if(size == 2) {
  4308. if(!perm.has(player, "home.other")) {
  4309. perm.no(player, "home.other");
  4310. goto("wait");
  4311. }
  4312. affectedname = list.getIndex(args, 1);
  4313. affecteduuid = player.getUuid(affectedname);
  4314. if(affecteduuid == null) {
  4315. msg.prefix(player, prefix_commands, "This player has never been online.");
  4316. goto("wait");
  4317. }
  4318. }
  4319. id = player.getId(affecteduuid);
  4320. homes_list = home.getList(id);
  4321. home_amount = list.getSize(homes_list);
  4322. if(home_amount == 0) {
  4323. msg.prefix(player, prefix_commands, "No homes existing.");
  4324. } else {
  4325. msg.prefix(player, prefix_commands, concat("Homes of ", affectedname, ":"));
  4326. for(i = 0; i < home_amount; i++) {
  4327. msg(player, concat("§6 - §r", list.getIndex(homes_list, i)));
  4328. }
  4329. }
  4330. goto("wait");
  4331. }
  4332. location = entity.getLocation(player);
  4333. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4334. if(!isSurvWorldName(world_name)) {
  4335. msg.prefix(player, prefix_commands, "You cant't use this command in this world.");
  4336. goto("wait");
  4337. }
  4338. if(arg0 == "set") {
  4339. if(size < 2) {
  4340. goto("homesyntax");
  4341. }
  4342. player_id = player.getId(player);
  4343. homes_list = home.getList(player_id);
  4344. home_amount = list.getSize(homes_list);
  4345. if(perm.has(player, "isAdmin")) {
  4346. max_homes = 100;
  4347. } elseif(perm.has(player, "isMod")) {
  4348. max_homes = 40;
  4349. } elseif(perm.has(player, "canTP")) {
  4350. max_homes = 10;
  4351. } else {
  4352. max_homes = 5;
  4353. }
  4354. if(home_amount >= max_homes) {
  4355. msg.prefix(player, prefix_commands, concat("You can only set ", text.number(max_homes), " homes."));
  4356. goto("wait");
  4357. }
  4358. name = list.getIndex(args, 1);
  4359. if(name == "set" || name == "del" || name == "delete" || name == "list") {
  4360. msg.prefix(player, prefix_commands, "This name ist not allowed.");
  4361. goto("wait");
  4362. }
  4363. if(!text.onlyletters(name)) {
  4364. msg.prefix(player, prefix_commands, "Only letters allowed.");
  4365. goto("wait");
  4366. }
  4367. if(text.length(name) > 20) {
  4368. msg.prefix(player, prefix_commands, "Maximum 20 letters.");
  4369. goto("wait");
  4370. }
  4371. if(home.exists(player_id, name)) {
  4372. msg.prefix(player, prefix_commands, concat("Home ", name, " already exists."));
  4373. goto("wait");
  4374. }
  4375. home.set(player_id, name, location);
  4376. msg.prefix(player, prefix_commands, concat("Home ", name, " set."));
  4377. goto("wait");
  4378. }
  4379. //Teleportation
  4380. if(size == 2) {
  4381. affectedname = list.getIndex(args, 1);
  4382. }
  4383. affecteduuid = player.getUuid(affectedname);
  4384. if(affecteduuid == null) {
  4385. msg.prefix(player, prefix_commands, "Der Spieler war noch nie online.");
  4386. goto("wait");
  4387. }
  4388. player_id = player.getID(affecteduuid);
  4389. location = home.getLocation(player_id, arg0);
  4390. if(location == null) {
  4391. msg.prefix(player, prefix_commands, "Home doesn't exist."); //oder die welt ist nicht geladen
  4392. goto("wait");
  4393. }
  4394. player.teleport(player, location, true);
  4395. goto("wait");
  4396. @tpa
  4397. if(size != 1) {
  4398. msg.prefix(player, prefix_commands, "/tpa <player>");
  4399. goto("wait");
  4400. }
  4401. p_name = list.getIndex(args, 0);
  4402. p_uuid = player.getUuid(p_name);
  4403. if(p_uuid == null) {
  4404. msg.prefix(player, prefix_commands, "This player has never been online.");
  4405. goto("wait");
  4406. }
  4407. p_name = player.getName(p_uuid);
  4408. p = read.player(p_name);
  4409. if(p == null) {
  4410. msg.prefix(player, prefix_commands, "This player is not online.");
  4411. goto("wait");
  4412. }
  4413. if(!player.doesAcceptTpaRequests(p)) {
  4414. msg.prefix(player, prefix_commands, concat("§c", p_name, "§r rejects teleport requests."));
  4415. goto("wait");
  4416. }
  4417. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4418. if(isGamesWorldName(world_name)) {
  4419. msg.prefix(player, prefix_commands, "You won't teleport in this world.");
  4420. goto("wait");
  4421. }
  4422. world_name = world.getName(loc.getWorld(entity.getLocation(p)));
  4423. if(isGamesWorldName(world_name)) {
  4424. msg.prefix(player, prefix_commands, "You won't teleport to this world.");
  4425. goto("wait");
  4426. }
  4427. addTpaRequest(player.getUuid(player), p_uuid);
  4428. msg(player, concat("§6Teleportanfrage: [§c", player_name, "§6 -> §c ", p_name, "§6]"));
  4429. msg(p, concat("§6Teleportanfrage: [§c", player_name, "§6 -> §c ", p_name, "§6] "), text.click("§6[§aAnnehmen§6]", concat("/tpaccept ", player_name)));
  4430. goto("wait");
  4431. @tpahere
  4432. if(size != 1) {
  4433. msg.prefix(player, prefix_commands, "/tpahere <player>");
  4434. goto("wait");
  4435. }
  4436. p_name = list.getIndex(args, 0);
  4437. p_uuid = player.getUuid(p_name);
  4438. if(p_uuid == null) {
  4439. msg.prefix(player, prefix_commands, "This player has never been online.");
  4440. goto("wait");
  4441. }
  4442. p_name = player.getName(p_uuid);
  4443. p = read.player(p_name);
  4444. if(p == null) {
  4445. msg.prefix(player, prefix_commands, "This player is not online.");
  4446. goto("wait");
  4447. }
  4448. if(!player.doesAcceptTpaRequests(p)) {
  4449. msg.prefix(player, prefix_commands, concat("§c", p_name, "§r rejects teleport requests."));
  4450. goto("wait");
  4451. }
  4452. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4453. if(isGamesWorldName(world_name)) {
  4454. msg.prefix(player, prefix_commands, concat("§c", p_name, "§r darf sich in diese Welt nicht teleportieren."));
  4455. goto("wait");
  4456. }
  4457. world_name = world.getName(loc.getWorld(entity.getLocation(p)));
  4458. if(isGamesWorldName(world_name)) {
  4459. msg.prefix(player, prefix_commands, concat("§c", p_name, "§r darf sich in seiner Welt nicht teleportieren."));
  4460. goto("wait");
  4461. }
  4462. addTpaRequest(p_uuid, player.getUuid(player));
  4463. msg(player, concat("§6Teleportanfrage: [§c", p_name, "§6 -> §c ", player_name, "§6]"));
  4464. msg(p, concat("§6Teleportanfrage: [§c", p_name, "§6 -> §c ", player_name, "§6] "), text.click("§6[§aAnnehmen§6]", concat("/tpaccepthere ", player_name)));
  4465. goto("wait");
  4466. @tpaccept
  4467. if(size != 1) {
  4468. msg.prefix(player, prefix_commands, "/tpaccept <player>");
  4469. goto("wait");
  4470. }
  4471. p_name = list.getIndex(args, 0);
  4472. p_uuid = player.getUuid(p_name);
  4473. if(p_uuid == null) {
  4474. msg.prefix(player, prefix_commands, "This player has never been online.");
  4475. goto("wait");
  4476. }
  4477. p_name = player.getName(p_uuid);
  4478. p = read.player(p_name);
  4479. if(p == null) {
  4480. msg.prefix(player, prefix_commands, "This player is not online.");
  4481. goto("wait");
  4482. }
  4483. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4484. if(isGamesWorldName(world_name)) {
  4485. msg.prefix(player, prefix_commands, concat("§c", p_name, "§r darf sich in diese Welt nicht teleportieren."));
  4486. goto("wait");
  4487. }
  4488. world_name = world.getName(loc.getWorld(entity.getLocation(p)));
  4489. if(isGamesWorldName(world_name)) {
  4490. msg.prefix(player, prefix_commands, concat("§c", p_name, "§r darf sich in seiner Welt nicht teleportieren."));
  4491. goto("wait");
  4492. }
  4493. player_uuid = player.getUuid(player);
  4494. if(!hasTpaRequest(p_uuid, player_uuid)) {
  4495. msg.prefix(player, prefix_commands, "Keine offene Teleportanfrage.");
  4496. goto("wait");
  4497. }
  4498. location = entity.getLocation(player);
  4499. player.teleport(p, location, true);
  4500. goto("wait");
  4501. @tpaccepthere
  4502. if(size != 1) {
  4503. msg.prefix(player, prefix_commands, "/tpaccepthere <player>");
  4504. goto("wait");
  4505. }
  4506. p_name = list.getIndex(args, 0);
  4507. p_uuid = player.getUuid(p_name);
  4508. if(p_uuid == null) {
  4509. msg.prefix(player, prefix_commands, "This player has never been online.");
  4510. goto("wait");
  4511. }
  4512. p_name = player.getName(p_uuid);
  4513. p = read.player(p_name);
  4514. if(p == null) {
  4515. msg.prefix(player, prefix_commands, "This player is not online.");
  4516. goto("wait");
  4517. }
  4518. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4519. if(isGamesWorldName(world_name)) {
  4520. msg.prefix(player, prefix_commands, "You won't teleport in this world.");
  4521. goto("wait");
  4522. }
  4523. world_name = world.getName(loc.getWorld(entity.getLocation(p)));
  4524. if(isGamesWorldName(world_name)) {
  4525. msg.prefix(player, prefix_commands, "You won't teleport to this world.");
  4526. goto("wait");
  4527. }
  4528. player_uuid = player.getUuid(player);
  4529. if(!hasTpaRequest(player_uuid, p_uuid)) {
  4530. msg.prefix(player, prefix_commands, "Keine offene Teleportanfrage.");
  4531. goto("wait");
  4532. }
  4533. location = entity.getLocation(p);
  4534. player.teleport(player, location, true);
  4535. goto("wait");
  4536. @teleport
  4537. if(size < 1 || size > 2) {
  4538. if(perm.has(player, "teleport.other")) {
  4539. msg.prefix(player, prefix_commands, "/teleport [player] <to-player>");
  4540. } else {
  4541. msg.prefix(player, prefix_commands, "/teleport <player>");
  4542. }
  4543. goto("wait");
  4544. }
  4545. if(size == 1) {
  4546. to_name = list.getIndex(args, 0);
  4547. }
  4548. elseif(size == 2) {
  4549. if(!perm.has(player, "teleport.other")) {
  4550. perm.no(player, "teleport.other");
  4551. goto("wait");
  4552. }
  4553. affectedname = list.getIndex(args, 0);
  4554. affectedplayer = read.player(affectedname);
  4555. //Damit der ganze Spielername und nicht nur der eingegebene angezeigt wird
  4556. to_name = list.getIndex(args, 1);
  4557. if(affectedplayer == null) {
  4558. msg.prefix(player, prefix_commands, "This player is not online.");
  4559. goto("wait");
  4560. }
  4561. }
  4562. if(player.hasMinigame(affectedplayer)) {
  4563. if(size == 2) {
  4564. msg(player, "§rThe player can't be teleported now.");
  4565. } else {
  4566. msg(player, "§rYou can't teleport now.");
  4567. }
  4568. goto("wait");
  4569. }
  4570. to_player = read.player(to_name);
  4571. if(to_player == null) {
  4572. msg.prefix(player, prefix_commands, "This player is not online.");
  4573. goto("wait");
  4574. }
  4575. //Damit der ganze Spielername und nicht nur der eingegebene angezeigt wird
  4576. to_name = player.getName(to_player);
  4577. location = entity.getLocation(to_player);
  4578. if(player.teleport(affectedplayer, location, true)) {
  4579. if(player != affectedplayer) {
  4580. affectedname = player.getName(affectedplayer);
  4581. msg.prefix(player, prefix_commands, concat("Teleported ", affectedname, " to ", to_name, "."));
  4582. }
  4583. msg.prefix(affectedplayer, prefix_commands, concat("Teleported you to ", to_name, "."));
  4584. }
  4585. goto("wait");
  4586. @say
  4587. if(size == 0) {
  4588. msg.prefix(sender, prefix_commands, "/say <text>");
  4589. goto("wait");
  4590. }
  4591. message = text.concatList(args, " ", 0, size - 1);
  4592. msg("online", text.hover("[§cServer§r]", "The center of Wusiness"), " ", text.replace(message, "&", "§"));
  4593. msg("SERVER", "[§cServer§r] ", text.replace(message, "&", "§"));
  4594. goto("wait");
  4595. @warp
  4596. if(size == 0) {
  4597. @warpsyntax
  4598. msg.prefix(player, prefix_commands, "/warp ...");
  4599. if(perm.has(player, "warp.create")) {
  4600. msg(player, "§6 - set <warp> §rSets a warp");
  4601. msg(player, "§6 - delete <warp> §rDeletes a warp");
  4602. }
  4603. msg(player, "§6 - list §rLists all warps");
  4604. if(perm.has(player, "teleport.other")) {
  4605. msg(player, "§6 - <warp> [player] §rTeleports a player to a warp");
  4606. } else {
  4607. msg(player, "§6 - <warp> §rTeleports to a warp");
  4608. }
  4609. goto("wait");
  4610. }
  4611. arg0 = list.getIndex(args, 0);
  4612. if(arg0 == "delete") {
  4613. if(!perm.has(player, "warp.create")) {
  4614. perm.no(player, "warp.create");
  4615. goto("wait");
  4616. }
  4617. if(size < 2) {
  4618. goto("warpsyntax");
  4619. }
  4620. warp_name = text.toLowerCase(list.getIndex(args, 1));
  4621. if(warp.get(warp_name) == null) {
  4622. msg.prefix(player, prefix_commands, "Warpname doesn't exist.");
  4623. goto("wait");
  4624. }
  4625. warp.delete(warp_name);
  4626. msg.prefix(player, prefix_commands, concat("Warp ", warp_name, " deleted."));
  4627. goto("wait");
  4628. }
  4629. if(arg0 == "list") {
  4630. warps_list = warp.getList();
  4631. if(list.getSize(warps_list) == 0) {
  4632. msg.prefix(player, prefix_commands, "No warps existing.");
  4633. } else {
  4634. msg.prefix(player, prefix_commands, "All warps:");
  4635. for(i = 0; i < list.getSize(warps_list); i++) {
  4636. msg(player, concat("§6 - §r", list.getIndex(warps_list, i)));
  4637. }
  4638. }
  4639. goto("wait");
  4640. }
  4641. if(arg0 == "set") {
  4642. if(!perm.has(player, "warp.create")) {
  4643. perm.no(player, "warp.create");
  4644. goto("wait");
  4645. }
  4646. if(size < 2) {
  4647. goto("warpsyntax");
  4648. }
  4649. warp_name = text.toLowerCase(list.getIndex(args, 1));
  4650. if(warp.get(warp_name) != null) {
  4651. msg.prefix(player, prefix_commands, "Warpname already exists.");
  4652. goto("wait");
  4653. }
  4654. warp.create(warp_name, entity.getLocation(player));
  4655. msg.prefix(player, prefix_commands, concat("Warp ", warp_name, " set."));
  4656. goto("wait");
  4657. }
  4658. //Teleportation
  4659. warp_name = text.toLowerCase(arg0);
  4660. warploc = warp.get(warp_name);
  4661. if(warploc == null) {
  4662. msg.prefix(player, prefix_commands, "Warpname doesn't exist.");
  4663. goto("wait");
  4664. }
  4665. if(size == 2) {
  4666. if(!perm.has(player, "teleport.other")) {
  4667. perm.no(player, "teleport.other");
  4668. goto("wait");
  4669. }
  4670. affectedname = list.getIndex(args, 1);
  4671. affectedplayer = read.player(affectedname);
  4672. if(affectedplayer == null) {
  4673. msg.prefix(player, prefix_commands, "This player is not online.");
  4674. goto("wait");
  4675. }
  4676. if(player != affectedplayer) {
  4677. affectedname = player.getName(affectedplayer);
  4678. msg.prefix(player, prefix_commands, concat("§7", affectedname, "§r to warp §7", warp_name, "§r teleported."));
  4679. }
  4680. } else {
  4681. if(!perm.has(player, "warp.create")) {
  4682. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4683. if(isGamesWorldName(world_name)) {
  4684. msg.prefix(player, prefix_commands, "You won't teleport in this world.");
  4685. goto("wait");
  4686. }
  4687. world_name = world.getName(loc.getWorld(warploc));
  4688. if(isGamesWorldName(world_name)) {
  4689. msg.prefix(player, prefix_commands, "You won't teleport to this world.");
  4690. goto("wait");
  4691. }
  4692. }
  4693. }
  4694. if(player.teleport(affectedplayer, warploc, true)) {
  4695. msg.prefix(affectedplayer, prefix_commands, concat("You have been teleported to warp §7", warp_name, "."));
  4696. }
  4697. goto("wait");
  4698. @databank
  4699. if(size == 0) {
  4700. @databankhelp
  4701. msg.prefix(player, prefix_commands, "/databank...");
  4702. msg(player, "§6 - showtables §rShows all tables");
  4703. msg(player, "§6 - showfields §rShows fields from a table");
  4704. msg(player, "§6 - showdataypes §rShows dataypes from a table");
  4705. goto("wait");
  4706. }
  4707. arg0 = list.getIndex(args, 0);
  4708. if(arg0 == "showtables") {
  4709. msg(player, getSpacer());
  4710. stmt = databank.prepare("SHOW TABLES");
  4711. result = databank.execute(stmt);
  4712. while(databank.next(result)) {
  4713. msg(player, databank.getString(result, 1));
  4714. }
  4715. databank.close(result);
  4716. databank.close(stmt);
  4717. goto("wait");
  4718. }
  4719. if(arg0 == "showfields") {
  4720. if(size < 2) {
  4721. msg.prefix(player, prefix_commands, "/databank showfields <table>");
  4722. goto("wait");
  4723. }
  4724. table = list.getIndex(args, 1);
  4725. if(!databank.isExistingTable(table)) {
  4726. msg.prefix(player, prefix_commands, "This in no existing table.");
  4727. goto("wait");
  4728. }
  4729. msg(player, getSpacer());
  4730. fields = databank.getTableFields(table);
  4731. iter = list.iterator(fields);
  4732. while(hasNext(iter)) {
  4733. msg(player, next(iter));
  4734. }
  4735. goto("wait");
  4736. }
  4737. if(arg0 == "showdataypes") {
  4738. if(size < 2) {
  4739. msg.prefix(player, prefix_commands, "/databank showdataypes <table>");
  4740. goto("wait");
  4741. }
  4742. table = list.getIndex(args, 1);
  4743. if(!databank.isExistingTable(table)) {
  4744. msg.prefix(player, prefix_commands, "This in no existing table.");
  4745. goto("wait");
  4746. }
  4747. msg(player, getSpacer());
  4748. msg(player, databank.getTableDatatypes(table));
  4749. goto("wait");
  4750. }
  4751. goto("databankhelp");
  4752. @seen
  4753. if(size != 1) {
  4754. msg.prefix(player, prefix_commands, "/seen <player>");
  4755. goto("wait");
  4756. }
  4757. seen_name = list.getIndex(args, 0);
  4758. seen_uuid = player.getUuid(seen_name);
  4759. if(seen_uuid == null) {
  4760. msg.prefix(player, prefix_commands, "Dieser Spieler war noch nie online.");
  4761. goto("wait");
  4762. }
  4763. if(read.player(seen_name) != null) {
  4764. msg.prefix(player, prefix_commands, "Dieser Spieler ist gerade online.");
  4765. goto("wait");
  4766. }
  4767. seenStatement = databank.prepare("SELECT logouttime FROM logoutdata WHERE player_id = ?;");
  4768. databank.setInt(seenStatement, 1, player.getId(seen_uuid));
  4769. result = databank.execute(seenStatement);
  4770. varset = false;
  4771. while(databank.next(result)) {
  4772. time = databank.getLong(result, 1);
  4773. calendar = time.new(time);month = text.number(time.getMonth(calendar));
  4774. year = text.number(time.getYear(calendar));
  4775. month = text.number(time.getMonth(calendar));
  4776. day = text.number(time.getDay(calendar));
  4777. minute = text.number(time.getMinute(calendar));
  4778. hour = text.number(time.getHour(calendar));
  4779. month = correctTimeFormat(month);
  4780. day = correctTimeFormat(day);
  4781. hour = correctTimeFormat(hour);
  4782. minute = correctTimeFormat(minute);
  4783. dateformat = concat(day, ".", month, ".", year);
  4784. clockformat = concat(hour, ":", minute);
  4785. msg.prefix(player, prefix_commands, concat(seen_name, " war zuletzt am §v", dateformat, "§r um §v", clockformat, " Uhr §ronline."));
  4786. varset = true;
  4787. }
  4788. databank.close(result);
  4789. databank.close(seenStatement);
  4790. if(!varset) {
  4791. msg.prefix(player, prefix_commands, "Keine Daten vorhanden.");
  4792. goto("wait");
  4793. }
  4794. goto("wait");
  4795. @lastseen
  4796. if(size != 1) {
  4797. msg.prefix(sender, prefix_commands, "/lastseen <amount>");
  4798. goto("wait");
  4799. }
  4800. amount = list.getIndex(args, 0);
  4801. if(!isDouble(amount)) {
  4802. msg.prefix(sender, prefix_commands, "Zahl erwartet.");
  4803. goto("wait");
  4804. }
  4805. if(amount < 1) {
  4806. msg.prefix(sender, prefix_commands, "Zahl größer 0 erwartet.");
  4807. goto("wait");
  4808. }
  4809. msg.prefix(sender, prefix_commands, "These players were last seen:");
  4810. table = table.new("§f", 12, 12);
  4811. msg(sender, table.getStart(table));
  4812. msg(sender, table.get(table, "Player", "Date"));
  4813. msg(sender, table.getMiddle(table));
  4814. lastseenStatement = databank.prepare("SELECT player_id, logouttime FROM logoutdata ORDER BY logouttime DESC LIMIT ?;");
  4815. databank.setInt(lastseenStatement, 1, amount);
  4816. result = databank.execute(lastseenStatement);
  4817. while(databank.next(result)) {
  4818. id = databank.getInt(result, 1);
  4819. time = databank.getLong(result, 2);
  4820. msg(sender, table.get(table, concat("§a", player.getNameFromId(id)), concat("§e§v", getTimeString(time))));
  4821. }
  4822. msg(sender, table.getEnd(table));
  4823. databank.close(result);
  4824. databank.close(lastseenStatement);
  4825. goto("wait");
  4826. @feed
  4827. if(size > 1) {
  4828. msg.prefix(player, prefix_commands, "/feed [player]");
  4829. goto("wait");
  4830. }
  4831. if(size == 1) {
  4832. affectedname = list.getIndex(args, 0);
  4833. affectedplayer = read.player(affectedname);
  4834. if(affectedplayer == null) {
  4835. msg.prefix(player, prefix_commands, "This player is not online.");
  4836. goto("wait");
  4837. }
  4838. if(player != affectedplayer) {
  4839. affectedname = player.getName(affectedplayer);
  4840. msg.prefix(player, prefix_commands, concat("Der Hunger von ", affectedname, " wurde gestillt."));
  4841. }
  4842. }
  4843. player.setHunger(affectedplayer, 20);
  4844. player.setSaturation(affectedplayer, 5);
  4845. msg.prefix(affectedplayer, prefix_commands, "Dein Hunger wurde gestillt.");
  4846. goto("wait");
  4847. @fly
  4848. if(size > 2) {
  4849. msg.prefix(player, prefix_commands, "/fly [player] [on/off]");
  4850. goto("wait");
  4851. }
  4852. if(size >= 1) {
  4853. if(!perm.has(player, "fly.other")) {
  4854. perm.no(player, "fly.other");
  4855. goto("wait");
  4856. }
  4857. affectedname = list.getIndex(args, 0);
  4858. affectedplayer = read.player(affectedname);
  4859. if(affectedplayer == null) {
  4860. msg.prefix(player, prefix_commands, "This player is not online.");
  4861. goto("wait");
  4862. }
  4863. }
  4864. if(size == 2) {
  4865. boolean = list.getIndex(args, 1);
  4866. if(boolean == "on") {
  4867. fly = true;
  4868. } elseif(boolean == "off") {
  4869. fly = false;
  4870. } else {
  4871. msg.prefix(player, prefix_commands, "/fly [player] [on/off]");
  4872. goto("wait");
  4873. }
  4874. } else {
  4875. if(player.hasFly(affectedplayer)) {
  4876. fly = false;
  4877. } else {
  4878. fly = true;
  4879. }
  4880. }
  4881. player.setFly(affectedplayer, fly);
  4882. if(fly) {
  4883. msg.prefix(affectedplayer, prefix_commands, "You can fly now.");
  4884. if(player != affectedplayer) {
  4885. affectedname = player.getName(affectedplayer);
  4886. msg.prefix(player, prefix_commands, concat(affectedname, " can fly now."));
  4887. }
  4888. } else {
  4889. msg.prefix(affectedplayer, prefix_commands, "You can't fly anymore.");
  4890. if(player != affectedplayer) {
  4891. affectedname = player.getName(affectedplayer);
  4892. msg.prefix(player, prefix_commands, concat(affectedname, " can't fly anymore."));
  4893. }
  4894. }
  4895. goto("wait");
  4896. @tppos
  4897. if(size < 3 || size > 5) {
  4898. msg.prefix(player, prefix_commands, "/tppos <x> <y> <z> [world] [player]");
  4899. goto("wait");
  4900. }
  4901. x = list.getIndex(args, 0);
  4902. y = list.getIndex(args, 1);
  4903. z = list.getIndex(args, 2);
  4904. if(!isDouble(x) || !isDouble(y) || !isDouble(z)) {
  4905. msg.prefix(player, prefix_commands, "x/y/z müssen Zahlen sein.");
  4906. goto("wait");
  4907. }
  4908. if(size >= 4) {
  4909. worldname = list.getIndex(args, 3);
  4910. world = world.get(worldname);
  4911. if(world == null) {
  4912. msg.prefix(player, prefix_commands, "This world is not loaded.");
  4913. goto("wait");
  4914. }
  4915. } else {
  4916. world = loc.getWorld(entity.getLocation(player));
  4917. }
  4918. if(x < -16000) {
  4919. x = -16000;
  4920. } elseif(x > 16000) {
  4921. x = 16000;
  4922. }
  4923. if(y < 0) {
  4924. y = 0;
  4925. } elseif(y > 255) {
  4926. y = 255;
  4927. }
  4928. if(z < -16000) {
  4929. z = -16000;
  4930. } elseif(z > 16000) {
  4931. z = 16000;
  4932. }
  4933. location = loc.new(world, x, y, z);
  4934. if(size == 5) {
  4935. affectedname = list.getIndex(args, 4);
  4936. affectedplayer = read.player(affectedname);
  4937. if(affectedplayer == null) {
  4938. msg.prefix(player, prefix_commands, "This player is not online.");
  4939. goto("wait");
  4940. }
  4941. }
  4942. if(player.hasMinigame(affectedplayer)) {
  4943. if(size == 5) {
  4944. msg(player, "§rThe player can't be teleported now.");
  4945. } else {
  4946. msg(player, "§rYou can't teleport now.");
  4947. }
  4948. goto("wait");
  4949. }
  4950. if(player.teleport(affectedplayer, location, true)) {
  4951. if(player != affectedplayer) {
  4952. affectedname = player.getName(affectedplayer);
  4953. msg.prefix(player, prefix_commands, concat(affectedname, " was teleported."));
  4954. }
  4955. }
  4956. goto("wait");
  4957. @back
  4958. if(size > 0) {
  4959. msg.prefix(player, prefix_commands, "/back");
  4960. goto("wait");
  4961. }
  4962. if(player.hasMinigame(player)) {
  4963. msg(player, "§rYou can't teleport now.");
  4964. goto("wait");
  4965. }
  4966. hasPerms = perm.has(player, "isTeam");
  4967. if(!hasPerms) {
  4968. world_name = world.getName(loc.getWorld(entity.getLocation(player)));
  4969. if(isGamesWorldName(world_name)) {
  4970. msg.prefix(player, prefix_commands, "You won't teleport in this world.");
  4971. goto("wait");
  4972. }
  4973. }
  4974. location = player.getBackPos(player);
  4975. if(location == null) {
  4976. msg.prefix(player, prefix_commands, "No back-location available.");
  4977. goto("wait");
  4978. }
  4979. world = loc.getWorld(location);
  4980. if(world == null) {
  4981. msg.prefix(player, prefix_commands, "This world is not loaded.");
  4982. goto("wait");
  4983. }
  4984. if(!hasPerms) {
  4985. world_name = world.getName(world);
  4986. if(isGamesWorldName(world_name)) {
  4987. msg.prefix(player, prefix_commands, "You won't teleport to this world.");
  4988. goto("wait");
  4989. }
  4990. }
  4991. player.teleport(player, location, true);
  4992. goto("wait");
  4993. @color
  4994. msg(player, getSpacer());
  4995. msg(player, " §0&0 §1&1 §2&2 §3&3 §4&4 §5&5 §6&6 §7&7");
  4996. msg(player, " §8&8 §9&9 §a&a §b&b §c&c §d&d §e&e §f&f");
  4997. msg(player, " &l §l(bold)");
  4998. msg(player, " &m §m(strikethrough)");
  4999. msg(player, " &n §n(underline)");
  5000. msg(player, " &o §o(italic)");
  5001. goto("wait");
  5002. @wusi
  5003. msg.prefix(player, prefix_commands, list.getIndex(easter_eggs, math.random(0, list.getSize(easter_eggs) - 1)));
  5004. goto("wait");
  5005. @setspawn
  5006. if(size != 1) {
  5007. @setspawnhelp
  5008. msg.prefix(player, prefix_commands, "§r/setspawn ...");
  5009. msg(player, "§6 - server");
  5010. msg(player, "§6 - games");
  5011. msg(player, "§6 - creative");
  5012. goto("wait");
  5013. }
  5014. arg0 = list.getIndex(args, 0);
  5015. new_spawn = text.location(entity.getLocation(player));
  5016. config = getScriptVar("server_config");
  5017. if(arg0 == "games") {
  5018. config.set(config, "gamesspawn", new_spawn);
  5019. msg.prefix(player, prefix_commands, "New spawn for gaming world set.");
  5020. } elseif(arg0 == "server") {
  5021. config.set(config, "serverspawn", new_spawn);
  5022. msg.prefix(player, prefix_commands, "New main Spawn set.");
  5023. } elseif(arg0 == "creative") {
  5024. config.set(config, "creativespawn", new_spawn);
  5025. msg.prefix(player, prefix_commands, "New spawn for creative world set.");
  5026. } else {
  5027. goto("setspawnhelp");
  5028. }
  5029. config.saveAsync(config);
  5030. goto("wait");
  5031. @heal
  5032. if(size > 1) {
  5033. msg.prefix(player, prefix_commands, "/heal [player]");
  5034. goto("wait");
  5035. }
  5036. if(size == 1) {
  5037. affectedname = list.getIndex(args, 0);
  5038. affectedplayer = read.player(affectedname);
  5039. if(affectedplayer == null) {
  5040. msg.prefix(player, prefix_commands, "This player is not online.");
  5041. goto("wait");
  5042. }
  5043. if(player != affectedplayer) {
  5044. affectedname = player.getName(affectedplayer);
  5045. msg.prefix(player, prefix_commands, concat(affectedname, " was healed."));
  5046. }
  5047. }
  5048. entity.heal(affectedplayer, 50);
  5049. player.setHunger(affectedplayer, 20);
  5050. player.setSaturation(affectedplayer, 5);
  5051. entity.clearEffects(affectedplayer);
  5052. msg.prefix(affectedplayer, prefix_commands, "You have been healed.");
  5053. goto("wait");
  5054. @inv
  5055. if(size == 0) {
  5056. @invhelp
  5057. msg.prefix(player, prefix_commands, "§r/inv ...");
  5058. if(perm.has(player, "inv.ignore")) {
  5059. msg(player, "§6 - ignore §rToggles inventory change on world change");
  5060. }
  5061. if(perm.has(player, "inv.see")) {
  5062. msg(player, "§6 - see <player> §rOpens a player's inventory");
  5063. }
  5064. if(perm.has(player, "inv.reload")) {
  5065. msg(player, "§6 - reload <player> §rReloads a player's inventory");
  5066. }
  5067. if(perm.has(player, "inv.saveFor")) {
  5068. msg(player, "§6 - saveFor <player> <world> §rSaves your inventory for a player");
  5069. }
  5070. if(perm.has(player, "inv.loadFrom")) {
  5071. msg(player, "§6 - loadFrom <player> <world> §rLoads a player's inventory for you");
  5072. }
  5073. goto("wait");
  5074. }
  5075. arg0 = list.getIndex(args, 0);
  5076. if(arg0 == "ignore") {
  5077. if(!perm.has(player, "inv.ignore")) {
  5078. perm.no(player, "inv.ignore");
  5079. goto("wait");
  5080. }
  5081. ignore = player.hasInvIgnore(player);
  5082. if(ignore == null) {
  5083. ignore = false;
  5084. }
  5085. if(ignore) {
  5086. msg.prefix(player, prefix_commands, "Your inventory will change on joining another world.");
  5087. } else {
  5088. msg.prefix(player, prefix_commands, "You'll keep your inventory on joining another world.");
  5089. }
  5090. player.invIgnore(player, !ignore);
  5091. goto("wait");
  5092. }
  5093. if(arg0 == "see") {
  5094. if(!perm.has(player, "inv.see")) {
  5095. perm.no(player, "inv.see");
  5096. goto("wait");
  5097. }
  5098. if(size < 2) {
  5099. msg.prefix(player, prefix_commands, "/inv see <player>");
  5100. goto("wait");
  5101. }
  5102. p_name = list.getIndex(args, 1);
  5103. p_uuid = player.getUuid(p_name);
  5104. if(p_uuid == null) {
  5105. msg.prefix(player, prefix_commands, "This player has never been online.");
  5106. goto("wait");
  5107. }
  5108. p = read.player(p_name);
  5109. if(p == null) {
  5110. msg.prefix(player, prefix_commands, "This player is not online.");
  5111. goto("wait");
  5112. }
  5113. inv.show(p, player);
  5114. goto("wait");
  5115. }
  5116. if(arg0 == "reload") {
  5117. if(!perm.has(player, "inv.reload")) {
  5118. perm.no(player, "inv.reload");
  5119. goto("wait");
  5120. }
  5121. if(size < 2) {
  5122. msg.prefix(player, prefix_commands, "/inv reload <player>");
  5123. goto("wait");
  5124. }
  5125. p_name = list.getIndex(args, 1);
  5126. p_uuid = player.getUuid(p_name);
  5127. if(p_uuid == null) {
  5128. msg.prefix(player, prefix_commands, "This player has never been online.");
  5129. goto("wait");
  5130. }
  5131. p = read.player(p_name);
  5132. if(p == null) {
  5133. msg.prefix(player, prefix_commands, "This player is not online.");
  5134. goto("wait");
  5135. }
  5136. world = loc.getWorld(entity.getLocation(p));
  5137. inv.loadFromPlayer(p, p, world);
  5138. msg.prefix(player, prefix_commands, "Inventory reloaded.");
  5139. goto("wait");
  5140. }
  5141. if(arg0 == "saveFor") {
  5142. if(size != 1 && size != 3) {
  5143. msg.prefix(player, prefix_commands, "/inv saveFor <player> <world>");
  5144. goto("wait");
  5145. }
  5146. if(size == 1) {
  5147. for_player_or_id = player.getId(player);
  5148. world = loc.getWorld(entity.getLocation(player));
  5149. }
  5150. if(size == 3) {
  5151. if(!perm.has(player, "inv.saveFor")) {
  5152. perm.no(player, "inv.saveFor");
  5153. goto("wait");
  5154. }
  5155. p_name = list.getIndex(args, 1);
  5156. p_uuid = player.getUuid(p_name);
  5157. if(p_uuid == null) {
  5158. msg.prefix(player, prefix_commands, "This player has never been online.");
  5159. goto("wait");
  5160. }
  5161. p = read.player(p_name);
  5162. if(p != null) {
  5163. msg.prefix(player, prefix_commands, "This player is online. Use /invsee");
  5164. goto("wait");
  5165. }
  5166. for_player_or_id = player.getId(p_uuid);
  5167. world_name = list.getIndex(args, 2);
  5168. world = world.get(world_name);
  5169. if(world == null) {
  5170. msg.prefix(player, prefix_world, "This world is not loaded.");
  5171. goto("wait");
  5172. }
  5173. }
  5174. inv.saveForPlayer(player, for_player_or_id, world);
  5175. msg.prefix(player, prefix_commands, "Inventory saved.");
  5176. goto("wait");
  5177. }
  5178. if(arg0 == "loadFrom") {
  5179. if(size != 1 && size != 3) {
  5180. msg.prefix(player, prefix_commands, "/inv loadFrom <player> <world>");
  5181. goto("wait");
  5182. }
  5183. if(size == 1) {
  5184. from_player_or_id = player.getId(player);
  5185. world = loc.getWorld(entity.getLocation(player));
  5186. }
  5187. if(size == 3) {
  5188. if(!perm.has(player, "inv.loadFrom")) {
  5189. perm.no(player, "inv.loadFrom");
  5190. goto("wait");
  5191. }
  5192. p_name = list.getIndex(args, 1);
  5193. p_uuid = player.getUuid(p_name);
  5194. if(p_uuid == null) {
  5195. msg.prefix(player, prefix_commands, "This player has never been online.");
  5196. goto("wait");
  5197. }
  5198. p = read.player(p_name);
  5199. if(p != null) {
  5200. msg.prefix(player, prefix_commands, "This player is online. Use /invsee");
  5201. goto("wait");
  5202. }
  5203. from_player_or_id = player.getId(p_uuid);
  5204. world_name = list.getIndex(args, 2);
  5205. world = world.get(world_name);
  5206. if(world == null) {
  5207. msg.prefix(player, prefix_world, "This world is not loaded.");
  5208. goto("wait");
  5209. }
  5210. }
  5211. inv.loadFromPlayer(player, from_player_or_id, world);
  5212. msg.prefix(player, prefix_commands, "Inventory loaded.");
  5213. goto("wait");
  5214. }
  5215. goto("wait");
  5216. @boost
  5217. entity.throw(player, 0, 5, 0);
  5218. goto("wait");
  5219. @memory
  5220. msg.prefix(player, prefix_commands, concat("Used RAM: ", text.number(usedMemory()), " / ", text.number(math.round(allocatedMemory())), " MB"));
  5221. goto("wait");
  5222. @world
  5223. if(size == 0) {
  5224. @world_syntax
  5225. msg.prefix(player, prefix_world, "/world ...");
  5226. msg(player, "§6§t - info <world> §rShows info about a world");
  5227. msg(player, "§6§t - tp <world> [player] §rTeleports a player to a world");
  5228. msg(player, "§6§t - list §rShows all loaded worlds");
  5229. msg(player, "§6§t - load <world> §rLoads a world");
  5230. msg(player, "§6§t - unload <world> §rUnloads a world (removes it from memory)");
  5231. msg(player, "§6§t - setspawn §rSets the world's spawn");
  5232. msg(player, "§6§t - diffi <world> <diffi> §rSets the world's difficulty");
  5233. goto("wait");
  5234. }
  5235. arg0 = text.toLowerCase(list.getIndex(args, 0));
  5236. if(arg0 == "info") {
  5237. msg(player, getSpacer());
  5238. world = loc.getWorld(entity.getLocation(player));
  5239. msg(player, "§6World: §r", world.getName(world));
  5240. msg(player, "§6Rain: §r", world.hasStorm(world));
  5241. time = world.getTime(world);
  5242. while(time >= 24000) {
  5243. time -= 24000;
  5244. }
  5245. msg(player, "§6Zeit: §r", text.number(time));
  5246. goto("wait");
  5247. }
  5248. if(arg0 == "tp") {
  5249. if(size < 2 || size > 3) {
  5250. msg.prefix(player, prefix_world, "§r/world tp <world> [player]");
  5251. goto("wait");
  5252. }
  5253. if(size >= 2) {
  5254. worldname = list.getIndex(args, 1);
  5255. world = world.get(worldname);
  5256. if(world == null) {
  5257. msg.prefix(player, prefix_world, "This world is not loaded.");
  5258. goto("wait");
  5259. }
  5260. }
  5261. if(size == 3) {
  5262. affectedname = list.getIndex(args, 2);
  5263. affectedplayer = read.player(affectedname);
  5264. if(affectedplayer == null) {
  5265. msg.prefix(player, prefix_world, "This player is not online.");
  5266. goto("wait");
  5267. }
  5268. }
  5269. if(player.hasMinigame(affectedplayer)) {
  5270. if(size == 3) {
  5271. msg(player, "This player can't be teleported now.");
  5272. } else {
  5273. msg(player, "You can't teleport now.");
  5274. }
  5275. goto("wait");
  5276. }
  5277. if(player != affectedplayer) {
  5278. affectedname = player.getName(affectedplayer);
  5279. msg.prefix(player, prefix_world, concat(affectedname, " was teleported to the spawn of the world ", worldname, "."));
  5280. }
  5281. worldspawn = world.getSpawn(world);
  5282. player.teleport(affectedplayer, worldspawn, true);
  5283. goto("wait");
  5284. }
  5285. if(arg0 == "list") {
  5286. msg.prefix(player, prefix_world, "Loaded worlds:");
  5287. worldlist = world.getAll();
  5288. for(i = 0; i < list.getSize(worldlist); i++) {
  5289. msg(player, " - ", world.getName(list.getIndex(worldlist, i)));
  5290. }
  5291. msg(player, getSpacer());
  5292. goto("wait");
  5293. }
  5294. if(arg0 == "load") {
  5295. if(size != 2) {
  5296. msg.prefix(player, prefix_world, "§r/world load <world>");
  5297. goto("wait");
  5298. }
  5299. worldname = list.getIndex(args, 1);
  5300. world = world.get(worldname);
  5301. if(world != null) {
  5302. msg.prefix(player, prefix_world, "This world is already loaded.");
  5303. goto("wait");
  5304. }
  5305. if(!world.register(worldname)) {
  5306. msg.prefix(player, prefix_world, concat("The world ", worldname, " can't be found."));
  5307. goto("wait");
  5308. }
  5309. msg.prefix(player, prefix_world, "The world was loaded.");
  5310. goto("wait");
  5311. }
  5312. if(arg0 == "unload") {
  5313. if(size != 2) {
  5314. msg.prefix(player, prefix_world, "§r/world unload <world>");
  5315. goto("wait");
  5316. }
  5317. worldname = list.getIndex(args, 1);
  5318. world = world.get(worldname);
  5319. if(world == null) {
  5320. msg.prefix(player, prefix_world, "This world is not loaded.");
  5321. goto("wait");
  5322. }
  5323. if(!world.unregister(worldname)) {
  5324. msg.prefix(player, prefix_world, "This world can't be unlaoded.");
  5325. goto("wait");
  5326. }
  5327. msg.prefix(player, prefix_world, "You unlaoded this world.");
  5328. goto("wait");
  5329. }
  5330. if(arg0 == "setspawn") {
  5331. location = entity.getLocation(player);
  5332. world.setSpawn(location, 0);
  5333. msg.prefix(player, prefix_world, concat("New spawn of the world ", world.getName(loc.getWorld(location)), " set."));
  5334. goto("wait");
  5335. }
  5336. if(arg0 == "diffi") {
  5337. if(size != 3) {
  5338. msg.prefix(player, prefix_world, "§r/world diffi <world> <diffi>");
  5339. goto("wait");
  5340. }
  5341. worldname = list.getIndex(args, 1);
  5342. world = world.get(worldname);
  5343. if(world == null) {
  5344. msg.prefix(player, prefix_world, "This world is not loaded.");
  5345. goto("wait");
  5346. }
  5347. diffi_string = list.getIndex(args, 2);
  5348. if(diffi_string != "PEACEFUL" || diffi_string != "EASY" || diffi_string != "NORMAL" || diffi_string != "HARD") {
  5349. msg.prefix(player, prefix_world, "False input.");
  5350. goto("wait");
  5351. }
  5352. world.setDiffi(world, diffi_string);
  5353. msg.prefix(player, prefix_world, "Difficulty changed.");
  5354. goto("wait");
  5355. }
  5356. goto("world_syntax");
  5357. @giveup
  5358. script_id = quest.getFromPlayer(player);
  5359. if(script_id == null) {
  5360. msg.prefix(player, prefix_quest, "You are not in a quest.");
  5361. goto("wait");
  5362. }
  5363. script = script.getFromId(script_id);
  5364. if(script == null) {
  5365. msg.prefix(player, prefix_quest, "You have no quest.");
  5366. goto("wait");
  5367. }
  5368. setScriptVar("player", player);
  5369. script.callEvent("quest_term", script);
  5370. quest.term(script, player);
  5371. msg.prefix(player, prefix_quest, "Quest termed.");
  5372. goto("wait");
  5373. @leave
  5374. set = player.getMinigameIds(player);
  5375. iter = set.iterator(set);
  5376. if(hasNext(iter)) {
  5377. script_id = next(iter);
  5378. script = script.getFromId(script_id);
  5379. if(script == null) {
  5380. snuvi.debug(concat("Player left game without existing gamescript ", set));
  5381. msg.prefix(player, prefix_commands, "An error occured and some displays may not have been reset. So please panic and call for an admin! No, please don't do that.");
  5382. player.resetMinigames(player);
  5383. entity.teleport(player, gamesspawn);
  5384. goto("wait");
  5385. }
  5386. minigame.hub(script, player);
  5387. goto("wait");
  5388. }
  5389. msg.prefix(player, "§dScript", "You are not in a minigame.");
  5390. goto("wait");
  5391. function minigame.hub(script, player) {
  5392. script.setVar(script, "player", player);
  5393. script.callEvent("player_giveup", script);
  5394. }
  5395. @jail
  5396. if(size != 1) {
  5397. msg.prefix(player, prefix_commands, "/jail <player>");
  5398. } else {
  5399. p_name = list.getIndex(args, 0);
  5400. if(!checkIfEverOnline(p_name)) {
  5401. msg.prefix(player, prefix_jail, "This player has never been online.");
  5402. goto("wait");
  5403. }
  5404. p_uuid = player.getUuid(p_name);
  5405. if(isJailed(p_uuid)) {
  5406. msg.prefix(player, prefix_jail, "This player is already jailed.");
  5407. goto("wait");
  5408. }
  5409. if(player_name == p_name) {
  5410. msg.prefix(player, prefix_jail, "Self-Jailing isn't a good idea.");
  5411. goto("wait");
  5412. }
  5413. if(!isOnline(p_name)) {
  5414. msg.prefix(player, prefix_jail, "This player is not online.");
  5415. goto("wait");
  5416. }
  5417. p = read.player(p_name);
  5418. if(perm.has(p, "jail")) {
  5419. msg.prefix(player, prefix_jail, "You can't jail this player.");
  5420. goto("wait");
  5421. }
  5422. list.add(jailed_list, p_uuid);
  5423. msg.prefix(player, prefix_jail, concat(p_name, " wurde gejailt"));
  5424. showJail(p_name);
  5425. if(!jail_loop_active) {
  5426. sgoto(5, "jailloop");
  5427. }
  5428. }
  5429. goto("wait");
  5430. @unjail
  5431. if(size != 1) {
  5432. msg.prefix(player, prefix_commands, "/unjail <player>");
  5433. } else {
  5434. p_name = list.getIndex(args, 0);
  5435. if(!checkIfEverOnline(p_name)) {
  5436. msg.prefix(player, prefix_jail, "This player has never been online.");
  5437. goto("wait");
  5438. }
  5439. p_uuid = player.getUuid(p_name);
  5440. if(!isJailed(p_uuid)) {
  5441. msg.prefix(player, prefix_jail, "This player is not jailed.");
  5442. goto("wait");
  5443. }
  5444. list.remove(jailed_list, p_uuid);
  5445. msg.prefix(player, prefix_jail, "You freed this player from jail.");
  5446. }
  5447. goto("wait");
  5448. //--------------------------------------------------
  5449. //Inv-Utils
  5450. //--------------------------------------------------
  5451. function inv.show(from_player, to_player) {
  5452. inv = inv.new("333333333333333333333333333333333333");
  5453. set.add($invseeids, inv.getId(inv));
  5454. for(slot = 0; slot <= 35; slot++) {
  5455. inv.setItem(inv, slot, player.getInvSlot(from_player, slot));
  5456. }
  5457. inv.open(inv, to_player, concat("Inventory of ", player.getName(from_player)));
  5458. }
  5459. //--------------------------------------------------
  5460. //Databank-Utils
  5461. //--------------------------------------------------
  5462. function databank.isExistingTable(table) {
  5463. temp = false;
  5464. stmt = databank.prepare("SHOW TABLES");
  5465. result = databank.execute(stmt);
  5466. while(databank.next(result)) {
  5467. if(table == databank.getString(result, 1)) {
  5468. temp = true;
  5469. break;
  5470. }
  5471. }
  5472. databank.close(result);
  5473. databank.close(stmt);
  5474. return temp;
  5475. }
  5476. function databank.getTableFields(table) {
  5477. fields = list.new();
  5478. stmt = databank.prepare(concat("SHOW FIELDS FROM ", table));
  5479. result = databank.execute(stmt);
  5480. while(databank.next(result)) {
  5481. list.add(fields, databank.getString(result, 1));
  5482. }
  5483. databank.close(result);
  5484. databank.close(stmt);
  5485. return fields;
  5486. }
  5487. function databank.getTableDatatypes(table) {
  5488. stmt = databank.prepare(concat("SHOW CREATE TABLE ", table));
  5489. result = databank.execute(stmt);
  5490. if(databank.next(result)) {
  5491. temp = databank.getString(result, 2);
  5492. }
  5493. databank.close(result);
  5494. databank.close(stmt);
  5495. return temp;
  5496. }
  5497. //--------------------------------------------------
  5498. //Tipp-Utils
  5499. //--------------------------------------------------
  5500. function tipp.register(tipp_key, tipp_value) {
  5501. stmt = databank.prepare("INSERT INTO tipps (tipp_key, tipp_value) VALUES (?,?)");
  5502. databank.setString(stmt, 1, tipp_key);
  5503. databank.setString(stmt, 2, tipp_value);
  5504. databank.workerExecute(stmt);
  5505. }
  5506. function tipp.get(tipp_key) {
  5507. tipp_value = null;
  5508. stmt = databank.prepare("SELECT tipp_value FROM tipps WHERE tipp_key = ?;");
  5509. databank.setString(stmt, 1, tipp_key);
  5510. result = databank.execute(stmt);
  5511. while(databank.next(result)) {
  5512. tipp_value = databank.getString(result, 1);
  5513. }
  5514. databank.close(result);
  5515. databank.close(stmt);
  5516. return tipp_value;
  5517. }
  5518. //--------------------------------------------------
  5519. //Warp-Utils
  5520. //--------------------------------------------------
  5521. function warp.create(warp_name, location) {
  5522. stmt = databank.prepare("INSERT INTO warps (name, world_name, x, y, z, yaw, pitch) VALUES (?,?,?,?,?,?,?);");
  5523. databank.setString(stmt, 1, warp_name);
  5524. databank.setString(stmt, 2, world.getName(loc.getWorld(location)));
  5525. x = loc.getX(location);
  5526. databank.setDouble(stmt, 3, loc.getX(location));
  5527. databank.setDouble(stmt, 4, loc.getY(location));
  5528. databank.setDouble(stmt, 5, loc.getZ(location));
  5529. databank.setDouble(stmt, 6, loc.getYaw(location));
  5530. databank.setDouble(stmt, 7, loc.getPitch(location));
  5531. databank.workerExecute(stmt);
  5532. }
  5533. function warp.get(warp_name) {
  5534. stmt = databank.prepare("SELECT world_name, x, y, z, yaw, pitch FROM warps WHERE name = ?;");
  5535. databank.setString(stmt, 1, warp_name);
  5536. result = databank.execute(stmt);
  5537. if(databank.next(result)) {
  5538. world = world.get(databank.getString(result, 1));
  5539. if(world == null) {
  5540. return null;
  5541. }
  5542. x = databank.getDouble(result, 2);
  5543. y = databank.getDouble(result, 3);
  5544. z = databank.getDouble(result, 4);
  5545. yaw = databank.getDouble(result, 5);
  5546. pitch = databank.getDouble(result, 6);
  5547. location = loc.new(world, x, y, z, yaw, pitch);
  5548. }
  5549. databank.close(result);
  5550. databank.close(stmt);
  5551. return location;
  5552. }
  5553. function warp.delete(warp_name) {
  5554. stmt = databank.prepare("DELETE FROM warps WHERE name = ?;");
  5555. databank.setString(stmt, 1, warp_name);
  5556. databank.workerExecute(stmt);
  5557. }
  5558. function warp.getList() {
  5559. list = list.new();
  5560. stmt = databank.prepare("SELECT name FROM warps;");
  5561. result = databank.execute(stmt);
  5562. while(databank.next(result)) {
  5563. list.add(list, databank.getString(result, 1));
  5564. }
  5565. databank.close(result);
  5566. databank.close(stmt);
  5567. return list;
  5568. }
  5569. //--------------------------------------------------
  5570. //Home-Utils
  5571. //--------------------------------------------------
  5572. function home.set(player_id, home_name, location) {
  5573. stmt = databank.prepare("INSERT INTO homes (player_id, name, world_name, x, y, z, yaw, pitch) VALUES (?,?,?,?,?,?,?,?);");
  5574. databank.setInt(stmt, 1, player_id);
  5575. databank.setString(stmt, 2, home_name);
  5576. databank.setString(stmt, 3, world.getName(loc.getWorld(location)));
  5577. databank.setInt(stmt, 4, loc.getX(location));
  5578. databank.setInt(stmt, 5, loc.getY(location));
  5579. databank.setInt(stmt, 6, loc.getZ(location));
  5580. databank.setInt(stmt, 7, loc.getYaw(location));
  5581. databank.setInt(stmt, 8, loc.getPitch(location));
  5582. databank.workerExecute(stmt);
  5583. }
  5584. function home.delete(player_id, home_name) {
  5585. stmt = databank.prepare("DELETE FROM homes WHERE player_id = ? AND name = ?;");
  5586. databank.setInt(stmt, 1, player_id);
  5587. databank.setString(stmt, 2, home_name);
  5588. databank.workerExecute(stmt);
  5589. }
  5590. function home.getLocation(player_id, home_name) {
  5591. stmt = databank.prepare("SELECT world_name, x, y, z, yaw, pitch FROM homes WHERE player_id = ? AND name = ?;");
  5592. databank.setInt(stmt, 1, player_id);
  5593. databank.setString(stmt, 2, home_name);
  5594. result = databank.execute(stmt);
  5595. if(databank.next(result)) {
  5596. world = world.get(databank.getString(result, 1));
  5597. if(world == null) {
  5598. return null;
  5599. }
  5600. x = databank.getDouble(result, 2);
  5601. y = databank.getDouble(result, 3);
  5602. z = databank.getDouble(result, 4);
  5603. yaw = databank.getDouble(result, 5);
  5604. pitch = databank.getDouble(result, 6);
  5605. location = loc.new(world, x, y, z, yaw, pitch);
  5606. }
  5607. databank.close(result);
  5608. databank.close(stmt);
  5609. return location;
  5610. }
  5611. function home.exists(player_id, home_name) {
  5612. stmt = databank.prepare("SELECT player_id FROM homes WHERE player_id = ? AND name = ?;");
  5613. databank.setInt(stmt, 1, player_id);
  5614. databank.setString(stmt, 2, home_name);
  5615. result = databank.execute(stmt);
  5616. if(databank.next(result)) {
  5617. temp = true;
  5618. } else {
  5619. temp = false;
  5620. }
  5621. databank.close(result);
  5622. databank.close(stmt);
  5623. return temp;
  5624. }
  5625. function home.getList(player_id) {
  5626. homes_list = list.new();
  5627. stmt = databank.prepare("SELECT name FROM homes WHERE player_id = ?;");
  5628. databank.setInt(stmt, 1, player_id);
  5629. result = databank.execute(stmt);
  5630. while(databank.next(result)) {
  5631. list.add(homes_list, databank.getString(result, 1));
  5632. }
  5633. databank.close(result);
  5634. databank.close(stmt);
  5635. return homes_list;
  5636. }
  5637. function hasTpaRequest(player_uuid, aim_uuid) {
  5638. for(i = 0; i < list.getSize($tpa_request); i++) {
  5639. array = list.getIndex($tpa_request, i);
  5640. if(array[0] == player_uuid && array[1] == aim_uuid) {
  5641. list.removeIndex($tpa_request, i);
  5642. return true;
  5643. }
  5644. }
  5645. return false;
  5646. }
  5647. function addTpaRequest(player_uuid, aim_uuid) {
  5648. array = array.new(2);
  5649. array[0] = player_uuid;
  5650. array[1] = aim_uuid;
  5651. list.add($tpa_request, array);
  5652. }
  5653. function setCommandHelps() {
  5654. command.clearHelp();
  5655. command.clearIgnored();
  5656. command.addIgnored("teleport");
  5657. command.addIgnored("time");
  5658. command.addIgnored("help");
  5659. command.addIgnored("ban");
  5660. command.addIgnored("kick");
  5661. command.addIgnored("kill");
  5662. command.addIgnored("gamemode");
  5663. addCommandHelp("silentjoin");
  5664. addCommandHelp("wusi");
  5665. addCommandHelp("nowb");
  5666. addCommandHelp("coords");
  5667. addCommandHelp("ping");
  5668. addCommandHelp("rank");
  5669. addCommandHelp("back");
  5670. addCommandHelp("boost");
  5671. addCommandHelp("bug");
  5672. addCommandHelp("report");
  5673. addCommandHelp("startgame");
  5674. addCommandHelp("top");
  5675. addCommandHelp("repair");
  5676. addCommandHelpChildPlayer("mute");
  5677. addCommandHelpChildPlayer("unmute");
  5678. addCommandHelpChildPlayer("tpa");
  5679. addCommandHelpChildPlayer("tpaccept");
  5680. addCommandHelpChildPlayer("tpahere");
  5681. addCommandHelpChildPlayer("tpaccepthere");
  5682. addCommandHelpChildPlayer("head");
  5683. addCommandHelpChildPlayer("seen");
  5684. addCommandHelpChildPlayer("heal");
  5685. addCommandHelpChildPlayer("feed");
  5686. help = addCommandHelp("color");
  5687. addCommandAlias(help, "colour", "color");
  5688. help = addCommandHelp("iteminfo");
  5689. addCommandAlias(help, "itemdb", "iteminfo");
  5690. help = addCommandHelp("head");
  5691. addCommandAlias(help, "skull", "head");
  5692. help = addCommandHelp("memory");
  5693. addCommandAlias(help, "ram", "memory");
  5694. help = addCommandHelp("afk");
  5695. addCommandAlias(help, "afklo", "afk");
  5696. help = addCommandHelp("leave");
  5697. addCommandAlias(help, "l", "leave");
  5698. addCommandAlias(help, "hub", "leave");
  5699. help = addCommandHelp("giveup");
  5700. addCommandAlias(help, "fuckit", "giveup");
  5701. help = command.newHelp("vanish", "vanish");
  5702. //vanish [on] [player]
  5703. helpArg0 = command.newHelpLiteral("on");
  5704. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  5705. command.addHelpChild(help, helpArg0);
  5706. //vanish [off] [player]
  5707. helpArg0 = command.newHelpLiteral("off");
  5708. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  5709. command.addHelpChild(help, helpArg0);
  5710. command.addHelp(help);
  5711. addCommandAlias(help, "v", "vanish");
  5712. help = command.newHelp("start", "start");
  5713. command.addHelpChild(help, command.newHelpLiteral("ai"));
  5714. command.addHelpChild(help, command.newHelpLiteral("chat"));
  5715. command.addHelpChild(help, command.newHelpLiteral("commands"));
  5716. command.addHelpChild(help, command.newHelpLiteral("creative"));
  5717. command.addHelpChild(help, command.newHelpLiteral("damage"));
  5718. command.addHelpChild(help, command.newHelpLiteral("games"));
  5719. command.addHelpChild(help, command.newHelpLiteral("mails"));
  5720. command.addHelpChild(help, command.newHelpLiteral("party"));
  5721. command.addHelpChild(help, command.newHelpLiteral("perms"));
  5722. command.addHelpChild(help, command.newHelpLiteral("pumpkin"));
  5723. command.addHelpChild(help, command.newHelpLiteral("quests"));
  5724. command.addHelpChild(help, command.newHelpLiteral("shop"));
  5725. command.addHelpChild(help, command.newHelpLiteral("sitting"));
  5726. command.addHelpChild(help, command.newHelpLiteral("stats"));
  5727. command.addHelpChild(help, command.newHelpLiteral("survival"));
  5728. command.addHelpChild(help, command.newHelpLiteral("ticket"));
  5729. command.addHelpChild(help, command.newHelpLiteral("voxel"));
  5730. command.addHelp(help);
  5731. help = command.newHelp("gamemode", "gamemode");
  5732. helpArg0 = command.newHelpLiteral("adventure");
  5733. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "gamemode.other"));
  5734. command.addHelpChild(help, helpArg0);
  5735. helpArg0 = command.newHelpLiteral("creative");
  5736. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "gamemode.other"));
  5737. command.addHelpChild(help, helpArg0);
  5738. helpArg0 = command.newHelpLiteral("spectator");
  5739. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "gamemode.other"));
  5740. command.addHelpChild(help, helpArg0);
  5741. helpArg0 = command.newHelpLiteral("survival");
  5742. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "gamemode.other"));
  5743. command.addHelpChild(help, helpArg0);
  5744. helpArg0 = command.newHelpInt("0-3", 0, 3);
  5745. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "gamemode.other"));
  5746. command.addHelpChild(help, helpArg0);
  5747. command.addHelp(help);
  5748. addCommandAlias(help, "gm", "gamemode");
  5749. help = command.newHelp("databank", "databank");
  5750. //databank showtables
  5751. command.addHelpChild(help, command.newHelpLiteral("showtables"));
  5752. //databank showfields <table>
  5753. helpArg0 = command.newHelpLiteral("showfields");
  5754. command.addHelpChild(helpArg0, command.newHelpString("table", false));
  5755. command.addHelpChild(help, helpArg0);
  5756. //databank showdataypes <table>
  5757. helpArg0 = command.newHelpLiteral("showdataypes");
  5758. command.addHelpChild(helpArg0, command.newHelpString("table", false));
  5759. command.addHelpChild(help, helpArg0);
  5760. command.addHelp(help);
  5761. help = command.newHelp("copyisland", "copyisland");
  5762. //copyisland copy/paste
  5763. command.addHelpChild(help, command.newHelpLiteral("copy"));
  5764. command.addHelpChild(help, command.newHelpLiteral("paste"));
  5765. //copyisland pos1/pos2
  5766. command.addHelpChild(help, command.newHelpLiteral("pos1"));
  5767. command.addHelpChild(help, command.newHelpLiteral("pos2"));
  5768. command.addHelp(help);
  5769. help = command.newHelp("fly", "fly");
  5770. helpArg0 = command.newHelpSpecial("Player", "player", "fly.other");
  5771. command.addHelpChild(helpArg0, command.newHelpLiteral("on"));
  5772. command.addHelpChild(helpArg0, command.newHelpLiteral("off"));
  5773. command.addHelpChild(help, helpArg0);
  5774. command.addHelp(help);
  5775. help = command.newHelp("allsounds", "allsounds");
  5776. command.addHelpChild(help, command.newHelpLiteral("start"));
  5777. command.addHelpChild(help, command.newHelpLiteral("stop"));
  5778. command.addHelp(help);
  5779. help = command.newHelp("spawn", "spawn");
  5780. command.addHelpChild(help, command.newHelpSpecial("Player", "player", "teleport.other"));
  5781. command.addHelp(help);
  5782. help = command.newHelp("games", "games");
  5783. command.addHelpChild(help, command.newHelpSpecial("Player", "player", "teleport.other"));
  5784. command.addHelp(help);
  5785. help = command.newHelp("ass", "ass");
  5786. //ass set <name>
  5787. helpArg0 = command.newHelpLiteral("set");
  5788. command.addHelpChild(helpArg0, command.newHelpString("name", true));
  5789. command.addHelpChild(help, helpArg0);
  5790. //ass rename <name>
  5791. helpArg0 = command.newHelpLiteral("rename");
  5792. command.addHelpChild(helpArg0, command.newHelpString("name", true));
  5793. command.addHelpChild(help, helpArg0);
  5794. //ass remove <radius>
  5795. helpArg0 = command.newHelpLiteral("remove");
  5796. command.addHelpChild(helpArg0, command.newHelpInt("radius", 0, 30));
  5797. command.addHelpChild(help, helpArg0);
  5798. command.addHelp(help);
  5799. help = command.newHelp("tppos", "tppos");
  5800. helpArg0 = command.newHelpInt("x", -16000, 16000);
  5801. helpArg1 = command.newHelpInt("y", 0, 1000);
  5802. helpArg2 = command.newHelpInt("z", -16000, 16000);
  5803. helpArg3 = command.newHelpString("world", false);
  5804. helpArg4 = command.newHelpSpecial("Player", "player");
  5805. command.addHelpChild(helpArg3, helpArg4);
  5806. command.addHelpChild(helpArg2, helpArg3);
  5807. command.addHelpChild(helpArg1, helpArg2);
  5808. command.addHelpChild(helpArg0, helpArg1);
  5809. command.addHelpChild(help, helpArg0);
  5810. command.addHelp(help);
  5811. help = command.newHelp("stats", "stats");
  5812. addStatsGameHelp(help, "BedWars");
  5813. addStatsGameHelp(help, "RageMode");
  5814. addStatsGameHelp(help, "Jump'n'Run");
  5815. addStatsGameHelp(help, "Rebuild");
  5816. addStatsGameHelp(help, "FastBridge");
  5817. addStatsGameHelp(help, "SnowGame");
  5818. addStatsGameHelp(help, "TJR");
  5819. addStatsGameHelp(help, "IJR");
  5820. addStatsGameHelp(help, "Letters");
  5821. addStatsGameHelp(help, "Sammelfieber");
  5822. addStatsGameHelp(help, "Buttons");
  5823. addStatsGameHelp(help, "HideAndSeek");
  5824. addStatsGameHelp(help, "Inverting");
  5825. addStatsGameHelp(help, "Spleef");
  5826. addStatsGameHelp(help, "Knockfight");
  5827. addStatsGameHelp(help, "Leapfrog");
  5828. addStatsGameHelp(help, "Parcour");
  5829. addStatsGameHelp(help, "Halma");
  5830. addStatsGameHelp(help, "ShoppingChaos");
  5831. command.addHelp(help);
  5832. help = command.newHelp("setspawn", "setspawn");
  5833. command.addHelpChild(help, command.newHelpLiteral("server"));
  5834. command.addHelpChild(help, command.newHelpLiteral("games"));
  5835. command.addHelpChild(help, command.newHelpLiteral("creative"));
  5836. command.addHelp(help);
  5837. help = command.newHelp("datatools", "datatools");
  5838. //datatools hide <name>
  5839. helpArg0 = command.newHelpLiteral("hide");
  5840. command.addHelpChild(helpArg0, command.newHelpLiteral("enchantments"));
  5841. command.addHelpChild(helpArg0, command.newHelpLiteral("attributes"));
  5842. command.addHelpChild(helpArg0, command.newHelpLiteral("unbreakable"));
  5843. command.addHelpChild(helpArg0, command.newHelpLiteral("destroys"));
  5844. command.addHelpChild(helpArg0, command.newHelpLiteral("placed_on"));
  5845. command.addHelpChild(helpArg0, command.newHelpLiteral("potion_effects"));
  5846. command.addHelpChild(help, helpArg0);
  5847. //datatools attribute <attribute> <slot> <double> <op>
  5848. helpArg0 = command.newHelpLiteral("attribute");
  5849. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("ARMOR"));
  5850. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("ARMOR_TOUGHNESS"));
  5851. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("ATTACK_DAMAGE"));
  5852. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("KNOCKBACK_RESISTANCE"));
  5853. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("MAX_HEALTH"));
  5854. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("MOVEMENT_SPEED"));
  5855. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("ATTACK_SPEED"));
  5856. command.addHelpChild(helpArg0, addDtAttributeAttributHelp("LUCK"));
  5857. command.addHelpChild(help, helpArg0);
  5858. //datatools hide-entity
  5859. command.addHelpChild(help, command.newHelpLiteral("hide-entity"));
  5860. //datatools show-entity
  5861. command.addHelpChild(help, command.newHelpLiteral("show-entity"));
  5862. //datatools name-entity <name>
  5863. helpArg0 = command.newHelpLiteral("name-entity");
  5864. helpArg1 = command.newHelpString("name", true);
  5865. command.addHelpChild(helpArg0, helpArg1);
  5866. command.addHelpChild(help, helpArg0);
  5867. //datatools name-visibility <name>
  5868. helpArg0 = command.newHelpLiteral("name-visibility");
  5869. command.addHelpChild(helpArg0, command.newHelpBool("wusi"));
  5870. command.addHelpChild(help, helpArg0);
  5871. //datatools name-item <name>
  5872. helpArg0 = command.newHelpLiteral("name-item");
  5873. helpArg1 = command.newHelpString("name", true);
  5874. command.addHelpChild(helpArg0, helpArg1);
  5875. command.addHelpChild(help, helpArg0);
  5876. //datatools lore-item <line> <lore>
  5877. helpArg0 = command.newHelpLiteral("lore-item");
  5878. helpArg1 = command.newHelpInt("line", 0, 1000);
  5879. helpArg2 = command.newHelpString("lore", true);
  5880. command.addHelpChild(helpArg1, helpArg2);
  5881. command.addHelpChild(helpArg0, helpArg1);
  5882. command.addHelpChild(help, helpArg0);
  5883. command.addHelp(help);
  5884. addCommandAlias(help, "dt", "datatools");
  5885. help = command.newHelp("voxel", "voxel");
  5886. command.addHelpChild(help, command.newHelpInt("radius", 1, 5));
  5887. command.addHelp(help);
  5888. help = command.newHelp("help", "help");
  5889. command.addHelpChild(help, command.newHelpInt("page", 1, 100));
  5890. command.addHelp(help);
  5891. addCommandAlias(help, "mimimi", "help");
  5892. help = command.newHelp("kill", "kill");
  5893. command.addHelpChild(help, command.newHelpSpecial("Player", "player", "kill.other"));
  5894. command.addHelp(help);
  5895. addCommandAlias(help, "suicide", "kill");
  5896. help = command.newHelp("tempban", "tempban");
  5897. helpArg0 = command.newHelpSpecial("Player", "player");
  5898. helpArg1 = command.newHelpInt("days", 1, 100);
  5899. helpArg2 = command.newHelpInt("hours", 1, 100);
  5900. helpArg3 = command.newHelpInt("minutes", 1, 100);
  5901. command.addHelpChild(helpArg3, command.newHelpString("reason", true));
  5902. command.addHelpChild(helpArg2, helpArg3);
  5903. command.addHelpChild(helpArg1, helpArg2);
  5904. command.addHelpChild(helpArg0, helpArg1);
  5905. command.addHelpChild(help, helpArg0);
  5906. command.addHelp(help);
  5907. help = command.newHelp("ban", "ban");
  5908. helpArg0 = command.newHelpSpecial("Player", "player");
  5909. command.addHelpChild(helpArg0, command.newHelpString("reason", true));
  5910. command.addHelpChild(help, helpArg0);
  5911. command.addHelp(help);
  5912. help = command.newHelp("silentban", "silentban");
  5913. helpArg0 = command.newHelpSpecial("Player", "player");
  5914. command.addHelpChild(helpArg0, command.newHelpString("reason", true));
  5915. command.addHelpChild(help, helpArg0);
  5916. command.addHelp(help);
  5917. help = command.newHelp("kick", "kick");
  5918. helpArg0 = command.newHelpSpecial("Player", "player");
  5919. command.addHelpChild(helpArg0, command.newHelpString("reason", true));
  5920. command.addHelpChild(help, helpArg0);
  5921. command.addHelp(help);
  5922. help = command.newHelp("silentkick", "silentkick");
  5923. helpArg0 = command.newHelpSpecial("Player", "player");
  5924. command.addHelpChild(helpArg0, command.newHelpString("reason", true));
  5925. command.addHelpChild(help, helpArg0);
  5926. command.addHelp(help);
  5927. help = command.newHelp("time", "time");
  5928. //time set <time>
  5929. helpArg0 = command.newHelpLiteral("set");
  5930. command.addHelpChild(helpArg0, command.newHelpInt("time", 0, 100000));
  5931. command.addHelpChild(help, helpArg0);
  5932. //time add <time>
  5933. helpArg0 = command.newHelpLiteral("add");
  5934. command.addHelpChild(helpArg0, command.newHelpInt("time", 0, 100000));
  5935. command.addHelpChild(help, helpArg0);
  5936. //time day / noon / night / midnight
  5937. command.addHelpChild(help, command.newHelpLiteral("day"));
  5938. command.addHelpChild(help, command.newHelpLiteral("noon"));
  5939. command.addHelpChild(help, command.newHelpLiteral("night"));
  5940. command.addHelpChild(help, command.newHelpLiteral("midnight"));
  5941. command.addHelp(help);
  5942. help = command.newHelp("enderchest", "enderchest");
  5943. //enderchest [player] <from-player>
  5944. helpArg0 = command.newHelpSpecial("Player", "player");
  5945. command.addHelpChild(helpArg0, command.newHelpString("from-player", false));
  5946. command.addHelpChild(help, helpArg0);
  5947. //enderchest [player] <from-player>
  5948. command.addHelpChild(help, command.newHelpString("from-player", false));
  5949. command.addHelp(help);
  5950. help = command.newHelp("nickname", "nickname");
  5951. command.addHelpChild(help, command.newHelpString("name", true));
  5952. command.addHelpChild(help, command.newHelpLiteral("remove"));
  5953. command.addHelp(help);
  5954. help = command.newHelp("perm", "perm");
  5955. //perm give <player> <perm>
  5956. helpArg0 = command.newHelpLiteral("give");
  5957. helpArg1 = command.newHelpSpecial("Player", "player");
  5958. command.addHelpChild(helpArg1, command.newHelpLiteral("admin"));
  5959. command.addHelpChild(helpArg1, command.newHelpLiteral("mod"));
  5960. command.addHelpChild(helpArg1, command.newHelpLiteral("supporter"));
  5961. command.addHelpChild(helpArg1, command.newHelpLiteral("builder"));
  5962. command.addHelpChild(helpArg1, command.newHelpLiteral("worldedit"));
  5963. command.addHelpChild(helpArg1, command.newHelpLiteral("teleport"));
  5964. command.addHelpChild(helpArg1, command.newHelpLiteral("vip"));
  5965. command.addHelpChild(helpArg1, command.newHelpLiteral("dev"));
  5966. command.addHelpChild(helpArg1, command.newHelpLiteral("yt"));
  5967. command.addHelpChild(helpArg1, command.newHelpLiteral("sponsor"));
  5968. command.addHelpChild(helpArg1, command.newHelpLiteral("bypass"));
  5969. command.addHelpChild(helpArg0, helpArg1);
  5970. command.addHelpChild(help, helpArg0);
  5971. //perm remove <player> <perm>
  5972. helpArg0 = command.newHelpLiteral("remove");
  5973. helpArg1 = command.newHelpSpecial("Player", "player");
  5974. command.addHelpChild(helpArg1, command.newHelpLiteral("admin"));
  5975. command.addHelpChild(helpArg1, command.newHelpLiteral("mod"));
  5976. command.addHelpChild(helpArg1, command.newHelpLiteral("supporter"));
  5977. command.addHelpChild(helpArg1, command.newHelpLiteral("builder"));
  5978. command.addHelpChild(helpArg1, command.newHelpLiteral("worldedit"));
  5979. command.addHelpChild(helpArg1, command.newHelpLiteral("teleport"));
  5980. command.addHelpChild(helpArg1, command.newHelpLiteral("vip"));
  5981. command.addHelpChild(helpArg1, command.newHelpLiteral("dev"));
  5982. command.addHelpChild(helpArg1, command.newHelpLiteral("yt"));
  5983. command.addHelpChild(helpArg1, command.newHelpLiteral("sponsor"));
  5984. command.addHelpChild(helpArg1, command.newHelpLiteral("bypass"));
  5985. command.addHelpChild(helpArg0, helpArg1);
  5986. command.addHelpChild(help, helpArg0);
  5987. //perm removeall <player>
  5988. helpArg0 = command.newHelpLiteral("removeall");
  5989. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  5990. command.addHelpChild(help, helpArg0);
  5991. //perm list <player>
  5992. helpArg0 = command.newHelpLiteral("list");
  5993. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  5994. command.addHelpChild(help, helpArg0);
  5995. //perm toggle
  5996. command.addHelpChild(help, command.newHelpLiteral("toggle"));
  5997. command.addHelp(help);
  5998. help = command.newHelp("script", "script");
  5999. //script start <scripts>
  6000. helpArg0 = command.newHelpLiteral("start");
  6001. command.addHelpChild(helpArg0, command.newHelpString("scrips...", true));
  6002. command.addHelpChild(help, helpArg0);
  6003. //script see
  6004. command.addHelpChild(help, command.newHelpLiteral("see"));
  6005. //script term
  6006. helpArg0 = command.newHelpLiteral("term");
  6007. command.addHelpChild(helpArg0, command.newHelpLiteral("all"));
  6008. command.addHelpChild(helpArg0, command.newHelpInt("id", 0, 1000000));
  6009. command.addHelpChild(help, helpArg0);
  6010. command.addHelp(help);
  6011. addCommandAlias(help, "s", "script");
  6012. help = command.newHelp("home", "home");
  6013. //home set
  6014. helpArg0 = command.newHelpLiteral("set");
  6015. command.addHelpChild(helpArg0, command.newHelpString("home", false));
  6016. command.addHelpChild(help, helpArg0);
  6017. //home delete
  6018. helpArg0 = command.newHelpLiteral("delete");
  6019. command.addHelpChild(helpArg0, command.newHelpString("home", false));
  6020. command.addHelpChild(help, helpArg0);
  6021. //home list
  6022. helpArg0 = command.newHelpLiteral("list");
  6023. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "home.other"));
  6024. command.addHelpChild(help, helpArg0);
  6025. //home <name>
  6026. helpArg0 = command.newHelpString("home", false);
  6027. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "home.other"));
  6028. command.addHelpChild(help, helpArg0);
  6029. command.addHelp(help);
  6030. help = command.newHelp("plot", "plot");
  6031. //plot info
  6032. command.addHelpChild(help, command.newHelpLiteral("info"));
  6033. command.addHelpChild(help, command.newHelpLiteral("i"));
  6034. //plot pos1/pos2
  6035. command.addHelpChild(help, command.newHelpLiteral("pos1"));
  6036. command.addHelpChild(help, command.newHelpLiteral("pos2"));
  6037. //plot create/create3D
  6038. command.addHelpChild(help, command.newHelpLiteral("create"));
  6039. command.addHelpChild(help, command.newHelpLiteral("create3D"));
  6040. //plot remove
  6041. command.addHelpChild(help, command.newHelpLiteral("remove"));
  6042. //plot name <name>
  6043. helpArg0 = command.newHelpLiteral("name");
  6044. command.addHelpChild(helpArg0, command.newHelpString("name", true));
  6045. command.addHelpChild(help, helpArg0);
  6046. //plot share <name>
  6047. helpArg0 = command.newHelpLiteral("share");
  6048. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6049. command.addHelpChild(help, helpArg0);
  6050. //plot kick <name>
  6051. helpArg0 = command.newHelpLiteral("kick");
  6052. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6053. command.addHelpChild(help, helpArg0);
  6054. //plot leader <name>
  6055. helpArg0 = command.newHelpLiteral("leader");
  6056. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6057. command.addHelpChild(help, helpArg0);
  6058. //plot moreinfo
  6059. command.addHelpChild(help, command.newHelpLiteral("moreinfo", "plot.moreinfo"));
  6060. //plot listall
  6061. command.addHelpChild(help, command.newHelpLiteral("listall"));
  6062. //plot flags <int> <boolean>
  6063. helpArg0 = command.newHelpLiteral("flags");
  6064. helpArg1 = command.newHelpInt("int", 1, 1000);
  6065. command.addHelpChild(helpArg1, command.newHelpBool("wusi"));
  6066. command.addHelpChild(helpArg0, helpArg1);
  6067. command.addHelpChild(help, helpArg0);
  6068. //plot expand <anzahl>
  6069. helpArg0 = command.newHelpLiteral("expand", "plot.expand");
  6070. command.addHelpChild(helpArg0, command.newHelpInt("anzahl", 1, 1000));
  6071. command.addHelpChild(help, helpArg0);
  6072. command.addHelp(help);
  6073. addCommandAlias(help, "p", "plot");
  6074. help = command.newHelp("warp", "warp");
  6075. //warp set
  6076. helpArg0 = command.newHelpLiteral("set");
  6077. command.addHelpChild(helpArg0, command.newHelpString("warp", false, "warp.create"));
  6078. command.addHelpChild(help, helpArg0);
  6079. //warp delete
  6080. helpArg0 = command.newHelpLiteral("delete");
  6081. command.addHelpChild(helpArg0, command.newHelpString("warp", false, "warp.create"));
  6082. command.addHelpChild(help, helpArg0);
  6083. //warp list
  6084. helpArg0 = command.newHelpLiteral("list");
  6085. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "warp.create"));
  6086. command.addHelpChild(help, helpArg0);
  6087. //warp <name>
  6088. helpArg0 = command.newHelpString("warp", false);
  6089. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6090. command.addHelpChild(help, helpArg0);
  6091. command.addHelp(help);
  6092. help = command.newHelp("teleport", "teleport");
  6093. helpArg0 = command.newHelpSpecial("Player", "player");
  6094. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "to-player", "teleport.other"));
  6095. command.addHelpChild(help, helpArg0);
  6096. command.addHelp(help);
  6097. addCommandAlias(help, "tp", "teleport");
  6098. help = command.newHelp("lastseen", "lastseen");
  6099. command.addHelpChild(help, command.newHelpInt("amount", 1, 100));
  6100. command.addHelp(help);
  6101. help = command.newHelp("human", "human");
  6102. //human spawn
  6103. command.addHelpChild(help, command.newHelpLiteral("spawn"));
  6104. //human set <name>
  6105. helpArg0 = command.newHelpLiteral("set");
  6106. command.addHelpChild(helpArg0, command.newHelpString("name", false));
  6107. command.addHelpChild(help, helpArg0);
  6108. //human setuuid <uuid>
  6109. helpArg0 = command.newHelpLiteral("setuuid");
  6110. command.addHelpChild(helpArg0, command.newHelpString("uuid", false));
  6111. command.addHelpChild(help, helpArg0);
  6112. //human name
  6113. helpArg0 = command.newHelpLiteral("name");
  6114. command.addHelpChild(helpArg0, command.newHelpString("name", true));
  6115. command.addHelpChild(help, helpArg0);
  6116. //human kill
  6117. command.addHelpChild(help, command.newHelpLiteral("kill"));
  6118. //human size <scale>
  6119. helpArg0 = command.newHelpLiteral("size");
  6120. command.addHelpChild(helpArg0, command.newHelpInt("scale", 0, 100));
  6121. command.addHelpChild(help, helpArg0);
  6122. //human steve
  6123. command.addHelpChild(help, command.newHelpLiteral("steve"));
  6124. //human alex
  6125. command.addHelpChild(help, command.newHelpLiteral("alex"));
  6126. //human statue
  6127. helpArg0 = command.newHelpLiteral("statue");
  6128. command.addHelpChild(helpArg0, command.newHelpBool("wusi"));
  6129. command.addHelpChild(help, helpArg0);
  6130. command.addHelp(help);
  6131. help = command.newHelp("mail", "mail");
  6132. //mail <player> <nachricht>
  6133. helpArg0 = command.newHelpSpecial("Player", "player");
  6134. command.addHelpChild(helpArg0, command.newHelpString("nachricht", true));
  6135. command.addHelpChild(help, helpArg0);
  6136. //mail new
  6137. command.addHelpChild(help, command.newHelpLiteral("new"));
  6138. //mail inbox
  6139. command.addHelpChild(help, command.newHelpLiteral("inbox"));
  6140. //mail outbox
  6141. command.addHelpChild(help, command.newHelpLiteral("outbox"));
  6142. //mail reset
  6143. command.addHelpChild(help, command.newHelpLiteral("reset", "mail.reset"));
  6144. command.addHelp(help);
  6145. help = command.newHelp("playtime", "playtime");
  6146. //playtime [player]
  6147. command.addHelpChild(help, command.newHelpSpecial("Player", "player"));
  6148. //playtime all
  6149. command.addHelpChild(help, command.newHelpLiteral("all"));
  6150. //playtime month [1-12] [year]
  6151. helpArg0 = command.newHelpLiteral("month");
  6152. helpArg1 = command.newHelpInt("int", 1, 12);
  6153. command.addHelpChild(helpArg1, command.newHelpInt("year", 2019, 2024));
  6154. command.addHelpChild(helpArg0, helpArg1);
  6155. command.addHelpChild(help, helpArg0);
  6156. //playtime year [year]
  6157. helpArg0 = command.newHelpLiteral("year");
  6158. command.addHelpChild(helpArg0, command.newHelpInt("year", 2019, 2024));
  6159. command.addHelpChild(help, helpArg0);
  6160. command.addHelp(help);
  6161. help = command.newHelp("user", "user");
  6162. command.addHelpChild(help, command.newHelpSpecial("Player", "player", "user.other"));
  6163. command.addHelp(help);
  6164. help = command.newHelp("cli", "cli");
  6165. command.addHelpChild(help, command.newHelpInt("int", 0, 1000));
  6166. command.addHelp(help);
  6167. help = command.newHelp("plant", "plant");
  6168. command.addHelpChild(help, command.newHelpInt("int", 0, 1000));
  6169. command.addHelp(help);
  6170. help = command.newHelp("grow", "grow");
  6171. command.addHelpChild(help, command.newHelpInt("int", 0, 1000));
  6172. command.addHelp(help);
  6173. help = command.newHelp("plough", "plough");
  6174. command.addHelpChild(help, command.newHelpInt("int", 0, 1000));
  6175. command.addHelp(help);
  6176. help = command.newHelp("news", "news");
  6177. command.addHelpChild(help, command.newHelpString("text", true));
  6178. command.addHelp(help);
  6179. help = command.newHelp("inv", "inv");
  6180. //inv ignore
  6181. command.addHelpChild(help, command.newHelpLiteral("ignore"));
  6182. //inv see <player>
  6183. helpArg0 = command.newHelpLiteral("see");
  6184. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6185. command.addHelpChild(help, helpArg0);
  6186. //inv reload <player>
  6187. helpArg0 = command.newHelpLiteral("reload");
  6188. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6189. command.addHelpChild(help, helpArg0);
  6190. //inv loadFrom <player> <world>
  6191. helpArg0 = command.newHelpLiteral("loadFrom");
  6192. helpArg1 = command.newHelpSpecial("Player", "player");
  6193. command.addHelpChild(helpArg1, command.newHelpString("world", false));
  6194. command.addHelpChild(helpArg0, helpArg1);
  6195. command.addHelpChild(help, helpArg0);
  6196. //inv saveFor <player> <world>
  6197. helpArg0 = command.newHelpLiteral("saveFor");
  6198. helpArg1 = command.newHelpSpecial("Player", "player");
  6199. command.addHelpChild(helpArg1, command.newHelpString("world", false));
  6200. command.addHelpChild(helpArg0, helpArg1);
  6201. command.addHelpChild(help, helpArg0);
  6202. command.addHelp(help);
  6203. help = command.newHelp("warn", "warn");
  6204. command.addHelpChild(help, command.newHelpSpecial("Player", "player"));
  6205. command.addHelp(help);
  6206. help = command.newHelp("jail", "jail");
  6207. command.addHelpChild(help, command.newHelpSpecial("Player", "player"));
  6208. command.addHelp(help);
  6209. help = command.newHelp("unjail", "unjail");
  6210. command.addHelpChild(help, command.newHelpSpecial("Player", "player"));
  6211. command.addHelp(help);
  6212. help = command.newHelp("friend", "friend");
  6213. //friend add <player>
  6214. helpArg0 = command.newHelpLiteral("add");
  6215. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6216. command.addHelpChild(help, helpArg0);
  6217. //friend remove <player>
  6218. helpArg0 = command.newHelpLiteral("remove");
  6219. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6220. command.addHelpChild(help, helpArg0);
  6221. //friend list
  6222. command.addHelpChild(help, command.newHelpLiteral("list"));
  6223. command.addHelp(help);
  6224. addCommandAlias(help, "f", "friend");
  6225. help = command.newHelp("sign", "sign");
  6226. helpArg0 = command.newHelpInt("1-4", 1, 4);
  6227. command.addHelpChild(helpArg0, command.newHelpString("text", true));
  6228. command.addHelpChild(help, helpArg0);
  6229. command.addHelp(help);
  6230. help = command.newHelp("speed", "speed");
  6231. helpArg0 = command.newHelpInt("int", 1, 10);
  6232. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "speed.other"));
  6233. command.addHelpChild(help, helpArg0);
  6234. command.addHelp(help);
  6235. help = command.newHelp("errordebug", "errordebug");
  6236. command.addHelpChild(help, command.newHelpLiteral("list"));
  6237. command.addHelpChild(help, command.newHelpLiteral("clear"));
  6238. command.addHelpChild(help, command.newHelpLiteral("toggle"));
  6239. command.addHelp(help);
  6240. help = command.newHelp("error", "error");
  6241. command.addHelpChild(help, command.newHelpLiteral("list"));
  6242. command.addHelpChild(help, command.newHelpLiteral("clear"));
  6243. command.addHelp(help);
  6244. help = command.newHelp("world", "world");
  6245. //world info <world>
  6246. helpArg0 = command.newHelpLiteral("info");
  6247. command.addHelpChild(helpArg0, command.newHelpString("world", false));
  6248. command.addHelpChild(help, helpArg0);
  6249. //world tp <world> [player]
  6250. helpArg0 = command.newHelpLiteral("tp");
  6251. helpArg1 = command.newHelpString("world", false);
  6252. command.addHelpChild(helpArg1, command.newHelpSpecial("Player", "player"));
  6253. command.addHelpChild(helpArg0, helpArg1);
  6254. command.addHelpChild(help, helpArg0);
  6255. //world list
  6256. command.addHelpChild(help, command.newHelpLiteral("list"));
  6257. //world load <world>
  6258. helpArg0 = command.newHelpLiteral("load");
  6259. command.addHelpChild(helpArg0, command.newHelpString("world", false));
  6260. command.addHelpChild(help, helpArg0);
  6261. //world unload <world>
  6262. helpArg0 = command.newHelpLiteral("unload");
  6263. command.addHelpChild(helpArg0, command.newHelpString("world", false));
  6264. command.addHelpChild(help, helpArg0);
  6265. //world diffi <world> <diffi>
  6266. helpArg0 = command.newHelpLiteral("diffi");
  6267. helpArg1 = command.newHelpString("world", false);
  6268. command.addHelpChild(helpArg1, command.newHelpLiteral("PEACEFUL"));
  6269. command.addHelpChild(helpArg1, command.newHelpLiteral("EASY"));
  6270. command.addHelpChild(helpArg1, command.newHelpLiteral("NORMAL"));
  6271. command.addHelpChild(helpArg1, command.newHelpLiteral("HARD"));
  6272. command.addHelpChild(helpArg0, helpArg1);
  6273. command.addHelpChild(help, helpArg0);
  6274. //world setspawn
  6275. helpArg0 = command.newHelpLiteral("setspawn");
  6276. command.addHelpChild(help, helpArg0);
  6277. command.addHelp(help);
  6278. help = command.newHelp("pvp", "pvp");
  6279. helpArg0 = command.newHelpLiteral("on");
  6280. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "pvp.other"));
  6281. command.addHelpChild(help, helpArg0);
  6282. helpArg0 = command.newHelpLiteral("off");
  6283. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player", "pvp.other"));
  6284. command.addHelpChild(help, helpArg0);
  6285. command.addHelp(help);
  6286. help = command.newHelp("game", "game");
  6287. command.addHelpChild(help, command.newHelpLiteral("open"));
  6288. command.addHelpChild(help, command.newHelpLiteral("close"));
  6289. command.addHelp(help);
  6290. help = command.newHelp("party", "party");
  6291. //party invite <player>
  6292. helpArg0 = command.newHelpLiteral("invite");
  6293. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6294. command.addHelpChild(help, helpArg0);
  6295. //party accept <player>
  6296. helpArg0 = command.newHelpLiteral("accept");
  6297. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6298. command.addHelpChild(help, helpArg0);
  6299. //party deny <player>
  6300. helpArg0 = command.newHelpLiteral("deny");
  6301. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6302. command.addHelpChild(help, helpArg0);
  6303. //party kick <player>
  6304. helpArg0 = command.newHelpLiteral("kick");
  6305. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6306. command.addHelpChild(help, helpArg0);
  6307. //party leave
  6308. command.addHelpChild(help, command.newHelpLiteral("leave"));
  6309. //party promote <player>
  6310. helpArg0 = command.newHelpLiteral("promote");
  6311. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6312. command.addHelpChild(help, helpArg0);
  6313. //party demote <player>
  6314. helpArg0 = command.newHelpLiteral("demote");
  6315. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6316. command.addHelpChild(help, helpArg0);
  6317. //party disband
  6318. command.addHelpChild(help, command.newHelpLiteral("disband"));
  6319. //party list
  6320. command.addHelpChild(help, command.newHelpLiteral("list"));
  6321. command.addHelp(help);
  6322. help = command.newHelp("var", "var");
  6323. helpArg0 = command.newHelpInt("id", 0, 1000000);
  6324. command.addHelpChild(helpArg0, command.newHelpString("varname", false));
  6325. command.addHelpChild(help, helpArg0);
  6326. command.addHelp(help);
  6327. help = command.newHelp("setservermessage", "setservermessage");
  6328. command.addHelpChild(help, command.newHelpString("message", true));
  6329. command.addHelp(help);
  6330. help = command.newHelp("shop", "shop");
  6331. //shop create
  6332. helpArg0 = command.newHelpLiteral("create");
  6333. command.addHelpChild(help, helpArg0);
  6334. //shop admin
  6335. helpArg0 = command.newHelpLiteral("admin");
  6336. command.addHelpChild(help, helpArg0);
  6337. //shop remove
  6338. helpArg0 = command.newHelpLiteral("remove");
  6339. command.addHelpChild(helpArg0, command.newHelpLiteral("buy"));
  6340. command.addHelpChild(helpArg0, command.newHelpLiteral("sell"));
  6341. command.addHelpChild(help, helpArg0);
  6342. //shop buy <amount> <price>
  6343. helpArg0 = command.newHelpLiteral("buy");
  6344. helpArg1 = command.newHelpInt("amount", 0, 1000);
  6345. command.addHelpChild(helpArg1, command.newHelpInt("price", 0, 10000));
  6346. command.addHelpChild(helpArg0, helpArg1);
  6347. command.addHelpChild(help, helpArg0);
  6348. //shop sell <amount> <price>
  6349. helpArg0 = command.newHelpLiteral("sell");
  6350. helpArg1 = command.newHelpInt("amount", 0, 1000);
  6351. command.addHelpChild(helpArg1, command.newHelpInt("price", 0, 10000));
  6352. command.addHelpChild(helpArg0, helpArg1);
  6353. command.addHelpChild(help, helpArg0);
  6354. command.addHelp(help);
  6355. help = command.newHelp("tip", "tip");
  6356. //tipp list
  6357. helpArg0 = command.newHelpLiteral("list");
  6358. command.addHelpChild(help, helpArg0);
  6359. //tipp add <tipp> <text>
  6360. helpArg0 = command.newHelpLiteral("add");
  6361. helpArg1 = command.newHelpString("tip", false);
  6362. command.addHelpChild(helpArg1, command.newHelpString("text", true));
  6363. command.addHelpChild(helpArg0, helpArg1);
  6364. command.addHelpChild(help, helpArg0);
  6365. //tipp remove <tipp>
  6366. helpArg0 = command.newHelpLiteral("remove");
  6367. command.addHelpChild(helpArg0, command.newHelpString("tip", false));
  6368. command.addHelpChild(help, helpArg0);
  6369. //tipp <tipp> [player]
  6370. helpArg0 = command.newHelpString("tip", false);
  6371. command.addHelpChild(helpArg0, command.newHelpSpecial("Player", "player"));
  6372. command.addHelpChild(help, helpArg0);
  6373. command.addHelp(help);
  6374. help = command.newHelp("ticket", "ticket");
  6375. //ticket new <nachricht>
  6376. helpArg0 = command.newHelpLiteral("new");
  6377. command.addHelpChild(helpArg0, command.newHelpString("nachricht", true));
  6378. command.addHelpChild(help, helpArg0);
  6379. //ticket stop <ticket-id>
  6380. helpArg0 = command.newHelpLiteral("stop");
  6381. command.addHelpChild(helpArg0, command.newHelpInt("ticket-id", 1, 1000));
  6382. command.addHelpChild(help, helpArg0);
  6383. //ticket list
  6384. command.addHelpChild(help, command.newHelpLiteral("list", "isSupporter"));
  6385. //ticket get [ticket-id]
  6386. helpArg0 = command.newHelpLiteral("get");
  6387. command.addHelpChild(helpArg0, command.newHelpInt("ticket-id", 1, 1000, "isSupporter"));
  6388. command.addHelpChild(help, helpArg0);
  6389. //ticket end <ticket-id>
  6390. helpArg0 = command.newHelpLiteral("end");
  6391. command.addHelpChild(helpArg0, command.newHelpInt("ticket-id", 1, 1000, "isSupporter"));
  6392. command.addHelpChild(help, helpArg0);
  6393. //ticket free <ticket-id>
  6394. helpArg0 = command.newHelpLiteral("free");
  6395. command.addHelpChild(helpArg0, command.newHelpInt("ticket-id", 1, 1000, "isSupporter"));
  6396. command.addHelpChild(help, helpArg0);
  6397. //ticket report <ticket-id>
  6398. helpArg0 = command.newHelpLiteral("report");
  6399. command.addHelpChild(helpArg0, command.newHelpInt("ticket-id", 1, 1000, "isSupporter"));
  6400. command.addHelpChild(help, helpArg0);
  6401. command.addHelp(help);
  6402. command.sendHelp();
  6403. }
  6404. function addCommandHelp(command) {
  6405. help = command.newHelp(command, command);
  6406. command.addHelp(help);
  6407. return help;
  6408. }
  6409. function addCommandHelpChildString(command, arg0, bool) {
  6410. help = command.newHelp(command, command);
  6411. command.addHelpChild(help, command.newHelpString(arg0, bool));
  6412. command.addHelp(help);
  6413. }
  6414. function addCommandHelpChildPlayer(command) {
  6415. help = command.newHelp(command, command);
  6416. command.addHelpChild(help, command.newHelpSpecial("Player", "player"));
  6417. command.addHelp(help);
  6418. }
  6419. function addCommandHelpChildBool(command, arg0) {
  6420. help = command.newHelp(command, command);
  6421. command.addHelpChild(help, command.newHelpBool(arg0));
  6422. command.addHelp(help);
  6423. }
  6424. function addCommandAlias(help, alias, command) {
  6425. helpAlias = command.newHelp(alias, command);
  6426. command.addHelpAlias(helpAlias, help);
  6427. command.addHelp(helpAlias);
  6428. }
  6429. function addStatsGameHelp(help, game) {
  6430. helpArg0 = command.newHelpLiteral(game);
  6431. command.addHelpChild(helpArg0, command.newHelpLiteral("top"));
  6432. command.addHelpChild(helpArg0, command.newHelpInt("rank", 1, 1000));
  6433. helpArg1 = command.newHelpSpecial("Player", "player");
  6434. command.addHelpChild(helpArg1, command.newHelpLiteral("remove", "stats.remove"));
  6435. command.addHelpChild(helpArg0, helpArg1);
  6436. command.addHelpChild(help, helpArg0);
  6437. }
  6438. function addDtAttributeAttributHelp(attribut) {
  6439. helpArg1 = command.newHelpLiteral(attribut);
  6440. command.addHelpChild(helpArg1, addDtAttributeSlotHelp("mainhand"));
  6441. command.addHelpChild(helpArg1, addDtAttributeSlotHelp("offhand"));
  6442. command.addHelpChild(helpArg1, addDtAttributeSlotHelp("head"));
  6443. command.addHelpChild(helpArg1, addDtAttributeSlotHelp("chest"));
  6444. command.addHelpChild(helpArg1, addDtAttributeSlotHelp("legs"));
  6445. command.addHelpChild(helpArg1, addDtAttributeSlotHelp("feet"));
  6446. return helpArg1;
  6447. }
  6448. function addDtAttributeSlotHelp(slot) {
  6449. helpArg2 = command.newHelpLiteral(slot);
  6450. helpArg3 = command.newHelpInt("double", 0, 1000);
  6451. command.addHelpChild(helpArg3, command.newHelpLiteral("ADDITION"));
  6452. command.addHelpChild(helpArg3, command.newHelpLiteral("MULTIPLY_BASE"));
  6453. command.addHelpChild(helpArg3, command.newHelpLiteral("MULTIPLY_TOTAL"));
  6454. command.addHelpChild(helpArg2, helpArg3);
  6455. return helpArg2;
  6456. }
  6457. function showJail(player_name) {
  6458. if(isOnline(player_name)) {
  6459. inv.open($jailmenu, read.player(player_name), "§8Gefängnis");
  6460. }
  6461. }
  6462. function isJailed(player_uuid) {
  6463. return(list.contains($jailed_list, player_uuid));
  6464. }
  6465. function lock.isLocked(location) {
  6466. //Aus Cache auslesen
  6467. isLocked = map.contains($lock_chests, location);
  6468. if(isLocked == null) {
  6469. isLocked = false;
  6470. //Aus Datenbank auslesen
  6471. //...
  6472. //Zu Cache hinzufügen
  6473. }
  6474. return isLocked;
  6475. }
  6476. function lock.getOwner(location) {
  6477. //Aus Cache auslesen
  6478. list = map.get($lock_chests, location);
  6479. if(list != null) {
  6480. uuid = list.getIndex(list, 0);
  6481. } else {
  6482. //Aus Datenbank auslesen
  6483. //...
  6484. //Zu Cache hinzufügen
  6485. }
  6486. return uuid;
  6487. }
  6488. function lock.create(location, uuid) {
  6489. //Zu Cache hinzufügen
  6490. list = list.new();
  6491. list.add(list, uuid);
  6492. map.add($lock_chests, location, list);
  6493. //Zu Datenbank hinzufügen
  6494. //...
  6495. }
  6496. function lock.remove(location) {
  6497. //Aus Cache entfernen
  6498. map.remove($lock_chests, location);
  6499. //Aus Datenbank entfernen
  6500. //...
  6501. }
  6502. function lock.share(location, uuid) {
  6503. //Liste aus Cache auslesen
  6504. list = map.get($lock_chests, location);
  6505. if(list == null) {
  6506. //Liste aus Datenbank erstellen
  6507. //list = ...
  6508. //Zu Cache hinzufügen
  6509. }
  6510. if(list.contains(list, uuid)) {
  6511. //Kiste bereits auf Spieler gesichert
  6512. return false;
  6513. }
  6514. //Zu Cache hinzufügen
  6515. list.add(list, uuid);
  6516. //Zu Datenbank hinzufügen
  6517. //...
  6518. return true;
  6519. }
  6520. function lock.kick(location, uuid) {
  6521. //Liste aus Cache auslesen
  6522. list = map.get($lock_chests, location);
  6523. if(list == null) {
  6524. //Liste aus Datenbank erstellen
  6525. //list = ...
  6526. //Zu Cache hinzufügen
  6527. }
  6528. //Aus Cache entfernen
  6529. success = list.remove(list, uuid);
  6530. //Aus Datenbank entfernen
  6531. //...
  6532. return success;
  6533. }
  6534. function lock.hasAccess(location, uuid) {
  6535. //Liste aus Cache auslesen
  6536. list = map.get($lock_chests, location);
  6537. if(list == null) {
  6538. //Liste aus Datenbank erstellen
  6539. //list = ...
  6540. //Zu Cache hinzufügen
  6541. }
  6542. return list.contains(list, uuid);
  6543. }
  6544. function lock.isOwner(location, uuid) {
  6545. //Aus Cache auslesen
  6546. list = map.get($lock_chests, location);
  6547. if(list == null) {
  6548. //Liste aus Datenbank erstellen
  6549. //list = ...
  6550. //Zu Cache hinzufügen
  6551. }
  6552. owner_uuid = list.getIndex(list, 0);
  6553. return owner_uuid == uuid;
  6554. }
  6555. function lock.expand(new_location, location) {
  6556. //Liste aus Cache auslesen
  6557. list = map.get($lock_chests, location);
  6558. if(list == null) {
  6559. //Liste aus Datenbank erstellen
  6560. //list = ...
  6561. //Zu Cache hinzufügen
  6562. }
  6563. //Liste kopieren
  6564. new_list = list.new();
  6565. for(i = 0; i < list.getSize(list); i++) {
  6566. list.add(new_list, list.getIndex(list, i));
  6567. }
  6568. //Zu Cache hinzufügen
  6569. map.add($lock_chests, new_location, new_list);
  6570. //Zu Datenbank hinzufügen
  6571. //...
  6572. }
  6573. function command.register(command, description) {
  6574. command.add(command);
  6575. list.add($command_list, command);
  6576. map.add($command_map, command, description);
  6577. }
  6578. function command.registerAlias(alias, command) {
  6579. command.add(alias);
  6580. map.add($alias_map, alias, command);
  6581. }
  6582. //Spielzeit aller Online-Spieler
  6583. function playtime.getTotalOnlineMinutes() {
  6584. minutes = 0;
  6585. iter = list.iterator(players.toList());
  6586. while(hasNext(iter)) {
  6587. minutes += playtime.getPlayerOnlineMinutes(player.getId(next(iter)));
  6588. }
  6589. return minutes;
  6590. }
  6591. //Spielzeit eines Online-Spielers
  6592. function playtime.getPlayerOnlineMinutes(player_id) {
  6593. stmt = databank.prepare("SELECT join_time FROM playtime WHERE player_id = ? AND leave_time IS NULL;");
  6594. databank.setInt(stmt, 1, player_id);
  6595. result = databank.execute(stmt);
  6596. if(databank.next(result)) {
  6597. minutes = (time.getMillis() - databank.getLong(result, 1)) / 1000 / 60;
  6598. } else {
  6599. minutes = 0;
  6600. }
  6601. databank.close(result);
  6602. databank.close(stmt);
  6603. return minutes;
  6604. }
  6605. //Spielzeit in einem Zeitraum exkl. der Spielzeit der Online-Spieler
  6606. function playtime.getInterval(from, to) {
  6607. stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE join_time > ? AND join_time < ?;");
  6608. databank.setLong(stmt, 1, from);
  6609. databank.setLong(stmt, 2, to);
  6610. result = databank.execute(stmt);
  6611. if(databank.next(result)) {
  6612. minutes = databank.getLong(result, 1) / 1000 / 60;
  6613. } else {
  6614. minutes = 0;
  6615. }
  6616. databank.close(result);
  6617. databank.close(stmt);
  6618. return minutes;
  6619. }
  6620. //Gesamte Spielzeit inkl. der Spielzeit der Online-Spieler
  6621. function playtime.getTotal() {
  6622. minutes = playtime.getTotalOnlineMinutes();
  6623. stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime;");
  6624. result = databank.execute(stmt);
  6625. if(databank.next(result)) {
  6626. minutes += databank.getLong(result, 1) / 1000 / 60;
  6627. }
  6628. databank.close(result);
  6629. databank.close(stmt);
  6630. return minutes;
  6631. }
  6632. //Gesamte Spielzeit eines Spielers inkl. der Online-Spielzeit
  6633. function playtime.getPlayerTotal(player_id) {
  6634. minutes = playtime.getPlayerOnlineMinutes(player_id);
  6635. stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE player_id = ?;");
  6636. databank.setInt(stmt, 1, player_id);
  6637. result = databank.execute(stmt);
  6638. if(databank.next(result)) {
  6639. minutes += databank.getLong(result, 1) / 1000 / 60;
  6640. }
  6641. databank.close(result);
  6642. databank.close(stmt);
  6643. return minutes;
  6644. }
  6645. //Spielzeit eines Spielers in einem Zeitraum exkl. der Online-Spielzeit
  6646. function playtime.getPlayerInterval(player_id, from, to) {
  6647. stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE player_id = ? AND join_time > ? AND join_time < ?;");
  6648. databank.setInt(stmt, 1, player_id);
  6649. databank.setLong(stmt, 2, from);
  6650. databank.setLong(stmt, 3, to);
  6651. result = databank.execute(stmt);
  6652. if(databank.next(result)) {
  6653. minutes = databank.getLong(result, 1) / 1000 / 60;
  6654. } else {
  6655. minutes = 0;
  6656. }
  6657. databank.close(result);
  6658. databank.close(stmt);
  6659. return minutes;
  6660. }
  6661. function playtime.getPlayersPerInterval(from, to) {
  6662. set = set.new();
  6663. stmt = databank.prepare("SELECT player_id FROM playtime WHERE join_time > ? AND join_time < ?;");
  6664. databank.setLong(stmt, 1, from);
  6665. databank.setLong(stmt, 2, to);
  6666. result = databank.execute(stmt);
  6667. while(databank.next(result)) {
  6668. set.add(set, databank.getInt(result, 1));
  6669. }
  6670. databank.close(result);
  6671. databank.close(stmt);
  6672. return set.getSize(set);
  6673. }
  6674. function time.getYearDays(year) {
  6675. days = 365;
  6676. if(year % 4 == 0) {
  6677. days++;
  6678. }
  6679. return days;
  6680. }
  6681. function time.getMonthDays(month, year) {
  6682. days = map.get($monthdays, month);
  6683. //Schaltjahre
  6684. if(month == 2 && year % 4 == 0) {
  6685. days++;
  6686. }
  6687. return days;
  6688. }
  6689. function time.getDaysBetween(day1, month1, year1, day2, month2, year2) {
  6690. d_days = 0;
  6691. m_days = 0;
  6692. y_days = 0;
  6693. y = 0;
  6694. m = 0;
  6695. d = 0;
  6696. //Volle Jahre
  6697. for(year = year1 + 1; year < year2; year++) {
  6698. y_days += time.getYearDays(year);
  6699. y++;
  6700. }
  6701. if(year1 == year2) {
  6702. //Volle Monate
  6703. for(month = month1 + 1; month < month2; month++) {
  6704. m_days += time.getMonthDays(month, year1);
  6705. }
  6706. //Volle Tage
  6707. if(month1 == month2) {
  6708. d_days = day2 - day1;
  6709. } else {
  6710. d_days += map.get($monthdays, month1) - day1;
  6711. d_days += day2;
  6712. }
  6713. } else {
  6714. //Volle Monate
  6715. for(month = month1 + 1; month < 13; month++) {
  6716. m_days += time.getMonthDays(month, year1);
  6717. m++;
  6718. }
  6719. for(month = 1; month < month2; month++) {
  6720. m_days += time.getMonthDays(month, year2);
  6721. m++;
  6722. }
  6723. //Volle Tage
  6724. d_days += map.get($monthdays, month1) - day1;
  6725. d_days += day2;
  6726. }
  6727. return y_days + m_days + d_days;
  6728. }