commands.txt 197 KB

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