12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006 |
- error_counter = 0;
- last_error_message = null;
- @on_error
- error_counter++;
- if(error_counter > 1) {
- msg.dev("Error Handler activated");
- if(last_error_message == error_message) {
- msg.dev("Same error again");
- term();
- }
- last_error_message = error_message;
- if(event == "custom_command") {
- msg.dev(string.concat("Command ", command, " failed."));
- set.add(failed_cmds, command);
- goto("wait");
- }
- msg.dev("Restarting script...");
- error_counter++;
- if(error_counter >= 5) {
- msg.dev("Script terminated. Endless loop.");
- term();
- }
- }
- waitfor(5); //Verhindert Endlos-Schleife durch "/start commands"
- command.clear();
- //--- Register commands not shown on /help here ---
- //Games
- command.add("nextplayer");
- command.add("invstats");
- command.add("topinvstats");
- command.add("removeinvstats");
- command.add("sfstats");
- command.add("topsfstats");
- command.add("removesfstats");
- command.add("questanswer");
- command.add("infopoint1");
- command.add("infopoint2");
- command.add("infopoint3");
- command.add("infopoint4");
- command.add("infopoint5");
- command.add("infopoint6");
- command.add("infopoint7");
- command.add("infopoint8");
- command.add("infopoint9");
- command.add("infopoint10");
- command.add("infopoint11");
- command.add("infopoint12");
- //Overwrite vanilla
- command.add("butcher");
- //--- Register commands shown on /help here ---
- alias_map = map.new();
- command_list = list.new();
- command_map = map.new();
- command.register("afk", "Toggles afk");
- command.register("allsounds", "Plays all sounds");
- command.register("answer", "Answers the last private message");
- command.register("armorstand", "Armorstand commands");
- command.register("ass", "Armor Stand Signs");
- command.register("back", "Teleports to the last position");
- command.register("ban", "Bans a player");
- command.register("block", "Block commands");
- //command.register("clan", "Clan-Commands");
- command.register("color", "Shows all colors");
- command.register("comeback", "Teleports to your death location");
- command.register("copyisland", "Copyisland-Commands");
- command.register("creative", "Teleports to creative-spawn");
- command.register("customitems", "Shows all custom items");
- command.register("databank", "Databank-Commands");
- command.register("datatools", "Datatools-Commands");
- command.register("dev", "Dev-Commands");
- command.register("enchant", "Enchants an item in your hand");
- command.register("enderchest", "Shows enderchests");
- command.register("error", "Error-Logger");
- command.register("feed", "Fills hunger bar");
- command.register("fly", "Toggles fly");
- command.register("friend", "Friend-Commands");
- command.register("game", "marvs minigame shit");
- command.register("gamemode", "Change gamemode");
- command.register("gamerule", "Manage gamerules");
- command.register("games", "Teleports to games-spawn");
- command.register("minigames", "Teleports to games-spawn");
- command.register("giveup", "Giveup a quest");
- command.register("grow", "Grow seeds");
- command.register("hat", "Be fame with a new hat");
- command.register("head", "Gives you the head of a player");
- command.register("heal", "Heals, fills hunger bar and remove effects");
- command.register("help", "Shows this help");
- command.register("home", "Manage your homes");
- command.register("icon", "Shows all icons");
- command.register("live", "Toggles Live-Mode");
- command.register("lag", "Executes a lag test");
- command.register("leave", "Leaves a minigame");
- command.register("loginrequests", "Lists the last login requests");
- command.register("human", "Human-Commands");
- command.register("inv", "Inv-Commands");
- command.register("iteminfo", "Returns information about an item");
- command.register("jail", "Sends a player to jail");
- command.register("joinme", "Sends a party invitation to all online players");
- command.register("jumpto", "Jumps to a block in sight");
- command.register("kick", "Kicks a player");
- command.register("lastseen", "Shows the last players online");
- command.register("lightning", "Summons a lightning_bolt");
- command.register("list", "List all players online");
- command.register("mail", "Mail-Commands");
- command.register("mailbox", "Mailbox-Commands");
- command.register("memory", "Returns RAM-usage");
- command.register("msg", "Send a private message");
- command.register("mute", "Mutes a player");
- command.register("news", "Send Push-News to all players");
- command.register("nickname", "Set a nickname");
- command.register("nowb", "Sends no 'is back' message if afk");
- command.register("party", "Party-Commands");
- command.register("perm", "Manage permissions");
- command.register("playtime", "Shows your playtime");
- command.register("plot", "Plot-Commands");
- command.register("potion", "Adds a potion effects to an item");
- command.register("pvp", "Toggles pvp");
- command.register("quest", "Quest-Commands");
- command.register("rank", "Shows your available ranks");
- command.register("repair", "Repairs your item in mainhand");
- command.register("ride", "Rides an entity");
- command.register("say", "[Server] chat message");
- command.register("script", "Script-Commands");
- command.register("settings", "Opens settings menu");
- command.register("seen", "Returns the last date the player was online");
- //command.register("senditem", "Sends an itemstack to another player");
- command.register("setmessage", "Set your join/leave-message");
- command.register("setrank", "");
- command.register("setservermessage", "Sets the server-message in the serverlist");
- command.register("setspawn", "Changes a spawn");
- command.register("shop", "Shop-Commands");
- command.register("sign", "Edit a sign");
- command.register("silentjoin", "Toggles your silentjoins");
- command.register("skills", "Shows all skills");
- command.register("skipnight", "Skips the night");
- command.register("spawn", "Teleports to spawn");
- command.register("speed", "Sets your speed");
- command.register("sponsor", "See what a sponsor can do");
- command.register("start", "Starts a script");
- command.register("startgame", "Reduces start-countdown for a minigame");
- command.register("stats", "Statistics-Commands");
- //command.register("stopadventure", "Stops an adventure");
- command.register("suicide", "Kill yourself");
- command.register("support", "Creates a ticket for support");
- command.register("stop", "Stops the server organized");
- command.register("tempban", "Bans a player temporarly");
- command.register("tempfly", "Let a player temporarly fly");
- command.register("ticket", "Ticket-Commands");
- command.register("time", "Time-Commands");
- command.register("tip", "Tip-Commands");
- command.register("top", "Teleports to to highest point at the current position");
- command.register("tp", "Teleport command");
- command.register("tpa", "Sends a teleport request to a player");
- command.register("tpahere", "Sends a teleport request to a player");
- command.register("tpaccept", "Accepts a teleport request");
- command.register("tpaccepthere", "Accepts a teleport request");
- command.register("tppos", "Teleports to coordinates");
- command.register("unban", "Unbans a player");
- command.register("unjail", "Releases a player from jail");
- command.register("unmute", "Unmutes a player");
- command.register("user", "Returns infos about a user");
- command.register("vanish", "Vanishes a player");
- command.register("var", "Reads variables from a scripts");
- command.register("vote", "Show vote links");
- command.register("voteshop", "Show vote rewars");
- command.register("warn", "Warns a player");
- command.register("warp", "Warp-Commands");
- command.register("weather", "Weather-Commands");
- command.register("world", "World-Commands");
- command.registerAlias("as", "armorstand");
- command.registerAlias("h", "home");
- command.registerAlias("skull", "head");
- command.registerAlias("r", "answer");
- command.registerAlias("pardon", "unban");
- command.registerAlias("j", "jumpto");
- command.registerAlias("mimimi", "help");
- command.registerAlias("ci", "copyisland");
- command.registerAlias("mem", "memory");
- command.registerAlias("ram", "memory");
- command.registerAlias("colour", "color");
- command.registerAlias("gm", "gamemode");
- command.registerAlias("p", "plot");
- command.registerAlias("dt", "datatools");
- command.registerAlias("l", "leave");
- command.registerAlias("hub", "leave");
- command.registerAlias("v", "vanish");
- command.registerAlias("fuckit", "giveup");
- command.registerAlias("thor", "lightning");
- composter_par = particle.get("COMPOSTER");
- wall_signs_tag = block.getTag("minecraft:wall_signs");
- beds_tag = block.getTag("minecraft:beds");
- chest_tag = block.getTag("km:container");
- all_signs_tag = block.getTag("minecraft:all_signs");
- sign_tag = block.getTag("minecraft:signs");
- //dirt_tag = block.getTag("minecraft:dirt");
- prefix_shop = "§6Shop";
- prefix_clan = "§2Clan";
- prefix_tips = "§eTips";
- prefix_lock = "§eLock";
- prefix_commands = "§6Commands";
- prefix_vote = "§dVote";
- prefix_friends = "§5Friends";
- prefix_world = "§bWorld";
- prefix_jail = "§5Jail";
- prefix_quest = "§dQuest";
- prefix_perms = "§6Perms";
- prefix_datatools = "§6DataTools";
- prefix_human = "§6Human";
- prefix_plot = "§dPlots";
- prefix_party = "§5Party";
- prefix_skill = "§2Skill";
- initPlotFlags();
- initAllSounds();
- allsounds_list = getAllSounds();
- allsounds_indizes = map.new();
- allsounds_uuids = list.new();
- allsounds_uuids_cross_check = list.new();
- party_ids = getScriptVar("party_ids");
- if(party_ids == null) {
- party_ids = map.new();
- setScriptVar("party_ids", map.new()); //Player, partyid
- }
- party_lists = getScriptVar("party_lists");
- if(party_lists == null) {
- party_lists = map.new();
- setScriptVar("party_lists", map.new()); //partyid, Liste mit Players aller Partymitglieder
- }
- party_ranks = getScriptVar("party_ranks");
- if(party_ranks == null) {
- party_ranks = map.new();
- setScriptVar("party_ranks", map.new()); //Player, "leader"/"mod"/"player"
- }
- party_counter = getScriptVar("party_counter");
- if(party_counter == null) {
- party_counter = 0;
- setScriptVar("party_counter", party_counter); //Player, partyid
- }
- delkeytime = list.new(); //Alle Zeitpunkte zum Löschen der Einladungen (Vergleichsliste)
- delkeytimes = map.new(); //Player_uuid, Liste mit Zeitpunkten zum Löschen der Einladungen
- deluuid = list.new(); //Alle Player_uuids zum Löschen der Einladungen
- party_invitations = map.new(); //Player_uuid, Liste mit Player_uuids aller Einlader
- party_invite_ids = map.new(); //Player_uuid, partyid
- sign_copy_map = map.new();
- list = getScriptVar("block_commands_list");
- if(list == null) {
- list = list.new();
- setScriptVar("block_commands_list", list);
- }
- live_set = getScriptVar("live_set");
- if(live_set == null) {
- live_set = set.new();
- setScriptVar("live_set", live_set);
- } else {
- //Register all Live-Players again
- iter = iterator(live_set);
- while(hasNext(iter)) {
- player = player.get(next(iter));
- if(player != null) {
- player.setLive(player, true);
- }
- }
- }
- afk_loop_active = false;
- afk_map = getScriptVar("afk_map");
- if(afk_map == null) {
- afk_map = map.new();
- setScriptVar("afk_map", afk_map);
- } else {
- //Alle Spieler, die AFK waren, wieder als AFK registrieren
- iter = map.iterator(afk_map);
- while(hasNext(iter)) {
- element = next(iter);
- player = player.get(map.getKey(element));
- if(player != null) {
- player.setAfk(player, true);
- afk_loop_active = true;
- }
- }
- }
- if(afk_loop_active) {
- sgoto(30, "afk_loop");
- }
- setScriptVar("ha_data_lists", map.new());
- setScriptVar("ha_undo_lists", map.new());
- money.setBoostFactor(1);
- sgoto(200, "sb_title_loop");
- sgoto(100, "coordsloop");
- sgoto(1200, "afk_checker_loop");
- sgoto(1200, "minute_loop");
- logo = read.item("{id:\"minecraft:brown_banner\",Count:1b,tag:{BlockEntityTag:{Patterns:[{Pattern:\"bs\",Color:15},{Pattern:\"ts\",Color:15},{Pattern:\"bo\",Color:12},{Pattern:\"cs\",Color:12},{Pattern:\"mr\",Color:15},{Pattern:\"mc\",Color:14}]}}}");
- lag_list = list.new();
- clan_invitations = list.new();
- friend_requests = map.new();
- lock_chests = map.new();
- chatbuffer = map.new();
- tpa_request = list.new();
- answer_map = map.new();
- plotpos1 = map.new();
- plotpos2 = map.new();
- invseeids = set.new();
- fields = set.new();
- vanish_set = set.new();
- failed_cmds = set.new();
- skip_night_set = set.new();
- afk_checker_map = map.new();
- butcher_set = set.new();
- set.add(butcher_set, "zombie");
- set.add(butcher_set, "zombie_villager");
- set.add(butcher_set, "husk");
- set.add(butcher_set, "skeleton");
- set.add(butcher_set, "creeper");
- set.add(butcher_set, "enderman");
- set.add(butcher_set, "pillager");
- set.add(butcher_set, "spider");
- set.add(butcher_set, "phantom");
- set.add(butcher_set, "witch");
- set.add(butcher_set, "stray");
- set.add(butcher_set, "drowned");
- set.add(butcher_set, "wither");
- set.add(butcher_set, "silverfish");
- set.add(butcher_set, "zombified_piglin");
- set.add(butcher_set, "cod");
- set.add(butcher_set, "guardian");
- attribut_set = set.new();
- set.add(attribut_set, "GENERIC_ARMOR");
- set.add(attribut_set, "GENERIC_ARMOR_TOUGHNESS");
- set.add(attribut_set, "GENERIC_ATTACK_DAMAGE");
- set.add(attribut_set, "GENERIC_ATTACK_KNOCKBACK");
- set.add(attribut_set, "GENERIC_ATTACK_SPEED");
- set.add(attribut_set, "GENERIC_FLYING_SPEED");
- set.add(attribut_set, "GENERIC_FOLLOW_RANGE");
- set.add(attribut_set, "GENERIC_KNOCKBACK_RESISTANCE");
- set.add(attribut_set, "GENERIC_LUCK");
- set.add(attribut_set, "GENERIC_MAX_HEALTH");
- set.add(attribut_set, "GENERIC_MOVEMENT_SPEED");
- set.add(attribut_set, "HORSE_JUMP_STRENGTH");
- set.add(attribut_set, "ZOMBIE_SPAWN_REINFORCEMENTS");
- operation_set = set.new();
- set.add(operation_set, "ADD_NUMBER");
- set.add(operation_set, "ADD_SCALAR");
- set.add(operation_set, "MULTIPLY_SCALAR_1");
- not_blocked_cmd = set.new();
- set.add(not_blocked_cmd, "leave");
- set.add(not_blocked_cmd, "ban");
- set.add(not_blocked_cmd, "kick");
- set.add(not_blocked_cmd, "warn");
- set.add(not_blocked_cmd, "tempban");
- set.add(not_blocked_cmd, "mute");
- set.add(not_blocked_cmd, "unmute");
- set.add(not_blocked_cmd, "unban");
- set.add(not_blocked_cmd, "tip");
- set.add(not_blocked_cmd, "var");
- set.add(not_blocked_cmd, "quest");
- set.add(not_blocked_cmd, "msg");
- set.add(not_blocked_cmd, "help");
- rank_array = array.new(28, 2);
- //Playtime
- rank.add(0, "rank.owner", "4Owner");
- rank.add(1, "rank.admin", "cAdmin");
- rank.add(2, "rank.moderator", "9Moderator");
- rank.add(3, "rank.supporter", "bSupporter");
- rank.add(4, "rank.dev", "5Developer");
- rank.add(5, "rank.builder", "5Builder");
- rank.add(6, "rank.vip", "dVIP");
- rank.add(7, "rank.influencer", "dInfluencer");
- rank.add(8, "rank.sponsor", "dSponsor");
- rank.add(9, "rank.legend", "2Legend");
- rank.add(10, "rank.pioneer", "2Pioneer");
- rank.add(11, "rank.lord", "2Lord");
- rank.add(12, "rank.altruist", "2Altruist");
- rank.add(13, "rank.major", "2Major");
- rank.add(14, "rank.frequenter", "6Frequenter");
- rank.add(15, "rank.explorer", "6Explorer");
- rank.add(16, "rank.chief", "6Chief");
- rank.add(17, "rank.friend", "6Friend");
- rank.add(18, "rank.colonizer", "6Colonizer");
- rank.add(19, "rank.newcomer", "eNewcomer");
- rank.add(20, "rank.adventurer", "eAdventurer");
- rank.add(21, "rank.commander", "eCommander");
- rank.add(22, "rank.volunteer", "eVolunteer");
- rank.add(23, "rank.settler", "eSettler");
- rank.add(24, "rank.user", "3User");
- rank.add(25, "rank.challenger", "5Challenger");
- rank.add(26, "rank.mobhunter", "6Mobhunter");
- rank.add(27, "rank.collector", "2Collector");
- setScriptVar("ranks", rank_array);
- month_array = array.new(12, 2);
- month.register(0, "Jan", 31);
- month.register(1, "Feb", 28);
- month.register(2, "Mar", 31);
- month.register(3, "Apr", 30);
- month.register(4, "May", 31);
- month.register(5, "Jun", 30);
- month.register(6, "Jul", 31);
- month.register(7, "Aug", 31);
- month.register(8, "Sep", 30);
- month.register(9, "Oct", 31);
- month.register(10, "Nov", 30);
- month.register(11, "Dec", 31);
- jailed_list = list.new();
- ironbars = item.create("minecraft:iron_bars", 1, "§r", null);
- jailmenu = inv.new("00000000", text.new("§8Jail"));
- inv.setItem(jailmenu, 0, ironbars);
- inv.setItem(jailmenu, 1, ironbars);
- inv.setItem(jailmenu, 2, ironbars);
- inv.setItem(jailmenu, 3, ironbars);
- inv.setItem(jailmenu, 4, ironbars);
- inv.setItem(jailmenu, 5, ironbars);
- inv.setItem(jailmenu, 6, ironbars);
- inv.setItem(jailmenu, 7, ironbars);
- inv.setItem(jailmenu, 8, ironbars);
- skip_night_inv = inv.new("002020200", text.new("Skip Night?"));
- inv.setItem(skip_night_inv, 2, item.custom.create("CHECK_GREEN", 1, "§fYes", null));
- inv.setItem(skip_night_inv, 4, item.create("clay_ball", 1, "§fI don´t care", null));
- inv.setItem(skip_night_inv, 6, item.custom.create("CROSS_RED", 1, "§fNo", null));
- skip_night_inv_id = inv.getId(skip_night_inv);
- vote_inv = inv.new("222222222", text.new("§8Voteshop"));
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e6 VP"));
- list.add(lore_list, text.new("§5Doubles incoming money for 10 minutes."));
- list.add(lore_list, text.new("§5Effects quests, minigames and mobarena."));
- inv.setItem(vote_inv, 0, item.custom.create("GOLD_COIN", 1, "§aMoney Booster", lore_list));
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e2 VP"));
- list.add(lore_list, text.new("§5Rickroles every player on the server."));
- inv.setItem(vote_inv, 1, item.create("JUKEBOX", 1, "§aRick is in the house", lore_list));
- updateVoteInv();
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e2 VP"));
- list.add(lore_list, text.new("§5Be a kiddie and enjoy it."));
- inv.setItem(vote_inv, 3, item.create("JUKEBOX", 1, "§aBi Ba Bobby Car", lore_list));
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e1 VP"));
- list.add(lore_list, text.new("§5Plays a creeper sound for each player."));
- inv.setItem(vote_inv, 4, item.create("JUKEBOX", 1, "§aFalse Alarm", lore_list));
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e1 VP"));
- list.add(lore_list, text.new("§5Opens your enderchest."));
- inv.setItem(vote_inv, 5, item.create("ENDER_CHEST", 1, "§aMobile Enderchest", lore_list));
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e7 VP"));
- list.add(lore_list, text.new("§5A sapphire for your armor."));
- list.add(lore_list, text.new("§5To use at jewelry smith."));
- inv.setItem(vote_inv, 6, item.custom.create("SAPPHIRE", 1, "§aSapphire", lore_list));
- vote_inv_id = inv.getId(vote_inv);
- consoleCommands = set.new();
- set.add(consoleCommands, "ban");
- set.add(consoleCommands, "help");
- set.add(consoleCommands, "kick");
- set.add(consoleCommands, "lastseen");
- set.add(consoleCommands, "list");
- set.add(consoleCommands, "memory");
- set.add(consoleCommands, "mute");
- set.add(consoleCommands, "say");
- set.add(consoleCommands, "start");
- set.add(consoleCommands, "tempban");
- set.add(consoleCommands, "tempfly");
- set.add(consoleCommands, "unban");
- set.add(consoleCommands, "unmute");
- set.add(consoleCommands, "user");
- set.add(consoleCommands, "warn");
- set.add(consoleCommands, "world");
- databank.workerExecute(databank.prepare("
- CREATE TABLE IF NOT EXISTS friends (
- player_id INT NOT NULL,
- friend_id INT NOT NULL,
- time BIGINT NOT NULL,
- PRIMARY KEY (player_id, friend_id)
- );
- "));
- databank.workerExecute(databank.prepare("
- CREATE TABLE IF NOT EXISTS new_plotranks (
- plot_id INT NOT NULL,
- player_id INT NOT NULL,
- rank VARCHAR(10),
- PRIMARY KEY (plot_id, player_id)
- );
- "));
- databank.workerExecute(databank.prepare("
- CREATE TABLE IF NOT EXISTS new_homes (
- player_id INT NOT NULL,
- name VARCHAR(20) NOT NULL,
- world_name VARCHAR(20) NOT NULL,
- x DOUBLE NOT NULL,
- y DOUBLE NOT NULL,
- z DOUBLE NOT NULL,
- yaw DOUBLE NOT NULL,
- pitch DOUBLE NOT NULL,
- PRIMARY KEY (player_id, name)
- );
- "));
- databank.workerExecute(databank.prepare("
- CREATE TABLE IF NOT EXISTS votes (
- id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(20) NOT NULL,
- player_id INT,
- time BIGINT NOT NULL
- );
- "));
- databank.workerExecute(databank.prepare("
- CREATE TABLE IF NOT EXISTS newbies (
- id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
- player_id INT NOT NULL,
- time BIGINT NOT NULL
- );
- "));
- //plot ranks cachen
- plot_ranks_map = map.new();
- stmt = databank.prepare("SELECT plot_id, player_id, rank FROM new_plotranks");
- result = databank.execute(stmt);
- while(databank.next(result)) {
- plot_id = databank.getInt(result, 1);
- player_id = databank.getInt(result, 2);
- rank = databank.getString(result, 3);
- map = map.get(plot_ranks_map, plot_id);
- if(map == null) {
- map = map.new();
- }
- map.add(map, player_id, rank);
- map.add(plot_ranks_map, plot_id, map);
- }
- databank.close(result);
- databank.close(stmt);
- setScriptVar("plot_ranks", plot_ranks_map);
- last_skip_night = 0;
- skip_night_started = false;
- jail_loop_active = false;
- actual_move_id = map.new(); //Key: player_uuid, Value: move_id. Diese Map speichert das aktuell betretene Plot eines Spielers.
- plot_move_ids_list = list.new(); //Speichert Array mit plot_id und move_id
- check_for_plot_list = list.new();
- plot.registerMoveEvents(world.getOverworld());
- plot.registerMoveEvents(world.getTheNether());
- plot.registerMoveEvents(world.getTheEnd());
- plot.registerMoveEvents(world.getCreative());
- RickRollSounds = getRickRollSounds();
- RickRollSoundDists = getRickRollSoundDists();
- rick_sounds_amount = list.getSize(RickRollSoundDists);
- bobbyCarSounds = getBobbyCarSounds();
- bobbyCarSoundDists = getBobbyCarSoundDists();
- bcar_sounds_amount = list.getSize(bobbyCarSoundDists);
- item_flags = getItemFlags();
- sound_category_master = sound.getCategory("MASTER");
- sound_flute = sound.get("BLOCK_NOTE_BLOCK_FLUTE");
- sound_harp = sound.get("BLOCK_NOTE_BLOCK_HARP");
- sound_pling = sound.get("BLOCK_NOTE_BLOCK_PLING");
- creeper_primed = sound.get("ENTITY_CREEPER_PRIMED");
- event.load("player_move");
- event.load("snuvi_click");
- event.load("inv_close");
- event.load("missing_perm");
- event.load("missing_command");
- event.load("command");
- event.load("custom_command");
- event.load("block_click");
- event.load("player_quit");
- event.load("vote");
- msg("dev", text.new("§bCommands §rloaded."));
- @wait
- wait();
- if(event == "command") {
- if(string.startsWith(permission, "worldedit", 0)) {
- if(perm.has("creative.we", player)) {
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(!world.isCreativeName(world_name)) {
- cancel = true;
- msg.prefix(player, prefix_commands, "You are not in the creative world.");
- goto("wait");
- }
- }
- }
- goto("wait");
- }
- if(event == "custom_command") {
- //Permission-Check
- command = string.toLowerCase(command);
- command = map.getOrDefault(alias_map, command, command);
- size = list.getSize(args);
- if(isPlayer(sender)) {
- player = sender;
- } else {
- if(!set.contains(consoleCommands, command)) {
- msg.string(sender, "Sorry. Not a console command yet. Go and tell marvinius.");
- goto("wait");
- }
- player = null;
- }
- if(!perm.has(command, sender)) {
- perm.no(command, sender);
- goto("wait");
- }
- if(set.contains(failed_cmds, command)) {
- msg.prefix(sender, prefix_commands, "§cCommand temporarly deactivated due to failure.");
- goto("wait");
- }
- if(player.isCommandBlocked(sender)) {
- if(!set.contains(not_blocked_cmd, command)) {
- msg.prefix(sender, prefix_commands, "The most important rule in competition: Sabotage!");
- goto("wait");
- }
- }
- ignoreGoto(command);
- goto("wait");
- }
- if(event == "vote") {
- now_time = time.getMillis();
- vote.register(name, now_time);
- p_uuid = player.getUuid(name);
- if(p_uuid != null) {
- p_id = player.getId(p_uuid);
- player.addVotePoints(p_id, 1);
- if(from == "minecraft-server.eu") {
- msg("online", text.merge(text.new(string.getPrefix(prefix_vote)), text.new(string.concat(" §b", name, "§r has voted! ")), string.getLinkText("[§bminecraft-server.eu§r]", "https://minecraft-server.eu/vote/index/2227F")));
- } else {
- msg("online", text.merge(text.new(string.getPrefix(prefix_vote)), text.new(string.concat(" §b", name, "§r has voted! ")), string.getLinkText("[§bminecraft-server-list.com§r]", "https://minecraft-server-list.com/server/478200/vote/")));
- }
- last_vote_time = player.getLastVoteTime(p_id);
- new_streak = player.getVoteStreak(p_id);
- if(last_vote_time == 0) {
- new_streak++;
- } elseif(isFollowingDay(last_vote_time, now_time)) {
- new_streak++;
- } elseif(!isSameDay(last_vote_time, now_time)) {
- new_streak = 1;
- }
- if(new_streak % 7 == 0) {
- msg.online(prefix_vote, string.concat(player.getName(p_uuid), " reached a votestreak of 7 and gets an additional votepoint."));
- player.addVotePoints(p_id, 1);
- }
- player.setVoteStreak(p_id, new_streak);
- player.setLastVoteTime(p_id, now_time);
- }
- goto("wait");
- }
- if(event == "player_move") {
- player_uuid = player.getUuid(player);
- last_move_id = map.getOrDefault(actual_move_id, player_uuid, null);
- if(last_move_id == id) {
- goto("wait");
- }
- player_loc = entity.getLocation(player);
- new_plot_id = plot.getPlotIdFromMoveId(id);
- new_plot = plot.getFromId(new_plot_id, loc.getWorld(player_loc));
- if(new_plot == null) {
- goto("wait");
- }
- high_plot_id = plot.getHighestId(player_loc);
- if(new_plot_id < high_plot_id) {
- goto("wait");
- }
- if(plot.isCity(new_plot)) {
- color_code = "§c";
- } else {
- color_code = "§e";
- }
- title.send(player, text.new(""), text.new(string.concat("You entered ", color_code, plot.getName(new_plot), ".")));
- map.add(actual_move_id, player_uuid, id);
- list.add(check_for_plot_list, player_uuid);
- sgoto(100, "checkForPlot");
- goto("wait");
- }
- if(event == "block_click") {
- if(block == null) {
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(action == "RIGHT_CLICK_BLOCK" && !world.isSurvName(world_name) && block.hasTag(block, beds_tag)) {
- cancel = true;
- goto("wait");
- }
- if(player.hasBypass(player)) {
- goto("wait");
- }
- if(block.hasTag(block, chest_tag)) {
- block_loc = block.getLocation(block);
- if(plot.check(block_loc, player, 16, true)) {
- cancel = false;
- goto("wait");
- }
- player_id = player.getId(player);
- player_uuid = player.getUuid(player);
- list = plot.get(block_loc);
- if(list.getSize(list) > 0) {
- iter = iterator(list);
- access = false;
- while(hasNext(iter)) {
- plot = next(iter);
- canOpenChests = plot.canOpenChests(plot, player_id);
- if(plot.isSub(plot)) {
- if(canOpenChests) {
- cancel = false;
- goto("wait");
- }
- cancel = true;
- msg.prefix(player, prefix_plot, "This chest is locked for you.");
- goto("wait");
- }
- if(canOpenChests) {
- access = true;
- cancel = false;
- }
- }
- if(!access && !plot.hasBlock(block_loc)) {
- if(!world.isGamesName(world_name)) {
- msg.prefix(player, prefix_plot, "This chest is locked for you.");
- }
- }
- }
- goto("wait");
- }
- if(action == "RIGHT_CLICK_BLOCK" && block.hasTag(block, sign_tag)) {
- line0 = sign.getString(block, "FRONT", 0);
- if(line0 != "§3[§bFree Plot§3]") {
- goto("wait");
- }
- price = read.number(string.removeFormat(sign.getString(block, "FRONT", 1)));
- if(price == null || !isDouble(price) || price < 0) {
- msg.prefix(player, prefix_plot, "Positive number expected.");
- goto("wait");
- }
- p_id = read.number(sign.getString(block, "FRONT", 3));
- if(p_id == null || !isDouble(p_id)) {
- msg.prefix(player, prefix_plot, "Invalid city owner.");
- goto("wait");
- }
- if(player.getNameFromId(p_id) == null) {
- msg.prefix(player, prefix_plot, "Invalid city owner.");
- goto("wait");
- }
- if(!hasEnoughMoney(player, price)) {
- msg.prefix(player, prefix_plot, string.concat("You´ll need §6", string.number(price), "§r snuvis for this."));
- goto("wait");
- }
- block_loc = block.getLocation(block);
- plot_list = plot.get(block_loc);
- iter = iterator(plot_list);
- while(hasNext(iter)) {
- plot = next(iter);
- if(plot.isFree(plot)) {
- break;
- }
- }
- if(!plot.isFree(plot)) {
- msg.prefix(player, prefix_plot, "You aren´t on a free plot.");
- goto("wait");
- }
- //Plot claimen
- money.sub(player, price);
- money.add(p_id, price);
- plot.setSub(plot, true);
- plot.setLeader(plot, player.getId(player));
- player_name = player.getName(player);
- plot.addPlayer(plot, player_name);
- plot.setName(plot, string.concat("Plot of ", player_name));
- msg.prefix(player, prefix_plot, string.concat("Plot claimed. Spent §6", string.number(price), "§r snuvis."));
- goto("wait");
- }
- goto("wait");
- }
- if(event == "missing_command") {
- msg.prefix(sender, prefix_commands, string.concat("No command ", command));
- goto("wait");
- }
- if(event == "player_quit") {
- map.remove(afk_checker_map, uuid);
- player.setAfk(player, false);
- list.remove(jailed_list, player.getUuid(player));
- if(player.hasQuest(player)) {
- script_id = quest.getFromPlayer(player);
- script = script.getFromId(script_id);
- if(script == null) {
- msg.dev("Player logged out with corrupt quest");
- quest.removePlayer(player); //in case of corrupt quest
- goto("wait");
- }
- setScriptVar("player", player);
- modTimer.scriptCallEvent("quest_term", script);
- quest.term(script, player);
- }
- if(player.isInParty(player)) {
- party.kickPlayer(player, "logout");
- }
- goto("wait");
- }
- if(event == "missing_perm") {
- perm.no(command, sender);
- msg.prefix(sender, prefix_perms, string.concat("Missing Perm: §c", perm));
- goto("wait");
- }
- if(event == "snuvi_click") {
- inv_id = inv.getId(inv);
- item = inv.getItem(inv, inv_slot);
- if(item == null) {
- goto("wait");
- }
- title_string = string.text(inv_title);
- if(string.startsWith(title_string, "Mailbox", 0)) {
- item.removeFlag(item, "HIDE_DESTROYS");
- if(click == "SHIFT_LEFT") {
- //Clone item
- player.safeGiveItem(player, item);
- goto("wait");
- }
- //Take item
- player.safeGiveItem(player, item);
- inv.setItem(inv, inv_slot, item.create("BLACK_STAINED_GLASS_PANE", 1, "", null));
- split_array = string.split(" ", title_string);
- p_name = split_array[2];
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- inv.close(player);
- msg.prefix(player, prefix_commands, "Mailbox closed. Unknown player.");
- goto("wait");
- }
- p_id = player.getId(p_uuid);
- mailbox.removeItem(p_id, inv_slot);
- goto("wait");
- }
- if(string.startsWith(title_string, "Customitems", 0)) {
- item = inv.getItem(inv, inv_slot);
- if(item != null) {
- player.safeGiveItem(player, item);
- }
- goto("wait");
- }
- if(set.contains(invseeids, inv_id)) {
- if(!perm.has("inv.see.plus", player)) {
- perm.no("inv.see.plus", player);
- goto("wait");
- }
- split_array = string.split(" ", title_string);
- p_name = split_array[2];
- p = read.player(p_name);
- if(p == null) {
- inv.close(player);
- msg.prefix(player, prefix_commands, "This player is no longer online. Use /inv to load and overwrite an inventory of a offline player.");
- goto("wait");
- }
- item.removeFlag(item, "HIDE_DESTROYS");
- if(click == "SHIFT_LEFT") {
- //Clone item
- player.safeGiveItem(player, item);
- goto("wait");
- }
- //Transmit item
- player.removeItem(p, item);
- player.safeGiveItem(player, item);
- inv.setItem(inv, inv_slot, item.create("BLACK_STAINED_GLASS_PANE", 1, "", null));
- goto("wait");
- }
- if(inv_id == vote_inv_id) {
- if(inv_slot == 0) {
- if(money.getBoostFactor() > 1) {
- msg.prefix(player, prefix_commands, "Boost already active.");
- goto("wait");
- }
- vp = player.getVotePoints(player);
- if(vp < 6) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- player.setVotePoints(player, vp - 6);
- msg.online(prefix_vote, string.concat(player.getName(player), " activated §dMoney Booster§r."));
- money.setBoostFactor(2);
- online_list = players.toList();
- iter = iterator(online_list);
- while(hasNext(iter)) {
- p = next(iter);
- sb.add(p, 5, "§6Money Booster +100%");
- }
- sgoto(12000, "resetMoneyBoost");
- goto("wait");
- }
- if(inv_slot == 1) {
- vp = player.getVotePoints(player);
- if(vp < 2) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- msg.online(prefix_vote, string.concat(player.getName(player), " activated §dRick is in the house§r."));
- player.setVotePoints(player, vp - 2);
- rickIndex = 0;
- goto("RickRole_play");
- }
- if(inv_slot == 2) {
- vp = player.getVotePoints(player);
- if(vp < 1) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- player.setVotePoints(player, vp - 1);
- increaseHomeBoost();
- msg.online(prefix_vote, string.concat(player.getName(player), " spend their votepoints to §dMore Homes§r."));
- goto("wait");
- }
- if(inv_slot == 3) {
- vp = player.getVotePoints(player);
- if(vp < 2) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- msg.online(prefix_vote, string.concat(player.getName(player), " activated §dBi Ba Bobby Car§r."));
- player.setVotePoints(player, vp - 2);
- bobbycarIndex = 0;
- goto("bobbycar_play");
- }
- if(inv_slot == 4) {
- vp = player.getVotePoints(player);
- if(vp < 1) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- msg.online(prefix_vote, string.concat(player.getName(player), " activated §dFalse Alarm§r."));
- player.setVotePoints(player, vp - 1);
- iter = iterator(players.toList());
- while(hasNext(iter)) {
- sound.spawnForPlayer(next(iter), creeper_primed, sound_category_master);
- }
- goto("wait");
- }
- if(inv_slot == 5) {
- vp = player.getVotePoints(player);
- if(vp < 1) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- player.setVotePoints(player, vp - 1);
- inv.open(player.getEnderInv(player), player);
- goto("wait");
- }
- if(inv_slot == 6) {
- vp = player.getVotePoints(player);
- if(vp < 7) {
- msg.prefix(player, prefix_commands, "Not enough vote points.");
- goto("wait");
- }
- msg.online(prefix_vote, string.concat(player.getName(player), " spend their votepoints to §dSapphire§r."));
- player.setVotePoints(player, vp - 7);
- player.giveItem(player, item.getSapphire());
- goto("wait");
- }
- goto("wait");
- }
- if(inv_id == skip_night_inv_id) {
- world = world.getOverWorld();
- world_time = world.getTime(world);
- while(world_time >= 24000) {
- world_time -= 24000;
- }
- if(world_time <= 12500) {
- goto("wait");
- }
- player_uuid = player.getUuid(player);
- if(set.contains(skip_night_set, player_uuid)) {
- msg.prefix(player, prefix_commands, "Already voted.");
- goto("wait");
- }
- if(!skip_night_started) {
- skip_night_yes_list = list.new();
- world.addTimedStatus(world, 49, 300, "Skip night?");
- msg("online", text.merge(text.new(string.getPrefix(prefix_commands)), text.new(" Skip night? Vote within 15 seconds. "), string.getClickText("[§cClick§r]", "/skipnight")));
- skip_night_counter = 15;
- skip_night_yes = 0;
- skip_night_no = 0;
- skip_night_no_care = 0;
- skip_night_started = true;
- sgoto(20, "skip_night_loop");
- }
- if(inv_slot == 2) {
- skip_night_yes++;
- inv.close(player);
- set.add(skip_night_set, player_uuid);
- list.add(skip_night_yes_list, player_uuid);
- goto("wait");
- }
- if(inv_slot == 4) {
- skip_night_no_care++;
- inv.close(player);
- set.add(skip_night_set, player_uuid);
- goto("wait");
- }
- if(inv_slot == 6) {
- skip_night_no++;
- inv.close(player);
- set.add(skip_night_set, player_uuid);
- goto("wait");
- }
- goto("wait");
- }
- if(title_string == "Skills") {
- if(item == null) {
- goto("wait");
- }
- skill_name = string.removeFormat(string.text(item.getName(item)));
- if(skill_name == "") {
- goto("wait");
- }
- tech_name = skill.getTechName(skill_name);
- //Toggle skills
- if(skill.isToggleable(tech_name)) {
- if(skill.isActivated(player, tech_name)) {
- skill.setActivated(player, tech_name, false);
- } else {
- skill.setActivated(player, tech_name, true);
- }
- inv.setItem(inv, inv_slot, skill.getSettingsItem(player, tech_name));
- goto("wait");
- }
- //Activate skill
- if(skill.isActive(tech_name)) {
- player_loc = entity.getLocation(player);
- world_name = world.getName(loc.getWorld(player_loc));
- if(!world.isSurvName(world_name)) {
- msg.prefix(player, prefix_skill, "You can´t use this in this world.");
- goto("wait");
- }
- goto("wait");
-
- if(tech_name == "skill.fire_arrow") {
- duration = data.getTimer(player, tech_name);
- if(duration > 0) {
- msg.prefix(player, prefix_skill, "Skill already active.");
- goto("wait");
- }
- amount = skill.getAmount(player, tech_name);
- if(amount > 0) {
- status.addTimed(player, 54, 1200, skill_name);
- data.setTimer(player, tech_name, 1200);
- new_amount = amount - 1;
- skill.setAmount(player, tech_name, new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used ", skill_name, ". New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.fly10min") {
- duration = data.getTimer(player, "fly");
- if(duration > 0) {
- msg.prefix(player, prefix_skill, "Skill already active.");
- goto("wait");
- }
- amount = skill.getAmount(player, "skill.fly10min");
- if(amount > 0) {
- status.addTimed(player, 50, 12000, "Fly");
- data.setTimer(player, "fly", 12000);
- player.setFly(player, true);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.fly10min", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Fly 10min. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.grow") {
- amount = skill.getAmount(player, "skill.grow");
- if(amount > 0) {
- grow(player_loc, 5);
- particle.spawnCircle(loc.mod(entity.getLocation(player), 0, 0.8, 0), composter_par, 50, 5, 1, 0, 0, 0.2, 0);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.grow", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Grow. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.haste") {
- amount = skill.getAmount(player, "skill.haste");
- if(amount > 0) {
- entity.addEffect(player, "haste", 2400, 0);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.haste", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Haste. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.speed") {
- amount = skill.getAmount(player, "skill.speed");
- if(amount > 0) {
- entity.addEffect(player, "speed", 2400, 0);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.speed", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Speed. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.jump_boost") {
- amount = skill.getAmount(player, "skill.jump_boost");
- if(amount > 0) {
- entity.addEffect(player, "jump_boost", 2400, 1);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.jump_boost", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Jump Boost. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.dolphin") {
- amount = skill.getAmount(player, "skill.dolphin");
- if(amount > 0) {
- entity.addEffect(player, "dolphins_grace", 1200, 0);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.dolphin", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Dolphin. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.block_up") {
- duration = data.getTimer(player, "block_up");
- if(duration > 0) {
- msg.prefix(player, prefix_skill, "Skill already active.");
- goto("wait");
- }
- amount = skill.getAmount(player, "skill.block_up");
- if(amount > 0) {
- status.addTimed(player, 51, 1200, "Block Up");
- data.setTimer(player, "block_up", 1200);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.block_up", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Block Up. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- if(tech_name == "skill.block_down") {
- duration = data.getTimer(player, "block_down");
- if(duration > 0) {
- msg.prefix(player, prefix_skill, "Skill already active.");
- goto("wait");
- }
- amount = skill.getAmount(player, "skill.block_down");
- if(amount > 0) {
- status.addTimed(player, 52, 1200, "Block Down");
- data.setTimer(player, "block_down", 1200);
- new_amount = amount - 1;
- skill.setAmount(player, "skill.block_down", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Block Down. New amount: ", string.number(new_amount)));
- }
- goto("wait");
- }
- }
- goto("wait");
- }
- if(title_string == "§8Settings") {
- if(inv_slot == 0) {
- new_value = !player.getAutoCloseDoor(player);
- player.setAutoCloseDoor(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:oak_door", 1, "§fAutomatic Doors", item.createLore(new_value)));
- }
- elseif(inv_slot == 1) {
- new_value = !player.doesAcceptTpaRequests(player);
- player.acceptTpaRequests(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", item.createLore(new_value)));
- }
- elseif(inv_slot == 2) {
- new_value = !player.getShowcoords(player);
- player.setShowcoords(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:compass", 1, "§fShow Coords", item.createLore(new_value)));
- if(!new_value) {
- sb.remove(player, 2);
- sb.remove(player, 3);
- }
- }
- elseif(inv_slot == 3) {
- new_value = !player.hasSittingActivated(player);
- player.activateSitting(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:oak_stairs", 1, "§fStair-Sitting", item.createLore(new_value)));
- }
- elseif(inv_slot == 4) {
- new_value = !hasPvpOn(player);
- setPvp(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:iron_sword", 1, "§fPvP", item.createLore(new_value)));
- }
- elseif(inv_slot == 5) {
- new_value = !player.getNoPetDamage(player);
- player.setNoPetDamage(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:bone", 1, "§fNo Pet Damage", item.createLore(new_value)));
- }
- elseif(inv_slot == 6) {
- new_value = !player.getTipLoop(player);
- player.setTipLoop(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:oak_sign", 1, "§fShow tip loop", item.createLore(new_value)));
- }
- elseif(inv_slot == 7) {
- new_value = !player.usesCustomMessage(player);
- player.activateCustomMessage(player, new_value);
- inv.setItem(inv, inv_slot, item.create("minecraft:oak_sign", 1, "§fUse custom messages", item.createLore(new_value)));
- }
- }
- goto("wait");
- }
- if(event == "inv_close") {
- if(set.contains(invseeids, inv_id)) {
- set.remove(invseeids, inv_id);
- }
- goto("wait");
- }
- goto("wait");
- @block
- if(size == 0) {
- @blockhelp
- msg.prefix(player, prefix_plot, "/block ...");
- msg.string(player, "§d - info §rPrints info about a block");
- msg.string(player, "§d - public §rMakes a block public");
- msg.string(player, "§d - remove §rRemoves a block from public list");
- if(perm.has("block.fix", player)) {
- msg.string(player, "§d - fix §rRemoves all air blocks from public list");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "info") {
- block = player.getTargetBlock(player, 5);
- if(block == null) {
- msg.prefix(player, prefix_commands, "No block in sight.");
- goto("wait");
- }
- target_loc = block.getLocation(block);
- msg.string(player, string.getSpacer());
- x = string.number(loc.getX(target_loc));
- y = string.number(loc.getY(target_loc));
- z = string.number(loc.getZ(target_loc));
- msg.string(player, string.concat("§6W §r", world.getName(loc.getWorld(target_loc))));
- msg.string(player, string.concat("§6X §r", x, " §6Y §r", y, " §6Z §r", z));
- msg.string(player, string.concat("§6Type: §r", block.getType(block)));
- msg.string(player, string.concat("§6Public: §r", plot.hasBlock(target_loc)));
- msg.string(player, string.concat("§6Data: §r", block.getData(block)));
- goto("wait");
- }
- if(arg0 == "public") {
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/block public");
- goto("wait");
- }
- block = player.getTargetBlock(player, 5);
- if(block == null) {
- msg.prefix(player, prefix_commands, "No block in sight.");
- goto("wait");
- }
- location = block.getLocation(block);
- plot.addBlock(location);
- msg.prefix(player, prefix_commands, "Block whitelisted for interaction.");
- plot.saveBlocks(loc.getWorld(location));
- goto("wait");
- }
- if(arg0 == "remove") {
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/block remove");
- goto("wait");
- }
- block = player.getTargetBlock(player, 5);
- if(block == null) {
- msg.prefix(player, prefix_commands, "No block in sight.");
- goto("wait");
- }
- location = block.getLocation(block);
- plot.removeBlock(location);
- msg.prefix(player, prefix_commands, "Block no longer whitelisted for interaction.");
- plot.saveBlocks(loc.getWorld(location));
- goto("wait");
- }
- if(arg0 == "fix") {
- if(!perm.has("block.fix", player)) {
- perm.no("block.fix", player);
- goto("wait");
- }
- //temp_list verhindern concurrent modification
- temp_list = list.new();
- world = world.getOverWorld();
- c = 0;
- iter = plot.blockIterator(world);
- while(hasNext(iter)) {
- pos = next(iter);
- x = plot.position.getX(pos);
- y = plot.position.getY(pos);
- z = plot.position.getZ(pos);
- loc = loc.new(world, x, y, z);
- block = block.get(loc);
- if(block.isAir(block)) {
- c++;
- list.add(temp_list, loc);
- }
- }
- iter = iterator(temp_list);
- while(hasNext(iter)) {
- plot.removeBlock(next(iter));
- }
- msg.prefix(player, prefix_commands, string.concat("Removed ", string.number(c), " blocks."));
- goto("wait");
- }
- goto("blockhelp");
- @settings
- inv = inv.new("222222222", text.new("§8Settings"));
- inv.setItem(inv, 0, item.create("minecraft:oak_door", 1, "§fAutomatic Doors", item.createLore(player.getAutoCloseDoor(player))));
- inv.setItem(inv, 1, item.create("minecraft:ender_pearl", 1, "§fAccept TPA-Requests", item.createLore(player.doesAcceptTpaRequests(player))));
- inv.setItem(inv, 2, item.create("minecraft:compass", 1, "§fShow Coords", item.createLore(player.getShowcoords(player))));
- inv.setItem(inv, 3, item.create("minecraft:oak_stairs", 1, "§fStair-Sitting", item.createLore(player.hasSittingActivated(player))));
- inv.setItem(inv, 4, item.create("minecraft:iron_sword", 1, "§fPvP", item.createLore(hasPvpOn(player))));
- inv.setItem(inv, 5, item.create("minecraft:bone", 1, "§fNo Pet Damage", item.createLore(player.getNoPetDamage(player))));
- inv.setItem(inv, 6, item.create("minecraft:oak_sign", 1, "§fShow tip loop", item.createLore(player.getTipLoop(player))));
- inv.setItem(inv, 7, item.create("minecraft:oak_sign", 1, "§fUse custom messages", item.createLore(player.usesCustomMessage(player))));
- inv.open(inv, player);
- goto("wait");
- @loginrequests
- if(size < 2) {
- msg.prefix(sender, prefix_commands, "/loginrequests <player/all> <amount> [result]");
- goto("wait");
- }
- amount = list.getIndex(args, 1);
- if(!isDouble(amount) || amount < 0) {
- msg.prefix(player, prefix_shop, "Positive number expected.");
- goto("wait");
- }
- result = null;
- if(size == 3) {
- result = list.getIndex(args, 2);
- if(result != "ALLOWED" &&
- result != "KICK_FULL" &&
- result != "KICK_BANNED" &&
- result != "KICK_WHITELIST" &&
- result != "KICK_OTHER") {
- msg.prefix(player, prefix_shop, "No valid result.");
- goto("wait");
- }
- }
- p_name = list.getIndex(args, 0);
- if(p_name == "all") {
- list = loginrequests.getAll(amount, result);
- } else {
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_tips, "This player has never been online.");
- goto("wait");
- }
- p_id = player.getId(p_uuid);
- list = loginrequests.getPlayer(p_id, amount, result);
- }
- table = table.new("§b", 10, 11, 10);
- msg.string(player, table.getStart(table));
- msg.string(player, table.get(table, "Player", "Time", "Result"));
- msg.string(player, table.getMiddle(table));
- iter = iterator(list);
- while(hasNext(iter)) {
- a = next(iter);
- msg.string(player, table.get(table, player.getNameFromId(a[0]), time.getString(a[1]), a[2]));
- }
- msg.string(player, table.getEnd(table));
- goto("wait");
- @shop
- if(size == 0) {
- @shop_help
- msg.prefix(player, prefix_shop, "/shop ...");
- msg.string(player, "§6 - create §rCreates a shop");
- msg.string(player, "§6 - buy <amount> <price> §rSet buy settings");
- msg.string(player, "§6 - sell <amount> <price> §rSet sell settings");
- msg.string(player, "§6 - remove <buy/sell> §rRemove settings");
- if(perm.has("shop.owner", player)) {
- msg.string(player, "§6 - owner <player> §rSet shop owner");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "create") {
- if(size != 1) {
- msg.prefix(player, prefix_shop, "§6/shop create");
- goto("wait");
- }
- sign_block = player.getTargetBlock(player, 5, false, false);
- if(!block.isWallSign(sign_block)) {
- msg.prefix(player, prefix_shop, "Look at a wall sign.");
- goto("wait");
- }
- chest_block = block.mod(sign_block, 0, -1, 0);
- if(!block.isChest(chest_block)) {
- msg.prefix(player, prefix_shop, "No chest under sign.");
- goto("wait");
- }
- if(sign.getString(sign_block, "FRONT", 0) != "") {
- msg.prefix(player, prefix_shop, "Sign is not empty.");
- goto("wait");
- }
- sign_loc = block.getLocation(sign_block);
- sign.setString(sign_block, "FRONT", 0, "[Shop]");
- sign.setString(sign_block, "FRONT", 3, string.number(player.getId(player)));
- block.signSetWaxed(sign_block, true);
- msg.prefix(player, prefix_shop, "Created Shop.");
- goto("wait");
- }
- if(arg0 == "buy" || arg0 == "sell") {
- if(size != 3) {
- msg.prefix(player, prefix_shop, string.concat("§6/shop ", arg0, " <amount> <price>"));
- goto("wait");
- }
- amount = list.getIndex(args, 1);
- price = list.getIndex(args, 2);
- if(!isDouble(amount) || !isDouble(price)) {
- msg.prefix(player, prefix_shop, "Number expected.");
- goto("wait");
- }
- amount = math.round(amount);
- if(amount < 0) {
- msg.prefix(player, prefix_shop, "Positive number expected.");
- goto("wait");
- }
- if(price < 0) {
- msg.prefix(player, prefix_shop, "Positive number expected.");
- goto("wait");
- }
- if(price > 266304) {
- msg.prefix(player, prefix_shop, string.concat("Maximum ", money.getString(266304), " allowed."));
- goto("wait");
- }
- sign_block = player.getTargetBlock(player, 5, false, false);
- if(!block.isWallSign(sign_block)) {
- msg.prefix(player, prefix_shop, "Look at a wall sign.");
- goto("wait");
- }
- chest_block = block.mod(sign_block, 0, -1, 0);
- if(!block.isChest(chest_block)) {
- msg.prefix(player, prefix_shop, "No chest under sign.");
- goto("wait");
- }
- if(!shop.isOwner(player, sign_block)) {
- msg.prefix(player, prefix_shop, "You are not the owner.");
- goto("wait");
- }
- if(arg0 == "buy") {
- sign.setString(sign_block, "FRONT", 1, string.concat("Buy ", string.number(amount), " for ", string.number(price)));
- } else {
- sign.setString(sign_block, "FRONT", 2, string.concat("Sell ", string.number(amount), " for ", string.number(price)));
- }
- msg.prefix(player, prefix_shop, "Price set.");
- goto("wait");
- }
- if(arg0 == "remove") {
- if(size != 2) {
- msg.prefix(player, prefix_shop, "§6/shop remove <buy/sell>");
- goto("wait");
- }
- sign_block = player.getTargetBlock(player, 5, false, false);
- if(!block.isWallSign(sign_block)) {
- msg.prefix(player, prefix_shop, "Look at a wall sign.");
- goto("wait");
- }
- chest_block = block.mod(sign_block, 0, -1, 0);
- if(!block.isChest(chest_block)) {
- msg.prefix(player, prefix_shop, "No chest under sign.");
- goto("wait");
- }
- if(!shop.isOwner(player, sign_block)) {
- msg.prefix(player, prefix_shop, "You are not the owner.");
- goto("wait");
- }
- arg1 = string.toLowerCase(list.getIndex(args, 1));
- if(arg1 == "buy") {
- sign.setString(sign_block, "FRONT", 1, "");
- } elseif(arg1 == "sell") {
- sign.setString(sign_block, "FRONT", 2, "");
- } else {
- msg.prefix(player, prefix_shop, "§6/shop remove <buy/sell>");
- goto("wait");
- }
- msg.prefix(player, prefix_shop, "Price removed.");
- goto("wait");
- }
- if(arg0 == "owner") {
- if(!perm.has("shop.owner", player)) {
- perm.no("shop.owner", player);
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_shop, "§6/shop owner <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_shop, "This player has never been online.");
- goto("wait");
- }
- sign_block = player.getTargetBlock(player, 5, false, false);
- if(!block.isWallSign(sign_block)) {
- msg.prefix(player, prefix_shop, "Look at a wall sign.");
- goto("wait");
- }
- sign.setString(sign_block, "FRONT", 3, string.number(player.getId(p_uuid)));
- goto("wait");
- }
- goto("shop_help");
- @mailbox
- location = entity.getLocation(player);
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(!world.isSurvName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t use this command in this world.");
- goto("wait");
- }
- if(player.isOnAdventure(player) && !perm.has("mailbox.other", player)) {
- msg.prefix(player, prefix_commands, "You can´t use the mailbox while on adventure.");
- goto("wait");
- }
- if(size == 0) {
- msg.prefix(player, prefix_commands, "/mailbox...");
- if(perm.has("mailbox.other", player)) {
- msg.string(player, "§6 - show [player] §rOpens a mailbox of a player.");
- } else {
- msg.string(player, "§6 - show §rOpens your mailbox.");
- }
- msg.string(player, "§6 - send <player> §rSends the item in your hand to a mailbox of a player.");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "send") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/mailbox send <player>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand.");
- goto("wait");
- }
- to_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(to_name)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- to_player_id = player.getId(player.getUuid(to_name));
- if(!mailbox.sendItem(to_player_id, item)) {
- msg.prefix(player, prefix_commands, "No free space in mailbox.");
- goto("wait");
- }
- living.setEquip(player, read.slot("HAND"), null);
- msg.send(player, to_name, prefix_commands, string.concat(player.getName(player), " sent you items to your mailbox."), true);
- msg.prefix(player, prefix_commands, "Item sent to player.");
- goto("wait");
- }
- if(arg0 == "show") {
- if(size == 1) {
- player_id = player.getId(player);
- mailbox.show(player, player_id, false);
- mailbox.clear(player_id);
- goto("wait");
- }
- if(size == 2) {
- if(!perm.has("mailbox.other", player)) {
- perm.no("mailbox.other", player);
- goto("wait");
- }
- from_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(from_name)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- from_player_id = player.getId(player.getUuid(from_name));
- mailbox.show(player, from_player_id, true);
- goto("wait");
- }
- if(perm.has("mailbox.other", player)) {
- msg.prefix(player, prefix_commands, "/mailbox show [player]");
- } else {
- msg.prefix(player, prefix_commands, "/mailbox show");
- }
- }
- goto("wait");
- @RickRole_play
- if(rickIndex < rick_sounds_amount) {
- pitch = list.getIndex(RickRollSounds, rickIndex);
- PlayVoteSound(pitch);
- ticks = 2 + list.getIndex(RickRollSoundDists, rickIndex);
- sgoto(ticks, "RickRole_play");
- }
- rickIndex++;
- goto("wait");
- @bobbycar_play
- if(bobbycarIndex < bcar_sounds_amount) {
- pitch = list.getIndex(bobbyCarSounds, bobbycarIndex);
- PlayVoteSound(pitch);
- ticks = list.getIndex(bobbyCarSoundDists, bobbycarIndex);
- sgoto(ticks, "bobbycar_play");
- }
- bobbycarIndex++;
- goto("wait");
- function PlayVoteSound(pitch) {
- iter = iterator(players.toList());
- while(hasNext(iter)) {
- online_player = next(iter);
- if(online_player == null) {
- continue;
- }
- sound.spawnForPlayer(online_player, $sound_flute, $sound_category_master, 1, pitch);
- sound.spawnForPlayer(online_player, $sound_harp, $sound_category_master, 1, pitch);
- sound.spawnForPlayer(online_player, $sound_pling, $sound_category_master, 1, pitch);
- }
- }
- @resetMoneyBoost
- money.setBoostFactor(1);
- online_list = players.toList();
- iter = iterator(online_list);
- while(hasNext(iter)) {
- p = next(iter);
- sb.remove(p, 5);
- }
- goto("wait");
- @skip_night_loop
- skip_night_counter--;
- if(skip_night_counter == 0) {
- msg.online(prefix_commands, "Skip night results:");
- msg("online", text.new(string.concat("§e - §rYes: §e", string.number(skip_night_yes))));
- msg("online", text.new(string.concat("§e - §rNo: §e", string.number(skip_night_no))));
- msg("online", text.new(string.concat("§e - §rI don´t care: §e", string.number(skip_night_no_care))));
- if(skip_night_yes > skip_night_no) {
- world = world.getOverWorld();
- world.setTime(world, 0);
- }
- set.clear(skip_night_set);
- last_skip_night = time.getMillis();
- iter = iterator(skip_night_yes_list);
- while(hasNext(iter)) {
- p = player.get(next(iter));
- if(p != null) {
- player.resetSleep(p);
- }
- }
- sgoto(8400, "reset_skip_night");
- goto("wait");
- }
- sgoto(20, "skip_night_loop");
- goto("wait");
- @reset_skip_night
- skip_night_started = false;
- goto("wait");
- @skills
- //skills [player]
- if(size == 0) {
- skill.showAll(player, player);
- goto("wait");
- }
- if(!perm.has("skills.other", player)) {
- perm.no("skills.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_tips, "This player has never been online.");
- goto("wait");
- }
- from_p_id = player.getId(p_uuid);
- skill.showAll(from_p_id, player);
- goto("wait");
- @infopoint1
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eSurvival", "§aEnjoy classic survival extended by our plugin.");
- goto("wait");
- @infopoint2
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eAdventure", "§aSearching for a new challenge? Get teleported thousands of blocks away in the wildness with no inventory and find your way back to spawn.");
- goto("wait");
- @infopoint3
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§ePlots", "§aClaim land and protect your buildings against other players. Use /plot to create and manage your plots.");
- goto("wait");
- @infopoint4
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eClans", "§aAs a well-known player on our server you can create your own community. By now as a clan you can only create cities.");
- goto("wait");
- @infopoint5
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eCities", "§aAs a plot owner you can raise your plots to big cities. Create sub-plots and sell them to other players.");
- goto("wait");
- @infopoint6
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eShops", "§aUse our admin-shop to trade, or create an own shop with /shop. We might do a YT-tutorial on this.");
- goto("wait");
- @infopoint7
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eMinigames", "§aWe offer a range of different single- and multiplayer games.");
- goto("wait");
- @infopoint8
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eQuests", "§aYou are nice and helpful? There are lots of tasks to do in the villages.");
- goto("wait");
- @infopoint9
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eRanking", "§aWanna rise in rank and be the best player in every branch? Look at our ranks.");
- goto("wait");
- @infopoint10
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eRules", "§aWe have no rules, except to be respectful. Look at our jokes instead.");
- goto("wait");
- @infopoint11
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eNote", "§aEverything is self-coded. Worldedit is the only external mod we use.");
- goto("wait");
- @infopoint12
- msg.string(player, string.getSpacer());
- msg.prefix(player, "§eNote", "§aBe Creative in our creative world.");
- goto("wait");
- @party
- if(size == 0) {
- @partyhelp
- msg.prefix(player, prefix_party, "/party ...");
- msg.string(player, "§5 - invite <player> §rInvite a player");
- msg.string(player, "§5 - invite friends §rInvites all online friends");
- msg.string(player, "§5 - accept <player> §rAccept an invitation");
- msg.string(player, "§5 - deny <player> §rDeny an invitation");
- msg.string(player, "§5 - kick <player> §rKick a player");
- msg.string(player, "§5 - leave §rLeave the party");
- msg.string(player, "§5 - promote <player> §rPromote a player");
- msg.string(player, "§5 - demote <player> §rDemote a player");
- msg.string(player, "§5 - disband §rDisband a party");
- msg.string(player, "§5 - list §rParty information");
- msg.string(player, "§5 - <message> §rSends a party message");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "list") {
- if(size != 1) {
- msg.prefix(player, prefix_party, "§5/party list");
- } else {
- if(!player.isInParty(player)) {
- msg.prefix(player, prefix_party, "You are not in a party.");
- goto("wait");
- }
- list = party.getList(player.getPartyId(player));
- width = 1;
- if(list.getSize(list) > 9) {
- width = 2;
- }
- table = table.new("§5", width, 13, 7);
- msg.string(player, table.getStart(table));
- msg.string(player, table.get(table, "§d#", "§d§lName", "§d§lRole"));
- msg.string(player, table.getMiddle(table));
- iter = iterator(list);
- c = 0;
- while(hasNext(iter)) {
- c++;
- p = player.get(next(iter));
- msg.string(player, table.get(table, string.number(c), player.getName(p), player.getPartyRank(p)));
- }
- msg.string(player, table.getEnd(table));
- }
- goto("wait");
- }
- if(arg0 == "leave") {
- if(size != 1) {
- msg.prefix(player, prefix_party, "§5/party leave");
- } else {
- if(!player.isInParty(player)) {
- msg.prefix(player, prefix_party, "You are not in a party.");
- goto("wait");
- }
- party.kickPlayer(player, "leave");
- }
- goto("wait");
- }
- if(arg0 == "disband") {
- if(size != 1) {
- msg.prefix(player, prefix_party, "§5/party disband");
- } else {
- if(!player.isInParty(player)) {
- msg.prefix(player, prefix_party, "You are not in a party.");
- goto("wait");
- }
- if(!player.isPartyLeader(player)) {
- msg.prefix(player, prefix_party, "You are not the party leader.");
- goto("wait");
- }
- party.delete(player.getPartyId(player));
- }
- goto("wait");
- }
- if(arg0 == "kick") {
- if(size != 2) {
- msg.prefix(player, prefix_party, "§5/party kick <player>");
- } else {
- if(!player.isInParty(player)) {
- msg.prefix(player, prefix_party, "You are not in a party.");
- goto("wait");
- }
- if(!player.isPartyLeaderOrMod(player)) {
- msg.prefix(player, prefix_party, "You are not leader or moderator of the party.");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- if(!checkIfEverOnline(pname)) {
- msg.prefix(player, prefix_party, "This player has never been online.");
- goto("wait");
- }
- p = read.player(pname);
- if(p == null) {
- msg.prefix(player, prefix_party, "This player is not online.");
- goto("wait");
- }
- if(player == p) {
- msg.prefix(player, prefix_party, "You can´t apply that to yourself.");
- goto("wait");
- }
- if(!party.same(p, player)) {
- msg.prefix(player, prefix_party, "This player is not in your party.");
- goto("wait");
- }
- ownrank = player.getPartyRank(player);
- if(ownrank == "Moderator") {
- if(player.isPartyLeaderOrMod(p)) {
- msg.prefix(player, prefix_party, "You can´t kick this player.");
- goto("wait");
- }
- }
- party.kickPlayer(p, "kick");
- }
- goto("wait");
- }
- if(arg0 == "promote" || arg0 == "demote") {
- if(size != 2) {
- msg.prefix(player, prefix_party, string.concat("§5/party ", arg0, " <player>"));
- } else {
- pname = list.getIndex(args, 1);
- if(!player.isInParty(player)) {
- msg.prefix(player, prefix_party, "You are not in a party.");
- goto("wait");
- }
- if(!player.isPartyLeader(player)) {
- msg.prefix(player, prefix_party, "You are not the party leader.");
- goto("wait");
- }
- if(!checkIfEverOnline(pname)) {
- msg.prefix(player, prefix_party, "This player has never been online.");
- goto("wait");
- }
- p = read.player(pname);
- if(p == null) {
- msg.prefix(player, prefix_party, "This player is not online.");
- goto("wait");
- }
- if(player == p) {
- msg.prefix(player, prefix_party, "You can´t apply that to yourself.");
- goto("wait");
- }
- if(!party.same(p, player)) {
- msg.prefix(player, prefix_party, "This player is not in your party.");
- goto("wait");
- }
- partyid = player.getPartyId(player);
- rank = player.getPartyRank(p);
- if(arg0 == "promote") {
- if(rank == "Player") {
- player.setPartyRank(p, "Moderator");
- party.sendMessage(partyid, string.concat("§r", pname, " is now Moderator."));
- } elseif(rank == "Moderator") {
- player.setPartyRank(p, "Leader");
- player.setPartyRank(player, "Moderator"); //Ex-Leader degradieren
- party.sendMessage(partyid, string.concat("§r", pname, " is now Leader."));
- }
- } elseif(arg0 == "demote") {
- if(rank == "Moderator") {
- player.setPartyRank(p, "Player");
- party.sendMessage(partyid, string.concat("§r", pname, " is no longer Moderator."));
- } else {
- msg.prefix(player, prefix_party, "This player cannot be demoted.");
- }
- }
- }
- goto("wait");
- }
- if(arg0 == "invite") {
- if(size != 2) {
- msg.prefix(player, prefix_party, "§5/party invite <player>");
- } else {
- arg1 = list.getIndex(args, 1);
- if(arg1 == "friends") {
- player_id = player.getId(player);
- friends = friend.getListOnline(player_id);
- iter = iterator(friends);
- while(hasNext(iter)) {
- f_name = next(iter);
- f = read.player(f_name);
- party.invitePlayer(player, f);
- }
- msg.prefix(player, prefix_party, "All online friends invited.");
- goto("wait");
- }
- p_name = arg1;
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_party, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- temp = party.invitePlayer(player, p);
- if(temp == "inviteeNotOnline") {
- msg.prefix(player, prefix_party, "This player is not online.");
- } elseif(temp == "inviterEqualsInvitee") {
- msg.prefix(player, prefix_party, "You can´t apply that to yourself.");
- } elseif(temp == "inviterNotPermitted") {
- msg.prefix(player, prefix_party, "You are not leader or moderator of the party.");
- } elseif(temp == "inviteeAlreadyInParty") {
- msg.prefix(player, prefix_party, "This player is already in your party.");
- } elseif(temp == "inviteeAlreadyInvited") {
- msg.prefix(player, prefix_party, "This player already has an invitation from you.");
- } else {
- msg.prefix(player, prefix_party, "Invitation sent.");
- }
- }
- goto("wait");
- }
- if(arg0 == "accept") {
- if(size != 2) {
- msg.prefix(player, prefix_party, "§5/party accept <player>");
- } else {
- if(player.isInParty(player)) {
- msg.prefix(player, prefix_party, "You are already in a party.");
- goto("wait");
- }
- pname = list.getIndex(args, 1);
- if(!checkIfEverOnline(pname)) {
- msg.prefix(player, prefix_party, "This player has never been online.");
- goto("wait");
- }
- p = read.player(pname);
- if(p == null) {
- msg.prefix(player, prefix_party, "This player is no longer online.");
- goto("wait");
- }
- player_uuid = player.getUuid(player);
- p_uuid = player.getUuid(p);
- list = map.get(party_invitations, player_uuid);
- if(list == null || !list.contains(list, p_uuid)) {
- msg.prefix(player, prefix_party, "This invitation is invalid.");
- goto("wait");
- }
- if(player.isInParty(p)) { //wenn einlader bereits in party
- partyid = player.getPartyId(p);
- if(map.get(party_invite_ids, p_uuid) == partyid) { //wenn partyid noch die gleiche ist wie bei einladung
- party.addPlayer(partyid, player);
- player.setPartyRank(player, "Player");
- } else {
- msg.prefix(player, prefix_party, "This player is already in another party.");
- goto("wait");
- }
- } else {
- partyid = map.get(party_invite_ids, p_uuid);
- party.setList(partyid, list.new());
- party.addPlayer(partyid, p);
- party.addPlayer(partyid, player);
- player.setPartyRank(p, "Leader");
- player.setPartyRank(player, "Player");
- msg.prefix(p, prefix_party, "The party was created.");
- }
- list.clear(list); //Einladungs-Liste von oben
- party.sendMessage(partyid, string.concat("§r", player.getName(player), " joined the party."));
- }
- goto("wait");
- }
- if(arg0 == "deny") {
- if(size != 2) {
- msg.prefix(player, prefix_party, "§5/party deny <player>");
- } else {
- player_uuid = player.getUuid(player);
- list = map.get(party_invitations, player_uuid);
- if(list != null) {
- pname = list.getIndex(args, 1);
- p = read.player(pname);
- if(p == null) {
- msg.prefix(player, prefix_party, "This player is no longer online.");
- goto("wait");
- }
- p_uuid = player.getUuid(p);
- if(list == null || !list.contains(list, p_uuid)) {
- msg.prefix(player, prefix_party, "This invitation is invalid.");
- goto("wait");
- }
- index = list.getIndexOf(list, p_uuid);
- list.remove(list, p_uuid);
- keytimes = map.get(delkeytimes, player_uuid);
- list.removeIndex(keytimes, index);
- p = read.player(pname);
- if(p != null) {
- msg.prefix(p, prefix_party, string.concat("§r", player.getName(player), " has denied your invitation."));
- }
- msg.prefix(player, prefix_party, string.concat("Invitation from ", pname, " denied."));
- }
- }
- goto("wait");
- }
- if(player.isInParty(player)) {
- message = string.concat(player.getName(player), " §1| §r", string.concatList(args, " ", 0, list.getSize(args) - 1));
- party.sendMessage(player.getPartyId(player), message);
- goto("wait");
- }
- goto("partyhelp");
- @setmessage
- if(size == 0) {
- @setmessagehelp
- msg.prefix(player, prefix_commands, "/setmessage ...");
- msg.string(player, "§e- join <message> §rSets your join message");
- msg.string(player, "§e- leave <message> §rSets your leave message");
- msg.string(player, "§e- death <message> §rSets your death message");
- msg.string(player, "§e- info §rShows you set messages");
- if(perm.has("setmessage.delete", player)) {
- msg.string(player, "§e- delete <player> §rDeletes a players messages");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "info") {
- if(player.usesCustomMessage(player)) {
- msg.prefix(player, prefix_commands, "Custom messages are activated.");
- } else {
- msg.prefix(player, prefix_commands, "Custom messages are deactivated. /settings");
- }
- fullname = player.getFullName(player);
- message = player.getJoinMessage(player);
- if(message == null) {
- msg.prefix(player, prefix_commands, "No join message set.");
- } else {
- msg.prefix(player, prefix_commands, string.concat("§a§l> §r", fullname, " §9", message));
- }
- message = player.getLeaveMessage(player);
- if(message == null) {
- msg.prefix(player, prefix_commands, "No leave message set.");
- } else {
- msg.prefix(player, prefix_commands, string.concat("§c§l> §r", fullname, " §9", message));
- }
- message = player.getDeathMessage(player);
- if(message == null) {
- msg.prefix(player, prefix_commands, "No death message set.");
- } else {
- msg.prefix(player, prefix_commands, string.concat("§0§lx §r", fullname, " §9", message));
- }
- goto("wait");
- }
- if(arg0 == "join") {
- if(size < 2) {
- goto("setmessagehelp");
- }
- message = string.concatList(args, " ", 1, size - 1);
- player.setJoinMessage(player, message);
- msg.prefix(player, prefix_commands, "Join message set.");
- goto("wait");
- }
- if(arg0 == "leave") {
- if(size < 2) {
- goto("setmessagehelp");
- }
- message = string.concatList(args, " ", 1, size - 1);
- player.setLeaveMessage(player, message);
- msg.prefix(player, prefix_commands, "Leave message set.");
- goto("wait");
- }
- if(arg0 == "death") {
- if(size < 2) {
- goto("setmessagehelp");
- }
- message = string.concatList(args, " ", 1, size - 1);
- player.setDeathMessage(player, message);
- msg.prefix(player, prefix_commands, "Death message set.");
- goto("wait");
- }
- if(arg0 == "delete") {
- if(size == 1) {
- p_uuid = player.getUuid(player);
- } elseif(size == 2) {
- if(!perm.has("setmessage.delete", player)) {
- perm.no("setmessage.delete", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- } else {
- goto("setmessagehelp");
- }
- p_id = player.getId(p_uuid);
- player.setJoinMessage(p_id, "null");
- player.setLeaveMessage(p_id, "null");
- msg.prefix(player, prefix_commands, "Messages deleted.");
- goto("wait");
- }
- goto("wait");
- @lag
- msg.prefix(player, prefix_commands, "Lag test is performed. Please wait...");
- a = array.new(2);
- a[0] = player.getUuid(player);
- a[1] = time.getMillis();
- list.add(lag_list, a);
- sgoto(100, "do_lag_test");
- goto("wait");
- @do_lag_test
- t = time.getMillis();
- a = list.getIndex(lag_list, 0);
- list.removeIndex(lag_list, 0);
- p_uuid = a[0];
- t_old = a[1];
- t = math.roundComma((t - t_old) / 50 / 5, 2); //ms -> ticks
- t = 40 - t;
- p = player.get(p_uuid);
- if(p != null) {
- msg.prefix(p, prefix_commands, "Expected: 20 ticks/sec");
- msg.prefix(p, prefix_commands, string.concat("Measured: ", string.number(t), " ticks/sec"));
- }
- goto("wait");
- @live
- boolean = !player.isLive(player);
- player.setLive(player, boolean);
- player.setHeadName(player);
- player.setTabName(player);
- msg.prefix(player, prefix_commands, "Live toggled.");
- goto("wait");
- @lightning
- block = player.getTargetBlock(player, 50);
- if(block == null) {
- msg.prefix(player, prefix_commands, "No block in sight.");
- goto("wait");
- }
- entity.spawn(block.getLocation(block), "LIGHTNING");
- goto("wait");
- @ride
- entity = player.getTargetEntity(player, 5);
- if(entity == null) {
- msg.prefix(player, prefix_commands, "No entity found.");
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- if(player.hasMinigame(player) || (perm.has("ride", player) && !perm.has("isTeam", player))) {
- msg.prefix(player, prefix_commands, "You can´t use this now.");
- goto("wait");
- }
- }
- entity.mount(player, entity);
- goto("wait");
- @vanish
- //vanish [on/off] [player]
- if(size == 0) {
- if(set.contains(vanish_set, player.getUuid(player))) {
- bool = "off";
- } else {
- bool = "on";
- }
- }
- if(size >= 1) {
- bool = list.getIndex(args, 0);
- }
- if(size > 1) {
- p_name = list.getIndex(args, 1);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- } else {
- p = player;
- }
- p_name = player.getName(p);
- player_name = player.getName(player);
- if(bool == "on") {
- if(p != player) {
- msg.prefix(player, prefix_commands, string.concat(p_name, " has been vanished."));
- msg.prefix(p, prefix_commands, string.concat("You have been vanished by ", player_name, "."));
- } else {
- msg.prefix(p, prefix_commands, "You are vanished.");
- }
- set.add(vanish_set, player.getUuid(p));
- player.hideOnline(p);
- } elseif(bool == "off") {
- if(p != player) {
- msg.prefix(player, prefix_commands, string.concat(p_name, " is no longer vanished."));
- msg.prefix(p, prefix_commands, string.concat("You are no longer vanished caused by ", player_name, "."));
- } else {
- msg.prefix(p, prefix_commands, "You are no longer vanished.");
- }
- set.remove(vanish_set, player.getUuid(p));
- player.showOnline(p);
- } else {
- msg.prefix(player, prefix_commands, "/vanish [on/off] [player]");
- }
- goto("wait");
- @user
- if(size == 0) {
- @user_help
- msg.prefix(sender, prefix_commands, "/user ...");
- if(perm.has("user.other", player)) {
- msg.string(sender, "§6 - info [player] §rReturns info about a user");
- } else {
- msg.string(sender, "§6 - info §rReturns info about you");
- }
- if(perm.has("user.money", player)) {
- msg.string(sender, "§6 - addmoney <player> <money> §rAdds money to a player");
- msg.string(sender, "§6 - setmoney <player> <money> §rSets the money of a player");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "info") {
- if(size < 2) {
- if(!isPlayer(sender)) {
- msg.prefix(sender, prefix_commands, "/user info <player>");
- goto("wait");
- }
- p_name = player.getName(player);
- p_uuid = player.getUuid(p_name);
- } else {
- if(!perm.has("user.other", sender)) {
- perm.no("user.other", sender);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_name = player.getName(p_uuid);
- }
- p = read.player(p_name);
- p_id = player.getId(p_uuid);
- if(p == null) {
- p_or_id = p_id;
- } else {
- p_or_id = p;
- }
- table = table.new("§8", 7, 24);
- msg.string(sender, table.getStart(table));
- msg.string(sender, table.get(table, "Player", p_name));
- msg.string(sender, table.getMiddle(table));
- msg.string(sender, table.get(table, "Playtime", string.number(math.roundDown(player.getTotalPlaytime(p_or_id) / 60))));
- msg.string(sender, table.get(table, "Joins", string.number(player.getJoins(p_or_id))));
- msg.string(sender, table.get(table, "First Join", time.getDateString(player.getFirstJoin(p_or_id))));
- msg.string(sender, table.get(table, "Last Join", time.getDateString(player.getLastJoin(p_or_id))));
- if(perm.has("user.other", sender)) {
- msg.string(sender, table.get(table, "UUID", p_uuid));
- msg.string(sender, table.get(table, "ID", string.number(p_id)));
- if(player.isLive(sender)) {
- msg.string(sender, table.get(table, "IP", "§7§oHidden"));
- } else {
- msg.string(sender, table.get(table, "IP", player.getLoggedIp(p_or_id)));
- }
- snuvis = money.get(p_or_id);
- msg.string(sender, table.get(table, "Money", string.concat(money.getString(snuvis), " (",string.number(snuvis), ")")));
- }
- msg.string(sender, table.get(table, "Rank", getRank(p_or_id)));
- msg.string(sender, table.get(table, "PvP", hasPvpOn(p_or_id)));
- msg.string(sender, table.get(table, "Quests", string.number(quest.getCounter(p_or_id))));
- msg.string(sender, table.get(table, "Adventures", string.number(player.getAdventureAmounts(p_or_id))));
- msg.string(sender, table.getEnd(table));
- goto("wait");
- }
- if(arg0 == "addmoney") {
- if(!perm.has("user.money", sender)) {
- perm.no("user.money", sender);
- goto("wait");
- }
- if(size != 3) {
- msg.prefix(sender, prefix_commands, "/user addmoney <player> <money>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- money = list.getIndex(args, 2);
- if(!isDouble(money)) {
- msg.prefix(sender, prefix_commands, "Number expected.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- money.add(p_id, money);
- msg.prefix(sender, prefix_commands, string.concat("Added ", money.getString(money), " to ", player.getName(p_uuid), "."));
- goto("wait");
- }
- if(arg0 == "setmoney") {
- if(!perm.has("user.money", sender)) {
- perm.no("user.money", sender);
- goto("wait");
- }
- if(size != 3) {
- msg.prefix(sender, prefix_commands, "/user setmoney <player> <money>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- money = list.getIndex(args, 2);
- if(!isDouble(money)) {
- msg.prefix(sender, prefix_commands, "Number expected.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- setMoney(p_id, money);
- msg.prefix(sender, prefix_commands, string.concat("Set ", string.number(money), " snuvis for ", player.getName(p_uuid), "."));
- goto("wait");
- }
- goto("user_help");
- @quest
- if(size == 0) {
- @quest_syntax
- msg.prefix(player, prefix_quest, "/quest ...");
- msg.string(player, "§5 - see §rSee all active quests");
- msg.string(player, "§5 - term <player> §rTerminates a quest of a player");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "see") {
- if(size != 1) {
- msg.prefix(player, prefix_quest, "/quest see");
- goto("wait");
- }
- msg.prefix(player, prefix_quest, "Active quests:");
- quest_map = quest.getIds();
- iter = map.iterator(quest_map);
- while(hasNext(iter)) {
- element = next(iter);
- key = map.getKey(element);
- value = map.getValue(element);
- script = script.getFromId(value);
- if(script == null) {
- continue;
- }
- q_name = script.getVar(script, "quest_name");
- stage = script.getVar(script, "stage");
- all_stages = script.getVar(script, "all_stages");
- msg.string(player, string.concat( "§d- §r", player.getName(key), " ", string.number(value), " ", q_name, " (", string.number(stage), "/", string.number(all_stages), ")"));
- }
- goto("wait");
- }
- if(arg0 == "term") {
- if(size != 2) {
- msg.prefix(player, prefix_quest, "/quest term <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_quest, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_quest, "This player is not online.");
- goto("wait");
- }
- script_id = quest.getFromPlayer(p);
- if(script_id == null) {
- msg.prefix(player, prefix_quest, "This player has no quest.");
- goto("wait");
- }
- script = script.getFromId(script_id);
- if(script == null) {
- quest.removePlayer(p);
- msg.prefix(player, prefix_quest, "Corrupt quest terminated.");
- goto("wait");
- }
- setScriptVar("player", p);
- modTimer.scriptCallEvent("quest_term", script);
- quest.term(script, player);
- msg.prefix(player, prefix_quest, "Quest terminated.");
- goto("wait");
- }
- goto("quest_syntax");
- @friend
- if(size == 0) {
- @friend_syntax
- msg.prefix(player, prefix_friends, "/friend ...");
- msg.string(player, "§5 - add <player> §rAdds a friend");
- msg.string(player, "§5 - remove <player> §rRemoves a friend");
- msg.string(player, "§5 - list §rLists all your friends");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "add") {
- if(size != 2) {
- msg.prefix(player, prefix_friends, "/friend add <player>");
- goto("wait");
- }
- friend_name = list.getIndex(args, 1);
- player_name = player.getName(player);
- if(player_name == friend_name) {
- msg.prefix(player, prefix_friends, "You can´t invite yourself.");
- goto("wait");
- }
- player_id = player.getId(player);
- if(!checkIfEverOnline(friend_name)) {
- msg.prefix(player, prefix_friends, "This player has never been online.");
- goto("wait");
- }
- friend_id = player.getId(player.getUuid(friend_name));
- if(friend.check(player_id, friend_id)) {
- msg.prefix(player, prefix_friends, "This player is already your friend.");
- goto("wait");
- }
- if(map.contains(friend_requests, friend_id)) {
- if(map.get(friend_requests, friend_id) == player_id) {
- friend.add(player_id, friend_id);
- map.remove(friend_requests, friend_id);
- msg.prefix(player, prefix_friends, string.concat("§7", friend_name, "§r is your friend now."));
- msg.send(player, friend_name, prefix_friends, string.concat("§7", player_name, "§r is your friend now."), true);
- goto("wait");
- }
- }
- map.add(friend_requests, player_id, friend_id); //Einlader, Eingeladener
- friend = read.player(friend_name);
- msg.prefix(player, prefix_friends, string.concat("You sent an invitation to §7", friend_name, "§r."));
- if(friend != null) {
- msg(friend, text.merge(text.new(string.concat("§7", player_name, "§r wants to be your friend." )), string.getClickText("§r[§aAccept§r]", string.concat("/friend add ", player_name))));
- }
- goto("wait");
- }
- if(arg0 == "remove") {
- if(size != 2) {
- msg.prefix(player, prefix_friends, "/friend remove <player>");
- goto("wait");
- }
- friend_name = list.getIndex(args, 1);
- player_id = player.getId(player);
- if(!checkIfEverOnline(friend_name)) {
- msg.prefix(player, prefix_friends, "This player has never been online.");
- goto("wait");
- }
- friend_id = player.getId(player.getUuid(friend_name));
- if(!friend.check(player_id, friend_id)) {
- msg.prefix(player, prefix_friends, "This player isn´t your friend.");
- goto("wait");
- }
- friend.delete(player_id, friend_id);
- msg.prefix(player, prefix_friends, string.concat("§7", friend_name, "§r is no longer your friend."));
- msg.send(player, friend_name, prefix_friends, string.concat("§7", player.getName(player), "§r is no longer your friend."), true);
- goto("wait");
- }
- if(arg0 == "list") {
- if(size != 1) {
- msg.prefix(player, prefix_friends, "/friend list");
- goto("wait");
- }
- player_id = player.getId(player);
- friendlist = friend.getList(player_id);
- listsize = list.getSize(friendlist);
- if(listsize == 0) {
- msg.prefix(player, prefix_friends, "You have no friends yet.");
- goto("wait");
- }
- msg.string(player, "§5Friends:");
- for(i = 0; i <= listsize - 1; i++) {
- friend_name = player.getNameFromId(list.getIndex(friendlist, i));
- if(friend_name != null) {
- msg.string(player, string.concat("- ", friend_name));
- }
- }
- goto("wait");
- }
- goto("friend_syntax");
- @var
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/var <id> <varname>");
- goto("wait");
- }
- script_id = list.getIndex(args, 0);
- script = script.getFromId(script_id);
- if(script == null) {
- msg.prefix(player, "§dScript", "Invalid id");
- goto("wait");
- }
- var_name = list.getIndex(args, 1);
- var = script.getVar(script, var_name);
- msg.prefix(player, "§dScript", string.concat(var_name, " = ", var));
- goto("wait");
- @vote
- msg.string(player, string.getSpacer());
- if(size == 0) {
- link1 = "https://minecraft-server.eu/vote/index/2227F";
- link2 = "https://minecraft-server-list.com/server/478200/vote/";
- msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), string.getLinkText("§r<§dminecraft-server.eu§r>", link1)));
- msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), string.getLinkText("§r<§dminecraft-server-list.com§r>", link2)));
- p_id = player.getId(player);
- } else {
- if(!perm.has("user.other", player)) {
- perm.no("user.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_id = player.getId(player.getUuid(p_name));
- }
- msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), text.new(string.concat("Votepoints: §6", string.number(player.getVotePoints(p_id))))));
- msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), text.new(string.concat("Votestreak: §6", string.number(player.getVoteStreak(p_id))))));
- last_vote_time = player.getLastVoteTime(p_id);
- if(last_vote_time == 0) {
- last_vote_time = "-";
- } else {
- last_vote_time = time.getString(last_vote_time);
- }
- msg(player, text.merge(text.new(string.getPrefix(prefix_vote)), text.new(" "), text.new(string.concat("Last vote: §6", last_vote_time))));
- goto("wait");
- @voteshop
- inv.open(vote_inv, player, string.concat("Your vote points: §6", string.number(player.getVotePoints(player))));
- goto("wait");
- @setservermessage
- if(size < 1) {
- msg.prefix(player, prefix_commands, "/setservermessage <text>");
- goto("wait");
- }
- message = string.concatList(args, " ", 0, size - 1);
- message = string.replace(message, "&", "§");
- setMOTD(message);
- msg.prefix(player, prefix_commands, "Server-Message gesetzt");
- goto("wait");
- @error
- if(size < 1) {
- msg.prefix(player, "§cError", "/error ...");
- msg.string(player, "§c - list §rLists all errors");
- msg.string(player, "§c - clear §rDeletes all errors");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "list") {
- error_size = error.getSize();
- if(error_size == 0) {
- msg.prefix(player, "§cError", "No errors existing.");
- goto("wait");
- }
- for(i = 0; i < error_size; i++) {
- msg.string(player, error.getIndex(i));
- }
- goto("wait");
- }
- if(arg0 == "clear") {
- error.clear();
- msg.prefix(player, "§cError", "All errors deleted.");
- goto("wait");
- }
- goto("wait");
- @hat
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_commands, "You have to hold an item in hand.");
- goto("wait");
- }
- head_slot = slot.getHead();
- head_item = living.getEquip(player, head_slot);
- living.setEquip(player, head_slot, item);
- living.setEquip(player, slot.getHand(), head_item);
- goto("wait");
- @news
- if(size < 1) {
- msg.prefix(player, prefix_commands, "/news <text>");
- goto("wait");
- }
- message = string.concatList(args, " ", 0, size - 1);
- online_list = players.toList();
- iter = iterator(online_list);
- while(hasNext(iter)) {
- p = next(iter);
- title.send(p, text.new("§cNews"), text.new(string.concat("by ", player.getName(player))));
- msg.prefix(p, "§4News", string.concat("§c", message));
- }
- goto("wait");
- @skipnight
- player_loc = entity.getLocation(player);
- world_name = world.getName(loc.getWorld(player_loc));
- if(!world.isSurvName(world_name)) {
- msg.prefix(player, prefix_commands, "Not possible in this world.");
- goto("wait");
- }
- world_time = world.getTime(world.getOverWorld());
- while(world_time >= 24000) {
- world_time -= 24000;
- }
- if(world_time <= 12500) {
- msg.prefix(player, prefix_commands, "Only during night possible.");
- goto("wait");
- }
- player_uuid = player.getUuid(player);
- if(set.contains(skip_night_set, player_uuid)) {
- msg.prefix(player, prefix_commands, "Already voted.");
- goto("wait");
- }
- if(time.getMillis() - last_skip_night < 420000) {
- msg.prefix(player, prefix_commands, "Only once per night possible.");
- goto("wait");
- }
- inv.open(skip_night_inv, player);
- goto("wait");
- @spawn
- if(size == 0) {
- p = player;
- }
- if(size == 1) {
- if(!perm.has("tp.other", player)) {
- perm.no("tp.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- }
- if(player.hasMinigame(p)) {
- if(size == 1) {
- msg.prefix(player, prefix_commands, "This player can´t be teleported now.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- if(player.teleport(p, world.getServerSpawn(), true)) {
- if(player == p) {
- msg.prefix(p, prefix_commands, "You have been teleported to the spawn.");
- } else {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " was teleported to the spawn."));
- }
- }
- goto("wait");
- @rank
- msg.string(player, string.getSpacer());
- rank = getRank(player);
- msg.string(player, string.concat("§6Current rank: §r[", rank, "§r]"));
- msg.string(player, "Choose a rank:");
- rank.showAll(player);
- goto("wait");
- @setrank
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/setrank <player> <rank>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- p_name = player.getName(p);
- rank = string.concatList(args, " ", 1, size - 1);
- if(!perm.has("setrank.other", player)) {
- if(player.getName(player) != p_name) {
- perm.no("setrank.other", player);
- goto("wait");
- }
- colored = string.startsWith(rank, "&", 0);
- if(colored) {
- rank = string.subString(rank, 1, string.length(rank));
- }
- a = rank.getRankArray();
- a_size = array.getSize(a);
- for(i = 0; i < a_size; i++) {
- tech_name = a[i, 0];
- if(rank == a[i, 1] && !rank.checkCriteria(p, tech_name)) {
- perm.no(tech_name, p);
- goto("wait");
- }
- }
- if(colored) {
- rank = string.concat("&", rank);
- }
- }
- if(string.length(rank) >= 30) {
- msg.prefix(player, prefix_commands, "Only 30 letters allowed.");
- goto("wait");
- }
- rank = string.replace(rank, "&", "§");
- setRank(p, rank);
- player.setTabName(p);
- msg.prefix(player, prefix_commands, string.concat("Rank for ", p_name, " changed to [", rank, "§r]."));
- goto("wait");
- @nowb
- if(player.isAfk(player)) {
- player.setAfk(player, false);
- msg.prefix(player, prefix_commands, "marvinius whispers to you: Welcome back ;-)");
- player.setTabName(player);
- } else {
- msg.prefix(player, prefix_commands, "You are not afk.");
- }
- goto("wait");
- @afk
- if(player.hasMinigame(player)) {
- msg.prefix(player, prefix_commands, "No afk while in a minigame :P");
- goto("wait");
- }
- nickname = player.getNickname(player);
- if(player.isAfk(player)) {
- msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is back."));
- player.setAfk(player, false);
- } else {
- msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is now afk."));
- player.setAfk(player, true);
- if(!afk_loop_active) {
- afk_loop_active = true;
- sgoto(30, "afk_loop");
- }
- }
- player.setTabName(player);
- goto("wait");
- @silentjoin
- silentjoin = player.getSilentJoin(player);
- if(silentjoin) {
- player.setSilentJoin(player, false);
- msg.prefix(player, prefix_commands, "Silentjoin deactivated.");
- } else {
- player.setSilentJoin(player, true);
- msg.prefix(player, prefix_commands, "Silentjoin activated.");
- }
- goto("wait");
- @joinme
- list = players.toList();
- iter = iterator(list);
- while(hasNext(iter)) {
- invitee = next(iter);
- if(player == invitee) {
- continue;
- }
- party.invitePlayer(player, invitee);
- }
- msg.prefix(player, prefix_party, "Party invitation sent to all online players.");
- goto("wait");
- @jumpto
- block = player.getTargetBlock(player, 100);
- if(block == null) {
- msg.prefix(player, prefix_commands, "No block in sight.");
- goto("wait");
- }
- loc = block.getLocation(block);
- y = loc.getY(loc);
- while(y < 319 && !block.isAir(block.get(loc))) {
- loc.setY(loc, y);
- y++;
- }
- player.teleport(player, loc.mod(loc, 0, 1, 0), true);
- goto("wait");
- @jailloop
- size = list.getSize(jailed_list);
- for(i = 0; i < size; i++) {
- p_name = player.getName(list.getIndex(jailed_list, i));
- showJail(p_name);
- }
- if(size > 0) {
- jail_loop_active = true;
- sgoto(5, "jailloop");
- } else {
- jail_loop_active = false;
- }
- goto("wait");
- @sb_title_loop
- list = players.toList();
- iter = iterator(list);
- if(title_a == null) {
- while(hasNext(iter)) {
- p = next(iter);
- sb.setTitle(p, text.new("§c§k# §6minecraft§c.§6marvin§c.§6lu §c§k#"));
- title_a = true;
- }
- } else {
- while(hasNext(iter)) {
- p = next(iter);
- sb.setTitle(p, text.new(string.concat(icon.getHeart(), "§6Mundus §cCrassus§f", icon.getHeart())));
- title_a = null;
- }
- }
- sgoto(200, "sb_title_loop");
- goto("wait");
- @coordsloop
- list = players.toList();
- size = list.getSize(list);
- for(i = 0; i < size; i++) {
- p = list.getIndex(list, i);
- if(player.getShowcoords(p)) {
- p_loc = entity.getLocation(p);
- sb.add(p, 3, string.concat("§6X§r ", string.number(loc.getBlockX(p_loc)), " §6Y§r ", string.number(loc.getBlockY(p_loc)), " §6Z§r ", string.number(loc.getBlockZ(p_loc))));
- sb.add(p, 2, string.concat(icon.getCompass(), " ", getDirectionExact(loc.getYaw(p_loc))));
- }
- }
- sgoto(15, "coordsloop");
- goto("wait");
- @customitems
- inv = inv.new("222222222222222222222222222222222222222222222222222222", text.new("Customitems"));
- a = item.custom.getAll();
- for(i = 0; i < array.getSize(a); i++) {
- item = item.custom.new(a[i]);
- item.setAmount(item, item.getMaxAmount(item));
- inv.setItem(inv, i, item);
- if(i > 53) {
- msg.dev("More customitems than can be shown in one inv");
- break;
- }
- }
- inv.open(inv, player);
- goto("wait");
- @afk_loop
- if(!afk_loop_active) {
- goto("wait");
- }
- afk_map = getScriptVar("afk_map");
- iter = map.iterator(afk_map);
- while(hasNext(iter)) {
- element = next(iter);
- yaw = map.getValue(element);
- player = player.get(map.getKey(element));
- if(player != null) {
- if(yaw != loc.getYaw(entity.getLocation(player))) {
- nickname = player.getNickname(player);
- msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is back."));
- remove(iter);
- player.setAfk(player, false);
- player.setTabName(player);
- }
- }
- }
- size = map.getSize(afk_map);
- if(size > 0) {
- afk_loop_active = true;
- sgoto(30, "afk_loop");
- } else {
- afk_loop_active = false;
- }
- goto("wait");
- @minute_loop
- cal = time.new(time.getMillis());
- timer_day = time.getDay(cal);
- if(old_timer_day == null) {
- old_timer_day = timer_day;
- }
- if(timer_day != old_timer_day) {
- old_timer_day = timer_day;
- //Tageswechsel
- decreaseHomeBoost();
- }
- sgoto(1200, "minute_loop");
- goto("wait");
- @afk_checker_loop
- online_list = players.toList();
- iter = iterator(online_list);
- while(hasNext(iter)) {
- uuid = next(iter);
- p = player.get(uuid);
- if(player.hasMinigame(p)) {
- continue;
- }
- yaw = loc.getYaw(entity.getLocation(p));
- a = map.get(afk_checker_map, uuid);
- if(a == null) {
- a = array.new(2);
- a[0] = yaw;
- a[1] = 0;
- map.add(afk_checker_map, uuid, a);
- continue;
- }
- last_yaw = a[0];
- counter = a[1];
- if(last_yaw == yaw) {
- counter++;
- } else {
- counter = 0;
- }
- a[0] = yaw;
- a[1] = counter;
- map.add(afk_checker_map, uuid, a);
- if(counter == 5) {
- nickname = player.getNickname(p);
- if(player.isAfk(p)) {
- continue;
- }
- msg.prefix("online", prefix_commands, string.concat(nickname, "§7 is now afk."));
- player.setAfk(p, true);
- player.setTabName(p);
- if(!afk_loop_active) {
- afk_loop_active = true;
- sgoto(30, "afk_loop");
- }
- }
- }
- sgoto(1200, "afk_checker_loop");
- goto("wait");
- @armorstand
- if(size == 0) {
- @armorstand_syntax
- msg.prefix(player, prefix_datatools, "/armorstand ...");
- msg.string(player, "§6 - name <name> §rSets the name");
- msg.string(player, "§6 - visible <true/false> §rSets if is visible");
- msg.string(player, "§6 - arms <true/false> §rSets if has arms");
- msg.string(player, "§6 - small <true/false> §rSets if is small");
- msg.string(player, "§6 - baseplate <true/false> §rSets if has baseplate");
- msg.string(player, "§6 - marker <true/false> §rSets if is marker");
- msg.string(player, "§6 - move <true/false> §rSets if can move");
- msg.string(player, "§6 - tick <true/false> §rSets if can tick");
- msg.string(player, "§6 - setpose <bodypart> <x> <y> <z> §rSets the pose");
- msg.string(player, "§6 - addpose <bodypart> <x> <y> <z> §rSets the pose");
- goto("wait");
- }
- player_loc = entity.getLocation(player);
- player_world = loc.getWorld(player_loc);
- player_world_name = world.getName(player_world);
- if(!perm.has("plot.bypass", player)){
- if(!(world.isSurvName(player_world_name) || world.isCreativeName(player_world_name))){
- msg.action(player, "Wrong world.");
- goto("wait");
- }
- if (!plot.check(player_loc, player, 0, true)){
- msg.action(player, "You do not have permission for that on this plot.");
- goto("wait");
- }
- }
- as = player.getTargetEntity(player, 5);
- if(!entity.isArmorstand(entity)) {
- location = entity.getLocation(player);
- as = entity.get(location, 3, "org.bukkit.entity.ArmorStand");
- if(as == null) {
- msg.action(player, "No armorstand found.");
- goto("wait");
- }
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "name") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand name <name>");
- goto("wait");
- }
- name = string.concatList(args, " ", 1, size - 1);
- name = string.replace(name, "&", "§");
- entity.setName(as, text.new(name), true);
- msg.action(player, string.concat("Armorstand renamed to ", name, "§r."));
- goto("wait");
- }
- if(arg0 == "visible") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand visible <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- living.setInvisible(as, !bool);
- msg.action(player, "Visibility set.");
- goto("wait");
- }
- if(arg0 == "arms") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand arms <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- as.setArms(as, bool);
- msg.action(player, "Arms set.");
- goto("wait");
- }
- if(arg0 == "small") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand small <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- as.setSmall(as, bool);
- msg.action(player, "Small set.");
- goto("wait");
- }
- if(arg0 == "baseplate") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand baseplate <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- as.setBasePlate(as, bool);
- msg.action(player, "Baseplate set.");
- goto("wait");
- }
- if(arg0 == "marker") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand marker <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- as.setMarker(as, bool);
- msg.action(player, "Marker set.");
- goto("wait");
- }
- if(arg0 == "move") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand move <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- as.canMove(as, bool);
- msg.action(player, "Move set.");
- goto("wait");
- }
- if(arg0 == "tick") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/armorstand tick <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- as.canTick(as, bool);
- msg.action(player, "Tick set.");
- goto("wait");
- }
- if(arg0 == "setpose") {
- if(size < 5) {
- msg.prefix(player, prefix_datatools, "/armorstand setpose <bodypart> <x> <y> <z>");
- goto("wait");
- }
- x = list.getIndex(args, 2);
- if(!isDouble(x) || x < -360 || x > 360) {
- msg.action(player, "Number between -360 and 360 expected.");
- goto("wait");
- }
- x *= math.pi() / 180;
- y = list.getIndex(args, 3);
- if(!isDouble(y) || y < -360 || y > 360) {
- msg.action(player, "Number between -360 and 360 expected.");
- goto("wait");
- }
- y *= math.pi() / 180;
- z = list.getIndex(args, 4);
- if(!isDouble(z) || z < -360 || z > 360) {
- player.action(player, "Number between -360 and 360 expected.");
- goto("wait");
- }
- z *= math.pi() / 180;
- euler_angle = euler.new(x, y, z);
- bodypart = list.getIndex(args, 1);
- if(bodypart == "head") {
- as.setHeadPose(as, euler_angle);
- } elseif(bodypart == "body") {
- as.setBodyPose(as, euler_angle);
- } elseif(bodypart == "leftleg") {
- as.setLeftLegPose(as, euler_angle);
- } elseif(bodypart == "rightleg") {
- as.setRightLegPose(as, euler_angle);
- } elseif(bodypart == "leftarm") {
- as.setLeftArmPose(as, euler_angle);
- } elseif(bodypart == "rightarm") {
- as.setRightArmPose(as, euler_angle);
- } else {
- msg.action(player, "Not a legit bodypart.");
- goto("wait");
- }
- msg.action(player, "Pose set.");
- goto("wait");
- }
- if(arg0 == "addpose") {
- if(size < 5) {
- msg.prefix(player, prefix_datatools, "/armorstand addpose <bodypart> <x> <y> <z>");
- goto("wait");
- }
- x = list.getIndex(args, 2);
- if(!isDouble(x) || x < -360 || x > 360) {
- msg.action(player, "Number between -360 and 360 expected.");
- goto("wait");
- }
- x *= math.pi() / 180;
- y = list.getIndex(args, 3);
- if(!isDouble(y) || y < -360 || y > 360) {
- msg.action(player, "Number between -360 and 360 expected.");
- goto("wait");
- }
- y *= math.pi() / 180;
- z = list.getIndex(args, 4);
- if(!isDouble(z) || z < -360 || z > 360) {
- msg.action(player, "Number between -360 and 360 expected.");
- goto("wait");
- }
- z *= math.pi() / 180;
- bodypart = list.getIndex(args, 1);
- if(bodypart == "head") {
- euler_angle = as.getHeadPose(as);
- euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x);
- euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y);
- euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z);
- as.setHeadPose(as, euler_angle);
- } elseif(bodypart == "body") {
- euler_angle = as.getBodyPose(as);
- euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x);
- euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y);
- euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z);
- as.setBodyPose(as, euler_angle);
- } elseif(bodypart == "leftleg") {
- euler_angle = as.getLeftLegPose(as);
- euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x);
- euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y);
- euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z);
- as.setLeftLegPose(as, euler_angle);
- } elseif(bodypart == "rightleg") {
- euler_angle = as.getRightLegPose(as);
- euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x);
- euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y);
- euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z);
- as.setRightLegPose(as, euler_angle);
- } elseif(bodypart == "leftarm") {
- euler_angle = as.getLeftArmPose(as);
- euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x);
- euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y);
- euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z);
- as.setLeftArmPose(as, euler_angle);
- } elseif(bodypart == "rightarm") {
- euler_angle = as.getRightArmPose(as);
- euler_angle = euler.setX(euler_angle, euler.getX(euler_angle) + x);
- euler_angle = euler.setY(euler_angle, euler.getY(euler_angle) + y);
- euler_angle = euler.setZ(euler_angle, euler.getZ(euler_angle) + z);
- as.setRightArmPose(as, euler_angle);
- } else {
- msg.action(player, "Not a legit bodypart.");
- goto("wait");
- }
- msg.action(player, "Pose set.");
- goto("wait");
- }
- goto("armorstand_syntax");
- @ass
- if(size == 0) {
- msg.prefix(player, prefix_commands, "§r/ass ...");
- msg.string(player, " - set <name>");
- msg.string(player, " - name <name>");
- msg.string(player, " - remove");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "set") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/ass set <name>");
- goto("wait");
- }
- name = string.concatList(string_args, " ", 1, size - 1);
- name = string.replace(name, "&", "§");
- as = entity.spawn(entity.getLocation(player), "ARMOR_STAND");
- entity.setGravity(as, false);
- entity.setName(as, text.new(name), true);
- living.setInvisible(as, true);
- as.setMarker(as, true);
- as.canTick(as, false);
- goto("wait");
- }
- as = player.getTargetEntity(player, 5);
- if(!entity.isArmorstand(entity)) {
- location = entity.getLocation(player);
- as = entity.get(location, 3, "org.bukkit.entity.ArmorStand");
- if(as == null) {
- msg.action(player, "No armorstand found.");
- goto("wait");
- }
- }
- if(arg0 == "name") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/ass name <name>");
- goto("wait");
- }
- name = string.concatList(string_args, " ", 1, size - 1);
- name = string.replace(name, "&", "§");
- entity.setName(as, text.new(name), true);
- msg.action(player, "Armorstand renamed.");
- goto("wait");
- }
- if(arg0 == "remove") {
- entity.remove(as);
- msg.action(player, "Armorstand removed.");
- goto("wait");
- }
- goto("wait");
- @potion
- if(size != 3) {
- msg.prefix(player, prefix_perms, "/potion <potion_name> <duration> <power>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.getType(item) == null || !(item.isType(item, "POTION") || item.isType(item, "SPLASH_POTION") || item.isType(item, "LINGERING_POTION"))) {
- msg.prefix(player, prefix_commands, "You need to hold an potion in your hand.");
- goto("wait");
- }
- potion_name = list.getIndex(args, 0);
- list = getPotionTypes();
- if(!list.contains(list, potion_name)) {
- msg.prefix(player, prefix_commands, "Not an potion effect type.");
- goto("wait");
- }
- duration = list.getIndex(args, 1);
- if(!isDouble(duration) || duration < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- power = list.getIndex(args, 2);
- if(!isDouble(power) || power < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- item.addPotion(item, potion_name, duration, power);
- goto("wait");
- @pvp
- if(size == 0) {
- if(hasPvpOn(player)) {
- mode = "off";
- } else {
- mode = "on";
- }
- p = player;
- } elseif(size == 1) {
- mode = list.getIndex(args, 0);
- if(!(mode == "on" || mode == "off")) {
- goto("pvphelp");
- }
- p = player;
- } elseif(size == 2) {
- if(!perm.has("pvp.other", player)) {
- perm.no("pvp.other", player);
- goto("wait");
- }
- mode = list.getIndex(args, 0);
- if(!(mode == "on" || mode == "off")) {
- goto("pvphelp");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- } else {
- @pvphelp
- if(perm.has("pvp.other", player)) {
- msg.prefix(player, prefix_commands, "/pvp [on/off] [player]");
- } else {
- msg.prefix(player, prefix_commands, "/pvp [on/off]");
- }
- goto("wait");
- }
- if(mode == "on") {
- setPvp(p, true);
- msg.prefix(p, prefix_commands, "You have enabled PvP!");
- if(p != player) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has now enabled PvP!"));
- }
- } else {
- setPvp(p, false);
- msg.prefix(p, prefix_commands, "You have PvP disabled!");
- if(p != player) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has now disabled PvP!"));
- }
- }
- goto("wait");
- @suicide
- if(size < 0 || size > 1) {
- msg.prefix(player, prefix_commands, "/suicide [player]");
- goto("wait");
- }
- if(size == 0) {
- p = player;
- }
- if(size == 1) {
- if(!perm.has("suicide.other", player)) {
- perm.no("suicide.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- }
- if(p != player) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has been killed."));
- msg.prefix(p, prefix_commands, string.concat("You have been killed by ", player.getName(player), "."));
- } else {
- msg.prefix(p, prefix_commands, "You killed yourself.");
- }
- living.damage(p, 1000, damage.get("generic"));
- goto("wait");
- @nickname
- if(size < 1) {
- msg.prefix(player, "§eNickname", "/nickname ...");
- msg.string(player, string.concat("§e - <name> ", "Sets a nickname"));
- msg.string(player, string.concat("§e - remove ", "Removes a nickname"));
- goto("wait");
- }
- nickname = string.replace(string.concatList(args, " ", 0, size - 1), "&", "§");
- if(nickname == "remove") {
- player.removeNickName(player);
- msg.prefix(player, prefix_commands, string.concat("Your nickname was removed."));
- } else {
- player.setNickName(player, nickname);
- msg.prefix(player, prefix_commands, string.concat("Your nickname was changed to ", nickname, "§r."));
- }
- player.setTabName(player);
- player.setHeadName(player);
- goto("wait");
- @iteminfo
- item = living.getHand(player);
- string = string.item(item);
- string = string.replace(string, "\"", "'");
- msg(player, string.getClipBoardText(string, string));
- item_type = string(item.getType(item));
- msg(player, string.getClipBoardText(item_type, item_type));
- goto("wait");
- @perm
- if(size == 0) {
- @perm_syntax
- msg.prefix(player, prefix_perms, "/perm ...");
- if(perm.has("perm.give", player)) {
- msg.string(player, "§6 - give <player> <perm>");
- }
- if(perm.has("perm.remove", player)) {
- msg.string(player, "§6 - remove <player> <perm>");
- }
- if(perm.has("perm.removeall", player)) {
- msg.string(player, "§6 - removeall <player>");
- }
- if(perm.has("perm.list", player)) {
- msg.string(player, "§6 - list <player>");
- }
- if(perm.has("perm.toggle", player)) {
- msg.string(player, "§6 - toggle");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "give") {
- if(!perm.has("perm.give", player)) {
- perm.no("perm.give", player);
- goto("wait");
- }
- if(size != 3) {
- msg.prefix(player, prefix_perms, "/perm give <player> <perm>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- perm = list.getIndex(args, 2);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_perms, "This player has never been online.");
- goto("wait");
- }
- if(!perm.isGroupName(perm)) {
- msg.prefix(player, prefix_perms, "This is not a permission group.");
- goto("wait");
- }
- if(!perm.has("isOwner", player)) {
- if(perm == "owner") {
- msg.prefix(player, prefix_perms, "Only owners can give this permission group.");
- goto("wait");
- }
- }
- if(!perm.has("isAdmin", player)) {
- if(perm == "admin" || perm == "mod") {
- msg.prefix(player, prefix_perms, "Only admins can give this permission group.");
- goto("wait");
- }
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- p_name = player.getName(p_uuid);
- perm_id = perm.getIdFromGroupname(perm);
- if(player.hasPermGroup(p_id, perm_id)) {
- msg.prefix(player, prefix_perms, "Perm already added.");
- goto("wait");
- }
- if(isOnline(p_name)) {
- p = read.player(p_name);
- rank = perm.getRankFromGroupname(perm);
- if(rank != null) {
- offerRank(p, rank.getTechName(rank));
- }
- if(perm == "creative") {
- if(loc.isInCreativeWorld(entity.getLocation(p))) {
- player.setGamemode(p, "CREATIVE");
- }
- }
- }
- perm.addGroupToPlayer(p_id, perm_id);
- msg.prefix(player, prefix_perms, string.concat("§rPerm §7", perm, "§r added to §7", p_name, "§r."));
- goto("wait");
- }
- if(arg0 == "remove") {
- if(!perm.has("perm.remove", player)) {
- perm.no("perm.remove", player);
- goto("wait");
- }
- if(size != 3) {
- msg.prefix(player, prefix_perms, "/perm remove <player> <perm>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- perm = list.getIndex(args, 2);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_perms, "This player has never been online.");
- goto("wait");
- }
- if(!perm.isGroupName(perm)) {
- msg.prefix(player, prefix_perms, "This is not a permission group.");
- goto("wait");
- }
- if(!perm.has("isOwner", player)) {
- if(perm == "owner") {
- msg.prefix(player, prefix_perms, "Only owners can remove this permission group.");
- goto("wait");
- }
- }
- if(!perm.has("isAdmin", player)) {
- if(perm == "admin" || perm == "mod") {
- msg.prefix(player, prefix_perms, "Only admins can remove this permission group.");
- goto("wait");
- }
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- p_name = player.getName(p_uuid);
- perm_id = perm.getIdFromGroupname(perm);
- if(!player.hasPermGroup(p_id, perm_id)) {
- msg.prefix(player, prefix_perms, "This player doesn´t have that perm.");
- goto("wait");
- }
- perm.removeGroupFromPlayer(p_id, perm_id);
- msg.prefix(player, prefix_perms, string.concat("Perm §7", perm, "§r removed from §7", p_name, "§r."));
- goto("wait");
- }
- if(arg0 == "removeall") {
- if(!perm.has("perm.removeall", player)) {
- perm.no("perm.removeall", player);
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_perms, "/perm removeall <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_perms, "This player has never been online.");
- goto("wait");
- }
- p_id = player.getId(player.getUuid(p_name));
- player.removeAllPerms(p_id);
- msg.prefix(player, prefix_perms, string.concat("All perms of §7", p_name, " §rwere removed."));
- goto("wait");
- }
- if(arg0 == "list") {
- if(!perm.has("perm.list", player)) {
- perm.no("perm.list", player);
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_perms, "/perm list <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_perms, "This player has never been online.");
- goto("wait");
- }
- p_id = player.getId(player.getUuid(p_name));
- permslist = player.getPerms(p_id);
- listsize = list.getSize(permslist);
- if(listsize == 0) {
- msg.prefix(player, prefix_perms, "No permissions found.");
- } else {
- msg.prefix(player, prefix_perms, p_name);
- for(i = 0; i < listsize; i++) {
- msg.string(player, string.concat(" - ", perm.getNameFromId(list.getIndex(permslist, i))));
- }
- }
- goto("wait");
- }
- if(arg0 == "toggle") {
- if(!perm.has("perm.toggle", player)) {
- perm.no("perm.toggle", player);
- goto("wait");
- }
- if(perm.has("simuser", player)) {
- perm.initPlayer(player);
- msg.prefix(player, prefix_commands, "You have regained your permissions.");
- } else {
- perm.simUser(player);
- msg.prefix(player, prefix_commands, "Have fun as a user.");
- }
- goto("wait");
- }
- goto("perm_syntax");
- @allsounds
- if(size == 0) {
- msg.prefix(player, prefix_commands, "§r/allsounds...");
- msg.string(player, "§e - start §rStart all sounds loop");
- msg.string(player, "§e - stop §rStop all sounds loop");
- msg.string(player, "§e - play <sound> §rPlay a sound");
- msg.string(player, "§e - show [page] §rClick on a sound");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "start") {
- player_uuid = player.getUuid(player);
- if(map.contains(allsounds_indizes, player_uuid)) {
- msg.prefix(player, prefix_commands, "All sounds already started.");
- goto("wait");
- }
- map.add(allsounds_indizes, player_uuid, 0);
- list.add(allsounds_uuids, player_uuid);
- list.add(allsounds_uuids_cross_check, player_uuid);
- msg.prefix(player, prefix_commands, "All sounds started.");
- goto("playallsounds");
- }
- if(arg0 == "stop") {
- player_uuid = player.getUuid(player);
- if(!list.contains(allsounds_uuids_cross_check, player_uuid)) {
- msg.prefix(player, prefix_commands, "No sounds playing.");
- goto("wait");
- }
- map.remove(allsounds_indizes, player_uuid);
- list.remove(allsounds_uuids_cross_check, player_uuid);
- msg.prefix(player, prefix_commands, "All sounds stopped.");
- goto("wait");
- }
- if(arg0 == "play") {
- if(size != 2) {
- msg.prefix(player, prefix_perms, "/allsounds player <sound>");
- goto("wait");
- }
- sound_name = list.getIndex(args, 1);
- sound_name = string.replace(sound_name, "minecraft:", "");
- sound_name = string.replace(sound_name, "[.]", "_");
- sound_name = string.toUpperCase(sound_name);
- if(!list.contains(allsounds_list, sound_name)) {
- msg.prefix(sender, prefix_commands, "Not a known sound.");
- goto("wait");
- }
- sound = sound.get(sound_name);
- sound.spawnForPlayer(player, sound, sound_category_master);
- goto("wait");
- }
- if(arg0 == "show") {
- amount_sounds = list.getSize(allsounds_list);
- max_side = amount_sounds / 10;
- if(size == 1) {
- side = 1;
- print_side = side - 1;
- } else {
- side = list.getIndex(args, 1);
- if(!isDouble(side)) {
- msg.prefix(sender, prefix_commands, "/allsounds show [side]");
- goto("wait");
- }
- print_side = side - 1;
- if(print_side < 0 || print_side > max_side) {
- msg.prefix(sender, prefix_commands, string.concat("Possible: 1 - ", string.number(math.roundDown(max_side + 1))));
- goto("wait");
- }
- }
- msg.string(sender, string.concat("§a --- All Sounds ", string.number(side), " ---"));
- for(i = print_side * 10; i < print_side * 10 + 10; i++) {
- if(i < amount_sounds) {
- sound_name = list.getIndex(allsounds_list, i);
- msg(sender, string.getClickText(string.concat(" ", sound_name), string.concat("/allsounds play ", sound_name)));
- }
- }
- if(side == 1) {
- backward = text.new("§c<<Backward<<");
- forward = string.getClickText("§b>>Forward>>", string.concat("/allsounds show ", side + 1));
- } elseif(side > max_side) {
- backward = string.getClickText("§b<<Backward<<", string.concat("/allsounds show ", side - 1));
- forward = text.new("§c>>Forward>>");
- } else {
- backward = string.getClickText("§b<<Backward<<", string.concat("/allsounds show ", side - 1));
- forward = string.getClickText("§b>>Forward>>", string.concat("/allsounds show ", side + 1));
- }
- msg(sender, text.merge(backward, text.new(" "), forward));
- goto("wait");
- }
- goto("wait");
- @playallsounds
- player_uuid = list.getIndex(allsounds_uuids, 0);
- list.removeIndex(allsounds_uuids, 0);
- if(!list.contains(allsounds_uuids_cross_check, player_uuid)) {
- goto("wait");
- }
- player = player.get(player_uuid);
- if(player == null) {
- map.remove(allsounds_indizes, player_uuid);
- goto("wait");
- }
- i = map.get(allsounds_indizes, player_uuid);
- if(i == list.getSize(allsounds_list)) {
- map.remove(allsounds_indizes, player_uuid);
- msg.prefix(player, prefix_commands, "All sounds finished.");
- goto("wait");
- }
- sound_name = list.getIndex(allsounds_list, i);
- sound = sound.get(sound_name);
- sound.spawnForPlayer(player, sound, sound_category_master);
- msg.string(player, sound_name);
- map.add(allsounds_indizes, player_uuid, i + 1);
- list.add(allsounds_uuids, player_uuid);
- sgoto(100, "playallsounds");
- goto("wait");
- @weather
- if(size == 0) {
- @weather_syntax
- msg.prefix(player, "§eWeather", "/weather ...");
- msg.string(player, "§e - clear [duration]");
- msg.string(player, "§e - rain [duration]");
- msg.string(player, "§e - thunder [duration]");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "clear" || arg0 == "rain" || arg0 == "thunder") {
- if(size == 2) {
- duration = list.getIndex(args, 1);
- if(!isDouble(duration)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(duration < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- } else {
- duration = 12000;
- }
- world = loc.getWorld(entity.getLocation(player));
- if(arg0 == "clear") {
- if(size > 2) {
- msg.prefix(player, prefix_commands, "/weather clear [duration]");
- goto("wait");
- }
- world.clearWeather(world, duration);
- msg.prefix(player, prefix_commands, "Weather cleared.");
- goto("wait");
- }
- if(arg0 == "rain") {
- if(size > 2) {
- msg.prefix(player, prefix_commands, "/weather rain [duration]");
- goto("wait");
- }
- world.setRain(world, duration);
- msg.prefix(player, prefix_commands, "Weather set to rain.");
- goto("wait");
- }
- if(arg0 == "thunder") {
- if(size > 2) {
- msg.prefix(player, prefix_commands, "/weather thunder [duration]");
- goto("wait");
- }
- world.setThunder(world, duration);
- msg.prefix(player, prefix_commands, "Weather set to thunder.");
- goto("wait");
- }
- goto("wait");
- }
- goto("weather_syntax");
- @time
- if(size == 0) {
- @time_syntax
- msg.prefix(player, "§eTime", "/time ...");
- msg.string(player, "§e - set <time>");
- msg.string(player, "§e - add <time>");
- msg.string(player, "§e - <day / noon / night / midnight>");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "set") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/time set <time>");
- goto("wait");
- }
- setTime = list.getIndex(args, 1);
- if(!isDouble(setTime)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(setTime < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- world = loc.getWorld(entity.getLocation(player));
- while(setTime >= 24000) {
- setTime -= 24000;
- }
- world.setTime(world, setTime);
- msg.prefix(player, prefix_commands, string.concat("Time set to ", string.number(setTime), "."));
- goto("wait");
- }
- if(arg0 == "add") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/time add <time>");
- goto("wait");
- }
- addTime = list.getIndex(args, 1);
- if(!isDouble(addTime)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(addTime < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- world = loc.getWorld(entity.getLocation(player));
- newtime = world.getTime(world) + addTime;
- while(newtime >= 24000) {
- newtime -= 24000;
- }
- world.setTime(world, newtime);
- msg.prefix(player, prefix_commands, string.concat("Time set to ", string.number(newtime), "."));
- goto("wait");
- }
- newtime = null;
- if(arg0 == "day") {
- newtime = 1000;
- } elseif(arg0 == "noon") {
- newtime = 6000;
- } elseif(arg0 == "night") {
- newtime = 13000;
- } elseif(arg0 == "midnight") {
- newtime = 18000;
- }
- if(newtime != null) {
- world = loc.getWorld(entity.getLocation(player));
- world.setTime(world, newtime);
- msg.prefix(player, prefix_commands, string.concat("Time set to ", string.number(newtime), "."));
- goto("wait");
- }
- goto("time_syntax");
- @gamerule
- world = loc.getWorld(entity.getLocation(player));
- if(size == 0) {
- msg.prefix(player, prefix_commands, "/gamerule <gamerule> [value]");
- goto("wait");
- }
- gamerule_string = list.getIndex(args, 0);
- gamerule_key = gamerule.getKey(gamerule_string);
- if(gamerule_key == null) {
- msg.prefix(player, prefix_commands, "Gamerule doesn´t exist.");
- goto("wait");
- }
- gamerule_value = gamerule.getValue(world, gamerule_key);
- if(size == 1) {
- if(isDouble(gamerule_value)) {
- gamerule_value = string.number(gamerule_value);
- }
- msg.prefix(player, prefix_commands, string.concat(gamerule_string, " ", gamerule_value));
- goto("wait");
- }
- if(size == 2) {
- if(!perm.has("gamerule.write", player)) {
- perm.no("gamerule.write", player);
- goto("wait");
- }
- value = list.getIndex(args, 1);
- if(isBool(gamerule_value)) {
- gamerule.setBool(world, gamerule_key, value);
- } elseif(isDouble(gamerule_value)) {
- gamerule.setInt(world, gamerule_key, value);
- value = string.number(value);
- } else {
- msg.prefix(player, prefix_commands, "Unknown gamerule type.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, string.concat(gamerule_string, " set to ", value, "."));
- }
- goto("wait");
- @tip
- if(size == 0) {
- msg.prefix(player, prefix_tips, "/tip ...");
- msg.string(player, "§e - list §rList all tips");
- msg.string(player, "§e - add <tip> <text> §rAdds a tip");
- msg.string(player, "§e - remove <tip> §rRemoves a tip");
- msg.string(player, "§e - loop <tip> <boolean> §rTrue shows on tip loop");
- msg.string(player, "§e - <tip> [player] §rSends a tip to all/a player");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "list") {
- msg.string(player, "--==§eTipps§r==--");
- list = tip.getAll();
- if(list.getSize(list) == 0) {
- msg.prefix(player, prefix_tips, "No tips available.");
- goto("wait");
- }
- iter = iterator(list);
- while(hasNext(iter)) {
- a = next(iter);
- tipp_key = a[0];
- tipp_value = a[1];
- tipp_loop = a[2];
- if(tipp_loop) {
- tipp_loop = string.concat("§a", tipp_loop);
- } else {
- tipp_loop = string.concat("§c", tipp_loop);
- }
- msg(player, text.merge(text.new(string.concat(" ", tipp_loop, " §e", tipp_key, "§r : ")), string.getInterpretedText(tipp_value)));
- }
- goto("wait");
- }
- if(arg0 == "add") {
- if(!perm.has("tip.mod", player)) {
- perm.no("tip.mod", player);
- goto("wait");
- }
- if(size < 3) {
- msg.prefix(player, prefix_commands, "/tip add <name> <text>");
- goto("wait");
- }
- tipp_key = list.getIndex(args, 1);
- tipp_value = string.concatList(string_args, " ", 2, size - 1);
- tipp_value = string.replace(tipp_value, "&", "§");
- tipp.register(tipp_key, tipp_value);
- msg.prefix(player, prefix_tips, "Tip added.");
- goto("wait");
- }
- if(arg0 == "loop") {
- if(!perm.has("tip.mod", player)) {
- perm.no("tip.mod", player);
- goto("wait");
- }
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/tip loop <tip> <boolean>");
- goto("wait");
- }
- tipp_key = list.getIndex(args, 1);
- if(!tipp.exists(tipp_key)) {
- msg.prefix(player, prefix_tips, "This tip does not exist.");
- goto("wait");
- }
- boolean = list.getIndex(args, 2);
- if(string.class(boolean) != "Boolean") {
- msg.prefix(player, prefix_tips, "True or false expected.");
- goto("wait");
- }
- if(boolean) {
- tip.setLoop(tipp_key, boolean);
- } else {
- tip.setLoop(tipp_key, boolean);
- }
- msg.prefix(player, prefix_tips, "Tip settings changed.");
- goto("wait");
- }
- if(arg0 == "remove") {
- if(!perm.has("tip.mod", player)) {
- perm.no("tip.mod", player);
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/tip remove <name>");
- goto("wait");
- }
- tipp_key = list.getIndex(args, 1);
- tip.remove(tipp_key);
- msg.prefix(player, prefix_tips, "Tip removed.");
- goto("wait");
- }
- tipp_key = arg0;
- if(!tipp.exists(tipp_key)) {
- msg.prefix(player, prefix_tips, "This tip does not exist.");
- goto("wait");
- }
- if(size == 1) {
- p = "online";
- } else {
- p_name = list.getIndex(args, 1);
- if(!isOnline(p_name)) {
- msg.prefix(player, prefix_tips, "This player is not online.");
- goto("wait");
- }
- p = read.player(p_name);
- msg.prefix(player, prefix_tips, string.concat("Tip sent to §7", p_name, "§r."));
- }
- tipp_value = tipp.get(tipp_key);
- msg(p, text.merge(text.new(string.concat(string.getPrefix(string.concat("§e", player.getName(player))), " ")), string.getInterpretedText(tipp_value)));
- goto("wait");
- @help
- if(size > 1) {
- msg.prefix(sender, prefix_commands, "/help [side]");
- goto("wait");
- }
- //Auf Permission überprüfen
- temp_list = list.new();
- for(i = 0; i < list.getSize(command_list); i++) {
- command = list.getIndex(command_list, i);
- if(perm.has(command, sender)) {
- list.add(temp_list, command);
- }
- }
- list.sort(temp_list);
- temp_size = list.getSize(temp_list);
- max_side = temp_size / 10;
- if(size == 0) {
- side = 1;
- print_side = side - 1;
- } else {
- side = list.getIndex(args, 0);
- if(!isDouble(side)) {
- msg.prefix(sender, prefix_commands, "/help [side]");
- goto("wait");
- }
- print_side = side - 1;
- if(print_side < 0 || print_side > max_side) {
- msg.prefix(sender, prefix_commands, string.concat("Possible: 1 - ", string.number(math.roundDown(max_side + 1))));
- goto("wait");
- }
- }
- msg.string(sender, string.concat("§a --- Help ", string.number(side), " ---"));
- for(i = print_side * 10; i < print_side * 10 + 10; i++) {
- if(i < temp_size) {
- command_string = list.getIndex(temp_list, i);
- command = string.getHoverText(command_string, map.getOrDefault(command_map, command_string, ""));
- msg(sender, text.merge(text.new(" /"), text.suggest(command, string.concat("/", command_string))));
- }
- }
- if(side == 1) {
- backward = text.new("§c<<Backward<<");
- forward = string.getClickText("§b>>Forward>>", string.concat("/help ", side + 1));
- } elseif(side > max_side) {
- backward = string.getClickText("§b<<Backward<<", string.concat("/help ", side - 1));
- forward = text.new("§c>>Forward>>");
- } else {
- backward = string.getClickText("§b<<Backward<<", string.concat("/help ", side - 1));
- forward = string.getClickText("§b>>Forward>>", string.concat("/help ", side + 1));
- }
- msg(sender, text.merge(backward, text.new(" "), forward));
- goto("wait");
- @grow
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/grow <radius>");
- goto("wait");
- }
- radius = list.getIndex(args, 0);
- if(!isDouble(radius)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(radius < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- center_loc = getBlockLocation(entity.getLocation(player));
- grow(center_loc, radius);
- msg.prefix(player, prefix_commands, "Field grown.");
- goto("wait");
- @start
- if(size != 1) {
- @starthelp
- msg.prefix(sender, prefix_commands, "/start <name>");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- modTimer(-500);
- if(arg0 == "chat") {
- script = script.get("Chat");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Chat", "utils/u_error", "system/chat", "utils/u_general");
- }
- elseif(arg0 == "challenges") {
- script = script.get("Challenges");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Challenges", "utils/u_error", "survival/challenges", "utils/u_general");
-
- script = script.get("AllDamageTypes");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("AllDamageTypes", "utils/u_error", "challenges/all_damage_types", "utils/u_general");
-
- script = script.get("AllEntities");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("AllEntities", "utils/u_error", "challenges/all_entities", "utils/u_general");
-
- script = script.get("AllItems");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("AllItems", "utils/u_error", "challenges/all_items", "utils/u_general");
- }
- elseif(arg0 == "commands") {
- script = script.startNamed("Commands", "system/commands", "utils/u_general", "utils/u_commands", "utils/u_skills");
- if(script == null) {
- msg.dev("Old commands script still active due to error in new script");
- goto("wait");
- }
- script.term(script.get());
- }
- elseif(arg0 == "commandhelp") {
- if(players.getAmount() >= 0) {
- msg.prefix(player, prefix_commands, "There are players online. Do /stop to restart the server.");
- goto("wait");
- }
- script.startNamed("Commandhelp", "system/cmdhelp", "utils/u_general");
- }
- elseif(arg0 == "copyisland") {
- script = script.get("Copyisland");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Copyisland", "system/copyisland", "utils/u_general");
- }
- elseif(arg0 == "creative") {
- script = script.get("Creative");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Creative", "utils/u_error", "system/creative", "utils/u_general");
- }
- elseif(arg0 == "damage") {
- script = script.get("Damage");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Damage", "utils/u_error", "system/damage", "utils/u_general");
- }
- elseif(arg0 == "doors") {
- script = script.get("Doors");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Doors", "utils/u_error", "system/doors", "utils/u_general");
- }
- elseif(arg0 == "games") {
- script = script.get("Gamecenter");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Gamecenter", "utils/u_error", "minigames/gamecenter", "utils/u_general", "utils/u_games");
- }
- elseif(arg0 == "gemstones") {
- script = script.get("Gemstones");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Gemstones", "utils/u_error", "survival/gemstones", "utils/u_general");
- }
- elseif(arg0 == "harvest") {
- script = script.get("Harvest");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Harvest", "utils/u_error", "survival/harvest", "utils/u_general");
- }
- elseif(arg0 == "herobrine") {
- script = script.get("Herobrine");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Herobrine", "utils/u_error", "survival/herobrine", "utils/u_general");
- }
- elseif(arg0 == "humans") {
- script = script.get("Humans");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Humans", "utils/u_error", "system/humans", "utils/u_general");
- }
- elseif(arg0 == "lectern") {
- script = script.get("Lectern");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Lectern", "utils/u_error", "survival/lectern", "utils/u_general");
- }
- elseif(arg0 == "loginrequests") {
- script = script.get("loginrequests");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("LoginRequests", "system/login_requests", "utils/u_general");
- }
- elseif(arg0 == "loom") {
- script = script.get("Loom");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Loom", "utils/u_error", "survival/loom", "utils/u_general");
- }
- elseif(arg0 == "perms") {
- script = script.get("Perms");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Perms", "utils/u_error", "system/perms", "utils/u_general");
- }
- elseif(arg0 == "playerdata") {
- script = script.get("Playerdata");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Playerdata", "utils/u_error", "system/player_data", "utils/u_general");
- }
- elseif(arg0 == "playtime") {
- script = script.get("Playtime");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Playtime", "system/playtime", "utils/u_general");
- }
- elseif(arg0 == "pumpkin") {
- script = script.get("Pumpkin");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Pumpkin", "utils/u_error", "survival/pumpkin", "utils/u_general");
- }
- elseif(arg0 == "recipes") {
- script = script.get("Recipes");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Recipes", "survival/recipes");
- }
- elseif(arg0 == "stats") {
- script = script.get("Ranklist");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Ranklist", "utils/u_error", "system/ranklist", "utils/u_general", "utils/u_games");
- }
- elseif(arg0 == "scheduler") {
- script = script.get("Scheduler");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Scheduler", "utils/u_error", "system/scheduler", "utils/u_general");
- }
- elseif(arg0 == "shop") {
- script = script.get("ChestShops");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("ChestShops", "utils/u_error", "system/chestshops", "utils/u_general");
- }
- elseif(arg0 == "teleporter") {
- script = script.get("Teleporter");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Teleporter", "utils/u_error", "survival/teleporter", "utils/u_general");
- }
- elseif(arg0 == "mails") {
- script = script.get("Mails");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Mails", "utils/u_error", "system/mailsystem", "utils/u_general");
- }
- elseif(arg0 == "market") {
- script = script.get("Market");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Market", "utils/u_error", "system/market", "utils/u_general");
- }
- elseif(arg0 == "mobarena") {
- script = script.get("Mobarena");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Mobarena", "utils/u_error", "survival/mobarena", "utils/u_general");
- }
- elseif(arg0 == "ticket") {
- script = script.get("Ticket");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Ticket", "utils/u_error", "system/tickets", "utils/u_general");
- }
- elseif(arg0 == "timber") {
- script = script.get("Timber");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Timber", "utils/u_error", "survival/timber", "utils/u_general", "utils/u_skills");
- }
- elseif(arg0 == "tiploop") {
- script = script.get("tiploop");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("tiploop", "utils/u_error", "system/tiploop", "utils/u_general");
- }
- elseif(arg0 == "trader") {
- script = script.get("Trader");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Trader", "utils/u_error", "survival/trader", "utils/u_general");
- }
- elseif(arg0 == "skills") {
- script = script.get("Skills");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Skills", "utils/u_error", "survival/skills", "utils/u_general", "utils/u_skills", "utils/u_quest");
- }
- elseif(arg0 == "story") {
- /*script = script.get("Story");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Story", "utils/u_error", "story/story", "utils/u_general");*/
- script = script.get("QuestsAdmont");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("QuestsAdmont", "utils/u_error", "story/admont/core", "utils/u_general", "utils/u_quest");
- /*script = script.get("QuestsSchiffbruch");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("QuestsSchiffbruch", "utils/u_error", "story/schiffbruch/core", "utils/u_general", "utils/u_quest");*/
- }
- elseif(arg0 == "sitting") {
- script = script.get("Sitting");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Sitting", "utils/u_error", "system/sitting", "utils/u_general");
- }
- elseif(arg0 == "survival") {
- script = script.get("Survival");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Survival", "utils/u_error", "survival/survival", "utils/u_general", "utils/u_skills");
- }
- elseif(arg0 == "plots") {
- script = script.get("Plots");
- if(script != null) {
- script.term(script);
- }
- script.startNamed("Plots", "utils/u_error", "system/plots", "utils/u_general");
- }
- else {
- goto("starthelp");
- }
- goto("wait");
- @stop
- script.start("stop");
- goto("wait");
- @senditem
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/senditem <player>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_commands, "You need to hold an item in your hand.");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- player.safeGiveItem(p, item);
- player.removeItem(player, item);
- goto("wait");
- @top
- player_loc = entity.getLocation(player);
- y = 319;
- loc.setY(player_loc, y);
- while(y > -64 && block.isAir(block.get(player_loc))) {
- loc.setY(player_loc, y);
- y--;
- }
- if(y == -64) {
- msg.prefix(player, prefix_commands, "No block found.");
- goto("wait");
- }
- player.teleport(player, loc.mod(player_loc, 0, 1, 0), true);
- goto("wait");
- @creative
- crea_spawn = world.getCreativeSpawn();
- world = loc.getWorld(crea_spawn);
- if(world == null) {
- msg.prefix(player, prefix_commands, "This world is not loaded.");
- goto("wait");
- }
- if(size > 1) {
- msg.prefix(player, prefix_commands, "/creative [player]");
- goto("wait");
- }
- if(size == 0) {
- p = player;
- }
- if(size == 1) {
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(!perm.has("tp.other", player)) {
- perm.no("tp.other", player);
- goto("wait");
- }
- }
- if(player.hasMinigame(p)) {
- if(size == 1) {
- msg.prefix(player, prefix_commands, "This player can´t be teleported now.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- if(size == 1) {
- if(player != p) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " was teleported to the creative world."));
- }
- }
- if(player.teleport(p, crea_spawn, true)) {
- msg.prefix(p, prefix_commands, "You have been teleported to the creative world.");
- }
- goto("wait");
- @minigames
- @games
- world = loc.getWorld(world.getGamesSpawn());
- if(world == null) {
- msg.prefix(player, prefix_commands, "This world is not loaded.");
- goto("wait");
- }
- if(size > 1) {
- msg.prefix(player, prefix_commands, "/games [player]");
- goto("wait");
- }
- if(size == 0) {
- p = player;
- }
- if(size == 1) {
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(!perm.has("tp.other", player)) {
- perm.no("tp.other", player);
- goto("wait");
- }
- }
- if(player.hasMinigame(p)) {
- if(size == 1) {
- msg.prefix(player, prefix_commands, "This player can´t be teleported now.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- if(size == 1) {
- if(player != p) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " was teleported to the games world."));
- }
- }
- if(player.teleport(p, world.getGamesSpawn(), true)) {
- msg.prefix(p, prefix_commands, "You have been teleported to the games world.");
- }
- goto("wait");
- @repair
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand.");
- goto("wait");
- }
- item.setDamage(item, 0);
- msg.prefix(player, prefix_commands, "Your item has been repaired.");
- goto("wait");
- @playtime
- if(size == 0) {
- p_id = player.getId(player);
- arg0 = player.getName(player);
- } else {
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "year") {
- modTimer(-20);
- if(!perm.has("playtime.year", player)) {
- perm.no("playtime.year", player);
- goto("wait");
- }
- calendar = time.new(time.getMillis());
- now_month = time.getMonth(calendar);
- now_year = time.getYear(calendar);
- if(size == 1) {
- year = now_year;
- } else {
- year = list.getIndex(args, 1);
- if(!isDouble(year)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(year > now_year) {
- year = now_year;
- }
- }
- //Von allen Online-Spielern die Onlinezeit abrufen, summieren und zur Heute-Spielzeit addieren
- since_minutes = playtime.getTotalOnlineMinutes();
- //Tabelle erstellen
- table = table.new("§8", 4, 5, 5);
- msg.string(player, table.getStart(table));
- msg.string(player, table.get(table, string.number(year), "Playtime", "Change"));
- msg.string(player, table.getMiddle(table));
- //Monats-Spielzeit berechnen
- temp_list = list.new();
- list.add(temp_list, playtime.getInterval(time.getCal(year - 1, 12, 1, 0, 0, 0), time.getCal(year, 1, 1, 0, 0, 0))); //Dezember des Vorjahres hinzufügen
- for(i = 1; i <= 12; i++) {
- midnight = time.getCal(year, i, 1, 0, 0, 0);
- midnight_2 = time.getCal(year, i + 1, 1, 0, 0, 0);
- minutes = playtime.getInterval(midnight, midnight_2);
- list.add(temp_list, minutes);
- if(i == now_month && year == now_year) {
- minutes += since_minutes;
- }
- }
- for(i = 1; i <= 12; i++) {
- minutes = list.getIndex(temp_list, i);
- hours = math.roundDown(minutes / 60);
- mod_minutes = minutes % 60;
- if(mod_minutes < 10) {
- time_string = string.concat("§6", string.number(hours), ":0", string.number(mod_minutes), " h");
- } else {
- time_string = string.concat("§6", string.number(hours), ":", string.number(mod_minutes), " h");
- }
- pre_minutes = list.getIndex(temp_list, i - 1);
- if(minutes >= pre_minutes) {
- color = "§a+";
- a = minutes;
- b = pre_minutes;
- } else {
- color = "§c-";
- a = pre_minutes;
- b = minutes;
- }
- if(b == 0) {
- change = "";
- } else {
- change = math.round(a / b * 100 - 100);
- change = string.concat(color, string.number(change), " %");
- }
- msg.string(player, table.get(table, string.concat("§6", month.getShortName(i)), time_string, change));
- if(i == now_month && year == now_year) {
- break;
- }
- }
- //Tabelle beenden
- msg.string(player, table.getEnd(table));
- goto("wait");
- }
- if(arg0 == "month") {
- modTimer(-100);
- if(!perm.has("playtime.month", player)) {
- perm.no("playtime.month", player);
- goto("wait");
- }
- calendar = time.new(time.getMillis());
- now_day = time.getDay(calendar);
- now_month = time.getMonth(calendar);
- now_year = time.getYear(calendar);
- year = now_year;
- if(size == 1) {
- month = now_month;
- } else {
- month = list.getIndex(args, 1);
- if(!isDouble(month)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(month < 1) {
- month = 1;
- } elseif(month > 12) {
- month = 12;
- }
- if(size == 3) {
- year = list.getIndex(args, 2);
- if(!isDouble(year)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- }
- if(year > now_year ||(year >= now_year && month > now_month)) {
- month = now_month;
- year = now_year;
- }
- }
- sum_minutes = 0;
- sum_players = 0;
- //Von allen Online-Spielern die Onlinezeit abrufen, summieren und zur Heute-Spielzeit addieren
- since_minutes = playtime.getTotalOnlineMinutes();
- //Tabelle erstellen
- table = table.new("§8", 4, 5, 5);
- msg.string(player, table.getStart(table));
- msg.string(player, table.get(table, month.getShortName(month), "Playtime", "Players"));
- msg.string(player, table.getMiddle(table));
- //Tages-Spielzeit berechnen
- month_days = time.getMonthDays(month, year);
- for(i = 1; i <= month_days; i++) {
- midnight = time.getCal(year, month, i, 0, 0, 0);
- if(i == month_days) {
- midnight_2 = time.getCal(year, month + 1, 1, 0, 0, 0);
- } else {
- midnight_2 = time.getCal(year, month, i + 1, 0, 0, 0);
- }
- players = playtime.getPlayersPerInterval(midnight, midnight_2);
- sum_players += players;
- minutes = playtime.getInterval(midnight, midnight_2);
- if(i == now_day && month == now_month && year == now_year) {
- minutes += since_minutes;
- }
- sum_minutes += minutes;
- hours = math.roundDown(minutes / 60);
- minutes = minutes % 60;
- if(minutes < 10) {
- time_string = string.concat("§6", string.number(hours), ":0", string.number(minutes), " h");
- } else {
- time_string = string.concat("§6", string.number(hours), ":", string.number(minutes), " h");
- }
- msg.string(player, table.get(table, string.concat("§6", string.number(i)), time_string, string.number(players)));
- if(i == now_day && month == now_month && year == now_year) {
- break;
- }
- }
- //Average
- avg_mins = sum_minutes / i;
- avg_hours = math.roundDown(avg_mins / 60);
- avg_mins = avg_mins % 60;
- if(avg_mins < 10) {
- avg_time_string = string.concat("§6", string.number(avg_hours), ":0", string.number(avg_mins), " h");
- } else {
- avg_time_string = string.concat("§6", string.number(avg_hours), ":", string.number(avg_mins), " h");
- }
- avg_players = sum_players / i;
- msg.string(player, table.getMiddle(table));
- msg.string(player, table.get(table, "§6Ø", avg_time_string, string.number(math.roundDown(avg_players))));
- //Tabelle beenden
- msg.string(player, table.getEnd(table));
- goto("wait");
- }
- if(arg0 == "all") {
- modTimer(-10);
- msg.string(player, string.getSpacer());
- msg.prefix(player, prefix_commands, "Server-Playtime");
- //Von allen Online-Spielern die Onlinezeit abrufen, summieren und zur Heute-Spielzeit addieren
- since_minutes = playtime.getTotalOnlineMinutes();
- //Spielzeit heute
- now_cal = time.new(time.getMillis());
- now_day = time.getDay(now_cal);
- now_month = time.getMonth(now_cal);
- now_year = time.getYear(now_cal);
- midnight = time.getCal(now_year, now_month, now_day, 0, 0, 0);
- minutes = playtime.getInterval(midnight, now_cal) + since_minutes;
- hours = string.number(math.roundDown(minutes / 60));
- minutes = string.number(minutes % 60);
- msg.string(player, string.concat("§6Today: §r", hours, " h ", minutes, " min"));
- //Spielzeit 30 Tage für alle Spieler
- year = now_year;
- month = now_month;
- day = now_day - 30;
- if(day < 1) {
- month -= 1;
- if(month < 1) {
- year -= 1;
- month = 12;
- }
- day += time.getMonthDays(month, year);
- }
- thirtyDaysAgo = time.getCal(year, month, day, time.getHour(now_cal), time.getMinute(now_cal), time.getSecond(now_cal));
- minutes = playtime.getInterval(thirtyDaysAgo, now_cal) + since_minutes;
- hours = string.number(math.roundDown(minutes / 60));
- minutes = string.number(minutes % 60);
- msg.string(player, string.concat("§630 Days: §r", hours, " h ", minutes, " min"));
- //Spielzeit gesamt
- minutes = playtime.getTotal();
- hours = string.number(math.roundDown(minutes / 60));
- minutes = string.number(minutes % 60);
- msg.string(player, string.concat("§6Total: §r", hours, " h ", minutes, " min"));
- goto("wait");
- }
- if(!perm.has("playtime.other", player)) {
- perm.no("playtime.other", player);
- goto("wait");
- }
- }
- if(!checkIfEverOnline(arg0)) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_uuid = player.getUuid(arg0);
- arg0 = player.getName(p_uuid);
- p_id = player.getId(p_uuid);
- msg.string(player, string.getSpacer());
- msg.prefix(player, prefix_commands, string.concat("Playtime of ", player.getName(p_uuid)));
- //Online seit
- since_minutes = playtime.getPlayerOnlineMinutes(p_id);
- if(isOnline(arg0)) {
- since_hours = math.roundDown(since_minutes / 60);
- mod_minutes = since_minutes % 60;
- msg.string(player, string.concat("§aOnline since: §r", string.number(since_hours), " hours ", string.number(mod_minutes), " minutes"));
- } else {
- msg.string(player, "§6Status: §cOffline");
- }
- //Spielzeit heute
- now_cal = time.new(time.getMillis());
- now_day = time.getDay(now_cal);
- now_month = time.getMonth(now_cal);
- now_year = time.getYear(now_cal);
- midnight = time.getCal(now_year, now_month, now_day, 0, 0, 0);
- minutes = playtime.getPlayerInterval(p_id, midnight, now_cal) + since_minutes;
- hours = string.number(math.roundDown(minutes / 60));
- minutes = string.number(minutes % 60);
- msg.string(player, string.concat("§6Today: §r", hours, " h ", minutes, " min"));
- //Spielzeit 30 Tage
- year = now_year;
- month = now_month;
- day = now_day - 30;
- if(day < 1) {
- month -= 1;
- if(month < 1) {
- year -= 1;
- month = 12;
- }
- day += time.getMonthDays(month, year);
- }
- thirtyDaysAgo = time.getCal(year, month, day, time.getHour(now_cal), time.getMinute(now_cal), time.getSecond(now_cal));
- minutes = playtime.getPlayerInterval(p_id, thirtyDaysAgo, now_cal) + since_minutes;
- hours = string.number(math.roundDown(minutes / 60));
- minutes = string.number(minutes % 60);
- msg.string(player, string.concat("§630 Days: §r", hours, " h ", minutes, " min"));
- //Spielzeit gesamt
- minutes = playtime.getPlayerTotal(p_id);
- hours = string.number(math.roundDown(minutes / 60));
- minutes = string.number(minutes % 60);
- msg.string(player, string.concat("§6Total: §r", hours, " h ", minutes, " min"));
- goto("wait");
- @datatools
- if(size == 0) {
- @datatoolshelp
- msg.prefix(player, prefix_datatools, "/datatools ...");
- msg.string(player, "§6 - item-flag <name> §rAdds a flag on an item");
- msg.string(player, "§6 - item-name <name> §rRenames an item");
- msg.string(player, "§6 - item-lore <lore> §rSets an item lore");
- msg.string(player, "§6 - item-attribute <attribut> <slot> <double> <op> §rAdds an attribute to an item");
- msg.string(player, "§6 - entity-hide §rHides an entity");
- msg.string(player, "§6 - entity-show §rShows an entity");
- msg.string(player, "§6 - entity-name <name> §rRenames an entity");
- msg.string(player, "§6 - entity-print §rPrint entities nbt-tag");
- msg.string(player, "§6 - frame-hide §rHides an item frame");
- msg.string(player, "§6 - frame-show §rShows an item frame");
- msg.string(player, "§6 - name-visibility <boolean> §rShow name (not) permanent");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "item-flag") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/datatools item-flag <name>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_datatools, "Hold an item in your hand.");
- goto("wait");
- }
- name = string.concatList(args, " ", 1, size - 1);
- if(!list.contains(item_flags, name)) {
- msg.prefix(player, prefix_datatools, "You can´t add that flag.");
- goto("wait");
- }
- item.addFlag(item, name);
- msg.prefix(player, prefix_datatools, "Flag added.");
- goto("wait");
- }
- if(arg0 == "item-attribute") {
- if(size < 5) {
- msg.prefix(player, prefix_datatools, "/datatools item-attribute <attribut> <slot> <double> <op>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_commands, "You have to hold an item in your mainhand.");
- goto("wait");
- }
- double = list.getIndex(args, 3);
- if(!isDouble(double) || double < 0) {
- msg.prefix(player, prefix_datatools, "Natural number expected.");
- goto("wait");
- }
- attribut = list.getIndex(args, 1);
- if(!set.contains(attribut_set, attribut)) {
- msg.prefix(player, prefix_datatools, "Unknown attribute.");
- goto("wait");
- }
- slot = read.slot(list.getIndex(args, 2));
- if(slot == null) {
- msg.prefix(player, prefix_datatools, "Incorrect slot.");
- goto("wait");
- }
- operation = list.getIndex(args, 4);
- if(!set.contains(operation_set, operation)) {
- msg.prefix(player, prefix_datatools, "Unknown operation.");
- goto("wait");
- }
- item.addAttribute(item, attribut, slot, double, operation);
- msg.prefix(player, prefix_datatools, "Attribute added.");
- goto("wait");
- }
- if(arg0 == "item-name") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/datatools item-name <name>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_datatools, "You need to hold an item in your hand.");
- goto("wait");
- }
- name = string.concatList(args, " ", 1, size - 1);
- name = string.replace(name, "&", "§");
- name = string.replace(name, "\\n", "\n");
- item.setName(item, text.new(name));
- msg.prefix(player, prefix_datatools, string.concat("Item renamed to ", name, "§r."));
- goto("wait");
- }
- if(arg0 == "entity-print") {
- entity = player.getTargetEntity(player, 5);
- if(entity == null) {
- msg.prefix(player, prefix_commands, "No entity found.");
- goto("wait");
- }
- txt_ent = string.entity(entity);
- msg(player, string.getClipBoardText(txt_ent, txt_ent));
- goto("wait");
- }
- if(arg0 == "item-lore") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/datatools item-lore <lore>");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(player, prefix_datatools, "You need to hold an item in your hand.");
- goto("wait");
- }
- lore = string.concatList(args, " ", 1, size - 1);
- lore = string.replace(lore, "&", "§");
- item.addLore(item, lore);
- msg.prefix(player, prefix_datatools, "New lore added.");
- goto("wait");
- }
- if(arg0 == "entity-name") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/datatools entity-name <name>");
- goto("wait");
- }
- templist = living.near(player, 3);
- list.remove(templist, player);
- if(list.getSize(templist) == 0) {
- msg.prefix(player, prefix_datatools, "Too far away from an entity.");
- goto("wait");
- }
- entity = list.getIndex(templist, 0);
- name = string.concatList(args, " ", 1, size - 1);
- name = string.replace(name, "&", "§");
- entity.setName(entity, text.new(name), true);
- msg.prefix(player, prefix_datatools, string.concat("Entity renamed to ", name, "§r."));
- goto("wait");
- }
- if(arg0 == "name-visibility") {
- if(size != 2) {
- msg.prefix(player, prefix_datatools, "/datatools name-visibility <boolean>");
- goto("wait");
- }
- templist = living.near(player, 3);
- list.remove(templist, player);
- if(list.getSize(templist) == 0) {
- msg.prefix(player, prefix_datatools, "Too far away from an entity.");
- goto("wait");
- }
- entity = list.getIndex(templist, 0);
- boolean = list.getIndex(args, 1);
- name = entity.getName(entity);
- entity.setName(entity, name, boolean);
- msg.prefix(player, prefix_datatools, "Name-Visibility changed.");
- goto("wait");
- }
- if(arg0 == "frame-hide") {
- if(size != 1) {
- msg.prefix(player, prefix_datatools, "/datatools frame-hide");
- goto("wait");
- }
- entity = player.getTargetEntity(player, 5);
- if(entity == null) {
- msg.prefix(player, prefix_datatools, "Not an item frame.");
- goto("wait");
- }
- entity_type = entity.getType(entity);
- if(entity_type != "item_frame" && entity_type != "glow_item_frame") {
- msg.prefix(player, prefix_datatools, "Not an item frame.");
- goto("wait");
- }
- entity.frame.hide(entity);
- msg.prefix(player, prefix_datatools, "Item frame is now hidden.");
- goto("wait");
- }
- if(arg0 == "frame-show") {
- if(size != 1) {
- msg.prefix(player, prefix_datatools, "/datatools frame-show");
- goto("wait");
- }
- entity = player.getTargetEntity(player, 5);
- if(entity == null) {
- msg.prefix(player, prefix_datatools, "Not an item frame.");
- goto("wait");
- }
- entity_type = entity.getType(entity);
- if(entity_type != "item_frame" && entity_type != "glow_item_frame") {
- msg.prefix(player, prefix_datatools, "Not an item frame.");
- goto("wait");
- }
- entity.frame.show(entity);
- msg.prefix(player, prefix_datatools, "Item frame now shown.");
- goto("wait");
- }
- if(arg0 == "entity-hide") {
- if(size != 1) {
- msg.prefix(player, prefix_datatools, "/datatools entity-hide");
- goto("wait");
- }
- templist = living.near(player, 3);
- list.remove(templist, player);
- if(list.getSize(templist) == 0) {
- msg.prefix(player, prefix_datatools, "Too far away from an entity.");
- goto("wait");
- }
- entity = list.getIndex(templist, 0);
- living.setInvisible(entity, true);
- msg.prefix(player, prefix_datatools, "Entity is now hidden.");
- goto("wait");
- }
- if(arg0 == "entity-show") {
- if(size != 1) {
- msg.prefix(player, prefix_datatools, "/datatools entity-show");
- goto("wait");
- }
- templist = living.near(player, 3);
- list.remove(templist, player);
- if(list.getSize(templist) == 0) {
- msg.prefix(player, prefix_datatools, "Too far away from an entity.");
- goto("wait");
- }
- entity = list.getIndex(templist, 0);
- living.setInvisible(entity, false);
- msg.prefix(player, prefix_datatools, "Entity is now visible.");
- goto("wait");
- }
- goto("datatoolshelp");
- @human
- if(size == 0) {
- @humanhelp
- msg.prefix(player, prefix_human, "/human ...");
- msg.string(player, string.concat("§6 - skin <name> §rSets the skin of a citizen"));
- msg.string(player, string.concat("§6 - equip [bodypart] [itemstack] §rEquips a citizen"));
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- citizen = player.getTargetCitizen(player, 5);
- if(!isCitizen(citizen)) {
- msg.prefix(player, prefix_human, "No citizen.");
- goto("wait");
- }
- elseif(arg0 == "equip") {
- slot = "HAND";
- if(size > 1) {
- slot = string.toUpperCase(list.getIndex(args, 1));
- if(slot != "BOOTS" && slot != "CHESTPLATE" && slot != "HAND" && slot != "HELMET" && slot != "LEGGINGS" && slot != "OFF_HAND") {
- msg.prefix(player, prefix_commands, "Not supported bodypart.");
- goto("wait");
- }
- }
- if(size < 3) {
- equip_item = living.getHand(player);
- } elseif(size >= 3) {
- arg2 = list.getIndex(args, 2);
- equip_mat = material.get(arg2);
- if(equip_mat == null) {
- msg.prefix(player, prefix_commands, "Not a valid item.");
- goto("wait");
- }
- equip_item = item.new(equip_mat);
- }
- citizen.setEquip(citizen, slot, equip_item);
- goto("wait");
- }
- elseif(arg0 == "skin") {
- if(size == 2) {
- name = string.toLowerCase(list.getIndex(args, 1));
- if(name == "farmer") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYyMDgyMDYyMjYyMiwKICAicHJvZmlsZUlkIiA6ICJkZGVkNTZlMWVmOGI0MGZlOGFkMTYyOTIwZjdhZWNkYSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEaXNjb3JkQXBwIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzEzMTA0MWI1MTlkZmIyNGQ1MDU0ZDRkMzViZjQ4NTlkNmQ0ZjJlNzczMTZjMjM0YWM1YjhlNWE3MDJkY2FiNGEiCiAgICB9CiAgfQp9", "rww+2EGM/HewD/19pK8Z3DdkJZm1rbzTWTuEfUvthK0pxNDPrZ+vQ1z4ilCuw4kHiLGedq65CQg1LKfE4mbTC5y/iHoqiVFz23slu69PNp8w2g0atH3/NmpUI1DGHv2DCxZReNtaHR9pAU8wVAafdk4bK+qlcoYCVEjQGfG7QvrHpD+T+HoWOzdmr3Wd4Hcr4c8NSwNSpJev5MtqZSE4KJFvv9W6/gFRy7jDvHY/W/XDz4mj9S34jrUirfslDJSnmEPhazNlPFXiUvTKftD+GLDbGSar2QAi+9iuPX2iKOkleGpzO3zfKXcvwF69fWIxFBx+6GR4mbA+dCCpxOgk5XVgr/swlzbeIL62+so61r2bvLEsvTGfkhv66yZP5hKAtHgbCyuqNP6l3FOfrOsQms42uqAkzPuKpYA5tjLH1FLL/zFr9f0VkPTrqyADJDbpV8MhxuAYwzaUsO5p2UI5AbA+ZQDSj9hBVC6ULGfiG89kExEvPGF3DXuBbboZN/nYw4oycnL0yYcaIS2CGQPJrs3pioFF/lhCJtCcP0nPfChapQyWu9/x++1pZOzLwe8cV+5bzFy17HNBYI9MyjbWm1vDaFWatZn4VGijSbJYYhuLhu59oBjCuWmDp7r6l3iASMyyHWhCajsPTxxI5eOzbhGJ1VBZ1GKvRzDMg5W6VGM=");
- } elseif(name == "fisher") {
- citizen.setSkin(citizen, "eyJ0aW1lc3RhbXAiOjE1NjA2MTExODU0ODcsInByb2ZpbGVJZCI6IjkxZmUxOTY4N2M5MDQ2NTZhYTFmYzA1OTg2ZGQzZmU3IiwicHJvZmlsZU5hbWUiOiJoaGphYnJpcyIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTBlMzdjOThhNGNkNGQ5ZDQ4ZDliZmEzNDU2ZWI5ZjliOGM4ZjU3OThhMWVhODc4MDljZTc2MWM4YTk3OGJjOCJ9fX0=", "gPKKLdqtSrO9EbjX3CfJA/wPUlWZq4Jtuvq7ha/BhHMoMOPFUmS44EtpUjeQXvV/d3lDWtYdWZnFgaKdpTu8EC59/pwuWixw702ZdN0ZwXonN37gZuBQgVkhIw+C5Zi5ZPPMVGvxDmA1rQ/ThDgC0SXkRdICi7Cq91oUiKd92wMd/ZEczhUuId2nQeilSybB8+P4+412j3XzZLZi3jwo1yCXQwtVWF7WGNnxudkwY+B1CI649tGntAgOKIlvF+gsLUBv7+fte6q9kS9USZ0FRK8ymH72JoE6bFUHG4+cEmKr8IpDny570GBl5ZUiy+vbTyOI+JIuYeix4o4xmUyeYunw0+RsQiZ5+NF59QAdtTpP2XUbh9G3GaZTT/5t82AQFrKCMg5EF/znNhLO5U6c0lYrCTEYkmKhL4scJwjxgbhrKVQqosrrKx4LnM65HI+6bJK/6l+7Q4aQxzCYeUfmWEVZDxf//Na5+kKX+fibGx8+xYjR+YuevkHw25Pf9NJk1489eRPrUp0WMt7AJNvbR4rbFpH/FZVOZ1RF/jKcNh1cS8JFvgnUSo2ues3riJ5A5WtHhb8C+PwqypCnLvgb6EMh3PnXObpWo6M28JZOhW/BrF4Q0tAnx6XLvTcGecKaVI6rVjxRUQET5xW6BMdNCRsva9BC5yVDTVHvatv1M5M=");
- } elseif(name == "baker") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYxNDcyMzU0NDIwNSwKICAicHJvZmlsZUlkIiA6ICI4NDMwMDNlM2JlNTY0M2Q5OTQxMTBkMzJhMzU2MTk2MCIsCiAgInByb2ZpbGVOYW1lIiA6ICJHYWJvTWNHYW1lciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZjVkZTQ4ODJiYzBlZDNjOWY5N2RjNDBiN2RkZjdmMGQxMDk3MzM3ODUzZjQwOTFjMmYwZjUwNWE3ZjZkM2E4IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=", "K42itRnrloSmCnA4JkVbRMpd1SK11xVjERFyDnDzE3fo+vnhfqumXv1bLFfgDbm6M1pHpSnB3nIHVGiFfHAnPAzScqgr3cvE9QTZRB81utbXZKfs1AyavpbikkoGgwv8zplxVJvBTrYBtFkt1TbNgndkqM7iJY+Q9OquL+WCa1LPJfquXI+0oRMlhJ7pTw7VddxFLPvuqHtGOXiaBi2da0pfM3M9sfZXXerlIpAC6I2oijo8psOJ+/gcdLMlzriCRkB//iEJTYP9fSsZYBWKSN4j4WEW+yvyMZZND0FZBVy5Ee11AEAbEgxUekvsyT3kiE2du9MXErG4URY4Mwvp7AtBZ0y0l4OR4dP23O2ioOqFTTV7DBuHPQmYvaugkSWwDMbiuY2a1N7m6X4wZPSWUTXqvHd2VO12Y+1T285AizxC4qZ7r1oNbpwpUZvZ+x3QF7cGhcqA53WJvYtypr9BYqvzrGduql/kei1I5kyynlSoTExjgwKN+j0g6TDdXf6ty9gzdDN0Y1DyUmk4xlCniSm7HaoSUKkk5fF1brApC216MzB5v9/cZDQAXDnjpWFbtmWALx5ueMhrTlEMnfbIIJfFnhRgmqYiS3ilCsG7I9ObRTR2+4eTlGnInR2TBcSHv8PcIW/vSIN0sOPTX3VHrlpc5kmW8+gc8J4dEt7yYqc=");
- } elseif(name == "priest") {
- citizen.setSkin(citizen, "eyJ0aW1lc3RhbXAiOjE1MDcxNzUzMjgzMjksInByb2ZpbGVJZCI6IjcwOTU2NDU0NTJkOTRiYTI5YzcwZDFmYTY3YjhkYTQyIiwicHJvZmlsZU5hbWUiOiJIaWRkdXMiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzU4MzgxOTdkNzBhNmQ2ZmYzODk3NGExYmEyZTM1NTJiOTBjNjRjZmE0ZGFlMjI5NGNmMmRjMTgwMTY5YzVlOCJ9fX0=", "ryT6EeGTuOOtYW0XiBszxWTI+CxwfVrkBfB4YlnPwjGyPjHAXzOmnZh8HKsBMHD5APd7zOEkU829E8uL8wJLmRjiVHKldOphQee44ZgNN1Y/8RymneghYEs7HNLyB2g4hEzHl7HWOCq1R9sNUUlWRAkREpHo4LzzGSP6+hcBHjS7Y+SYm/QTnwmUoSnhakijBWi8/dA9Uf37g5hyXdRUKbLtySoD/bMWkZlUgkmcl2ErPYl3E87Zt+4VGCP9lfoWE9zhP+SrXgdilXFbGYECpkDMyXqcVx1VjFmqG1zpdalfimWeJ8gwRwWmJWxU3g97UGJ7g/Wg7Kn2Ar0rkwx660pf4syESRJKx1MmrAICUxoj1CpLlZOcDhoDvFTqvcGSmo7gdrTk1qEdTq0oHfMuaJRFjBwophK+z0YOO4vzyFadB6nvtmBvT8TDSfp0hxsIzzPpIQ7B0BBdpqwklavktDPMT7qcR1pXpbh/7EhN0OcJtOXjzNH9Bjmd10UWb5XZmtO65ICr7Q947Wd5JezabLMR3L3CNSXPerSCcvxFMdx5s0Io7SNjvk38rranOEHdsG7Z950DclmbftIr0JlySSZt+PmKVOlvMFulOo9oagHial6S807sd5tziQ9Y/tuNpAYpWbtyEYSBmp8+ydhUyTsbVW0qSS8uY4Mqr0aNaWk=");
- } elseif(name == "alena") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTU5NjIyODQ5NDI0NiwKICAicHJvZmlsZUlkIiA6ICJhMjk1ODZmYmU1ZDk0Nzk2OWZjOGQ4ZGE0NzlhNDNlZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJWaWVydGVsdG9hc3RpaWUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWUwYjJmNzg5NDZkZThmZjg4YzFkYzI2OTkwMTgxNTEzMjE1NzQ3NDZmZjg1ZjQ1Y2U5Nzk1YzZmMjc4NDNiNyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", "kDLavxU1Et/E6Gak3MaUHsqrH91LcQyxNUy1hG8Vr/0CL4uqWXMYFT1SP9VDrkPbfnzpqQIDG7uTfEsIwrMS0fpsMugdEmlwXv4Omcc+4j6VYT1BNvchNrxyvc4otsY9fTjMHfyxvmTB2yjUQdlJEjHPKw17cbH2lpFgEiNi1SM+V+IVHfg/gXnEufjYaTek+3uNd6UUiukc6S6MTeGcstJ3qJh5DUk/PJKWqapgoVqBGFmFoyqPgb0Ns2LEqvKPJc+uGvB6FpUPLYkqC+8HokYnBTxAFOF0803Xh4y0E17I+GckFGJsa2EP40g0oj2aFnua+lchAU1d0B8RkN2u0yD4bqELQjjxLj26qnDvl6V3aJ00KD/BCIiaPMxfyYKI5BFceFRYU2qwNX83LorkFIzuFDhRtn1jyYn5fDGN3CtSdQ60q733N3jXA14sUntrKiIEUrwu+HN2Qo2765skEiXoBMc7blHfgh0RFt4g/S021xd1gyid7ZqftG5TXeyvGZQH3XuQcdZ6o1nB8g2mnT1w36wGaIcUdCV5VWD9YxI1zjbNKeAONpHOFmgZxgJpJGaaYqJeJe4KgtPlxM6WTQ6g6U60bG14IZ5ZRfbAggb3jOaTYAH0tIahOaKO9/2POR+hRVIQ2lpQE7iOsPWQOoBIV8fy8pQMhsvWuqKcrww=");
- } elseif(name == "butcher") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYxNDYzNjQ4NDU1NCwKICAicHJvZmlsZUlkIiA6ICJiNWRkZTVmODJlYjM0OTkzYmMwN2Q0MGFiNWY2ODYyMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJsdXhlbWFuIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2YzYjU5ZDQ0MDNiNGU3ZTk2YmYwMWY3NDY1OTQwNGI4MzcwYjI2ODE1M2M5ZTExZDRiZGY3MzIyMGMyZDk2MTYiCiAgICB9CiAgfQp9", "KZdn6The3tg9YLOu7uiZxrHLqL+K7IIFmP00b4F4qrKMu3AGqZ4NuFDN0ckWkrAyAyj/NwK2nQLDHVwvqNdmr9QRgdZcvV8PIj+tHZL7wAi+wgPVcaYQRUo0uHpNUKxVj4qe+FjChw5DnW8tl0me2t5TbsG6qEaKhXnBMZfI7mFNZZ8/rC+vBgvTm3VgZ2stb2hsdH+eCnQH2iOVvg8iwG9xvMBGKyRZ/8ORYYO5V8EEu4xpMsjQvw6/sjGg0ceeJTBBnN++7App1CiRh0iAkbeJcxolllNiNfdk8kLkrApHMwdTbs7y+8N8DxoBZ+WauvZxmEuYpR5TMSde9EDJMRtS/kESqVEdmjblJDMbBhNSB+io/16tq5EgxDwu2RPqaze33rCB/9tJtP8h6/MTWAXDirSxqFV/5sPtOaDy+QHfkZlsGfRW4nXFxLh3DRBI/SE8CGN8FQ4/6rj/Np8KLcgLFBGwyqNRo+o0jBVBGIISzhCIp5XeYmn876mYGU8bCBOJX0ICPJxsirsSbLwZ/CoN/zR1Zc/LpkSRi0loQbprFkQTJ2qqkPAyI30x/eo7XMBXZGNeX6LeYcp2WJsDaHtqRbLszfSwFnePB06Qz77rg+7RJ3Ef/H6bx4Rp8eLwLfz6gguo+3zwEth3Kovo9Lu/AhGM8CMT+oykH9g6a0c=");
- } elseif(name == "girl") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcwOTA5MTI1MTkyMiwKICAicHJvZmlsZUlkIiA6ICI5ZTA5YzM4ZGUzZTY0MDA2OTAwYzAwZTJiOTQ3ZTQwMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4RFRPTUFTX1lUIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzdjODRhMjE4YTMwZGY2MjUwNzM0NmI2NmJkMzRmMjIyMzZkZjkxYjE5ZGM5YmRjZTdhNGQ0MjhmODY0OGJhYzYiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==", "h3c7bg2JO7gacUy8hc0iZOcs9z29xbYokKGnH6JyPwQ2JXDa1jFWmsIm/lC2SKJpKknvUNzXuNHBavjF4j0PVHpu0iVTkSruIjoMn1H20jN7vVqaTsojZGWk2050d8+zctWg7gUMx33pa1VwP+4DKU6QQ7/yaxdZKnIPW80UAm73eukiLx9B+GIlcHPfRcVHs4ee471l1d5pupSv7VAUI2ZSkzYarUfhZnXshaqIgD7LuS4PkdtiBNS2Qm/9vZ6fkpIGLIQrAlT0fE4j9T6qLwqtff43x6YfsVMpDL9Lo5MCaphcGoAo4txsC47MX0L19xbtnd6doQTmpLTnxivlLgaPyrzA/c1oeC5JujwsNGthq2CqHdzVPDAUQDADf8BrfYKrEd3DskWVZzGg7wzrdUfJPYPHkkqFxhPm0SAPwPOVJp33RhpzjkXLsae45QN6/UEcQaSi0tIxltSWfeAK5f6/3zixk/SES3fSpk5oHvTaJGVWs/lGRaE0AFAqwrWvp5yTW5CU4rmTrAFWu0KtkW4sI8Kur+xwKry24FQF6h+Luo26lvaXVo7zGCtl94zm4LuMBWNTq0RgLWc5Zj6VvW4vGIybPj2/fQwoJIfodqawxzJjVguSiRzF2AxwTKoMtAn2guDfQkULsRat012oU7qvyJWhi1HLm504am4PxkI=");
- } elseif(name == "mason") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYwNDQ5MjYyMzQxOCwKICAicHJvZmlsZUlkIiA6ICJlNzkzYjJjYTdhMmY0MTI2YTA5ODA5MmQ3Yzk5NDE3YiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGVfSG9zdGVyX01hbiIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85ODI1ZTk3NTZjM2VhNjZjOGNjZmEyZmU4MDU4MzRmNGZhMDVhMGY0ODc0NTY3NTljMzY0MjcwODkwNTE0NzZlIgogICAgfQogIH0KfQ==", "RLLeCZVT2zj4DhvrVl4fTVy4BdjyK02tTX5u3PT0gNcbluSRDNUjwG+G/HttDVtPpyQuVOq/8aAFT/xdu+BZaiI3q3830BWqVe+CbSJuHorHPbPskJRV8+L+Ra6rJLA9LJQh5li5EZCwiAwqBSQwqycIU7032xjtoPjfOXio0gAnqKLffTEc2irDq4KzZGH9WZjYJrEfS9eCkQ1780jl96oEordJT940G/mgiB+XZdg1RQs+YuDprGvX1ILVZluoN+SFWji9l3aPmktwGoP9K5NDJr1Yjqqtr0QcXUvB3bqs4EDeYe7+NXCtE4eW1bupr22dKO9EERyrL4oOm8K1lgmFRupeSH66R0Ny5Io8NrscZSSH1XZncnj6SZfYskJWRNN//F9BxM86hL0MEPtloAB9o0oJWLyoaXszMb1iJC9RKbvK3c2nAdyjWtcWijRA5muEZszzOX5XngHlFPAYWDI33EuTvqbth3GqZ7kid24Zly6TQbSCrd30EiNTeXYTJ1T5Fx1GRIzEYW+60qf3f2e59SlcBf4D7eA4btIaCAvfx2bKxbZQsdsHKDphpxsr7nizA8iRroo37nBiJ97gYUF2GsL03bLuge4cFLROpb4oaKGyldPZ4cHq33b8sbFs0eQUiS9selDsyx8G8MrvKfhYACpjyBv+ZLlWa+QMF4s=");
- } elseif(name == "mage") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTU5NjMzNjk5OTgwMSwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9kZjBiNzBmZmQ3NDE4N2Q5MTE2NmUzYmMxMTQzNTI2NTZmODVlNDdlYTNhYjcwNWI5MzUxMTkyMzJhMDA4Yzk2IgogICAgfQogIH0KfQ==", "eUzFSAiEth5qG5VV7uqbbfQln2QLJ6hurw4RARJ7qFHZaRqUbJLiqmkplcuCcb0ViZgBlU/zn+GIdJlZHGeifO7CdH+R3JX8d9F7gbg1Xg6eNWCGeadirjTi9haSBoK97pqAOsYRNd8FNKTIr3OGuQYXPgapgIt2A0W8N/vR8bKhdnHYV47UyzqEVEdMKYTN8w5Uq7Zhj8ZTvzWgrg83BX1WqaVpkdZN5xRcE5MQzuCL7s9ZsgSXeKbrWBXdn/yNqRbcdK6ymy1rCqWXdUkHVKOpJMBLu9NIjeUTm/bwsEufNZ6wvaNHoJWg7jFgDCzy0s/7xvxicbyxbFZHjABOtqu2kUNSMfSD4DZYiMrO3DesIQU59t/XFI4cfnDkR5OEcInkjg5XOJaU/h6kpsDqcP559wnqvnPjqSZTgVuKPR0sLi20mDeOqVyK2ZxEV26ihnknofVrObLPmE0yyzgb540/BPAtqNVKHKLZUb2bv3BG5CLbOPqxut+X3LcDZNICdj8jzGeTNcndPzPn/a9n+Jqd2+iqjVa8tTeh+2VodK5j5XBl5/Ym1tTiD3ZPDOd+6AQfDrvDJBJN9t+MczXldHON9pMvjZgODGsKIJ1KzRplXYjdsftNdi/SUv6xV/iG4+qRJqmkbYCEl7oQvELljAbkcUVIViTOSNgFNX2CVD8=");
- } elseif(name == "banker") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTU5NzMyNzk4Njk0MCwKICAicHJvZmlsZUlkIiA6ICI5MThhMDI5NTU5ZGQ0Y2U2YjE2ZjdhNWQ1M2VmYjQxMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJCZWV2ZWxvcGVyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RlODk0Zjk5NGVlYjQyMjU0OWE2NTE2YjYyODg1MGQ4MmY3OTJhZmNkNzVlY2U1YmQzYmQ3ZGE4M2M1YzkyMjYiCiAgICB9CiAgfQp9", "WhygM8rofUCUv4GVMrSl7tGxMUx/jczsz7lixaGhZbDJtEzKTAQFY25TZBjMvxpFqLvwOfbEWDRn1wOjof5dt7CwYcwnBfrksHj1lkpp7oh8omUbdnA0TDZFLdSAvmvtViRFaH+neH08jFfl+XLx5BnfY/6XimxKwxPKBZnvAc1DlpubiBgHXmPKYigRFAKCPgHCf9cDRm6jDNyZTYgPUJElBN5TIHREponJhE4pMDm8qOkidiUsrfqjHYZvl767sLA1QA3HPHZKtvug6xSve9X/2n6Fr3dvhNUI0dqj4EtbJkSPD7uCUgIvtx5nN1iQXjXWgEEVZ0JnA1KMCfjfjQRx2nEOqe9OVwADvIIbE+Asc0qw+Zas1Ys+AP5rBH5qT8Lmh5Wi2Bn0yj6zEk/iluTbkmnzMVdICnBKVUF4wdLY/5vvxe1+abZM2xVQ5eoPoyyEsD1wYc9c4Uticpe3A+jy8p8+a7FfAPVILfV6MOhkQ0S5FCpEIj0DbSbBoNnDBODmTYpBKrouYNI/IZPnwBsKluy0zAgTJ5lMM7bptda1BQaJKpA2kSkCTvADQ72kwFoBlfhOluwvfvgTBgI8rnVNAfSu2sEIC6BhdaOG9iqocKRYL474zbYMPWW1Z7fF3jrsEWWTa3+swN+8K89XeLv/jHUqwfx+3Gb5YG8ZGX0=");
- } elseif(name == "lumberjack") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYxNzE4MjYwMDgxMSwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8yNDlkNmMxMjk2NmYzYmM5NjA1MGM3MDgwYWNiY2JmNWI4MmZlN2JmNzA0MzdiZTU2NzJhZjk1ZmVhOTA1ZWJlIgogICAgfQogIH0KfQ==", "ChHGtuNconaz4zViNV1NAcq5xlpyaQ9aiiXVj5h55yE9LOtSCIjLmq/xIDZIlAdno8kg6mXQ1RYF6E1yJ3rpCWh0KocHQT/WQHcr9v3I8k70+XGyF+Ad0U0cIww954PM5gznSeWD4XrDQxaKf9IgsCNTl9tI46NvaMUxW/2L4/VR46lU00cowlgS7u3JNWueIsKrMjgfj5pt7YVqiE8DZ3DHlc7VCpdZk6Ku1HIGDLoPziawtgrJUVppFumAPpfSxwz4Gr2OnnH1nd2aS1E7oYtU7+dw8BzDMjNRNiyQm3o1SYcVTyUf9/0TVeYfD0KqvFhF/9Yf2c8hQBB4qQ8VmEH1wlLrAjNsBVE92UwZ6D7lI0MZs3F8WwbQh+d/jKtJxcZi+GzAPTIt8A+pVNee+/mAM3VDg/6tJtK2jQtgYZYRa/RyTumAAxb9OxsxDg/j2Li0DNGFHue1oEAySmKwQg+wOWT9kujDLGMje6bYLqO2+S3wGAyskcVp3snt5LihYDNsXVtp7ZkD6Awgs6YptmTa23o2+XvB8vO64QqmMuBX/KyPJtv6T0ZxR4KTFKeCXe21Za0boEdolMVYRHjXsCZJ8m/zqIu8/3r1ALuSpbVApMv7PoGtfGaXWtSkHKu8LjY+btgfnooeLyjaLHn6ltJzTdEoooUzsj7JqKK19no=");
- } elseif(name == "miner") {
- citizen.setSkin(citizen, "eyJ0aW1lc3RhbXAiOjE1NjQ2ODc5NzM1MjUsInByb2ZpbGVJZCI6IjVkZTZlMTg0YWY4ZDQ5OGFiYmRlMDU1ZTUwNjUzMzE2IiwicHJvZmlsZU5hbWUiOiJBc3Nhc2luSmlhbmVyMjUiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzViMzcwNDljYWEyYWQxMWE2YmYyZDNlMWE1OGZhNGZkN2FmMGRmOWVjMWI0YzE3MGJhNzkxOTE2OWI1ZmE4NTYifX19", "dKh3/RXSPIFbC2l9yucxL/qtZXiDyTvir+xoNCHsDkR/SUr89oocDtRALXdnjhG/P9Je0nppU6UOpwlKl3o56nX8v8up6pqM95Z2KXMP+9/zq2ty/8k9zqVMlFX2HOVYbuTBFG6xmNTPWqELdfN46spCiIYAhhLLI7g4wpMtTw6mOuG6R9Kn7odGXKawUSBuVByNy8yG1mKCQdUvq+Crp/BU75fdFOARRlFgCiu5m4HPrN3o0bLgiRqHohHxGgt+8qF6t/7RGpDJCXN0gLy5Vt8qdYLGk6ZHCgmNEAUATX9QSGhU80dwTGgpENRt/hyyTUnGI8yT1OpbrLErs3SSiAJ9DnmMsMpfV8aNUQOG0t7Ki1WH3TcSqfWgD6kV6EDJNf1rMCiTvrcUYP5Bkm/K+QdNARuac/VIaFlmno16E/i+fy5uhNWU5MjAjCzcp7A7HWIqqkPAjX3GyFMNUSyBB56kcz+4/er3W7+4eykKE5K1xURqPIy6MPnuJtAhvXh2sea+nsggdpe8PXbFqmifcmo+7w7pxOt3aPuv3hsQXZi8LtwjaPAm1v442jQqg/VBFSZ6OV1Me49PWp1fieRNj/wniCuBjSdwQ6DKVfPKBFzjhxo4yXq4tdGkpZfSPn0JWlSGi0rjq49fVbK7ZasqIBGGvBL8igXE3OCR0I2nuw0=");
- } elseif(name == "librarian") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYwNDUzNTM2MTcxMywKICAicHJvZmlsZUlkIiA6ICJjNTBhZmE4YWJlYjk0ZTQ1OTRiZjFiNDI1YTk4MGYwMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUd29FQmFlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Q1ODA2MWRhMGVjMjk0MTcyNGZhNWVhOTMwMDBhYmQzMWMzZDhmOWM0MTZkOWI0MmJkYTRkODEwZGZiNmZjNGQiCiAgICB9CiAgfQp9", "jLahDHyLmgUsNIWuIG53/xh71HcEPWVTA6tNH+cBFy02GZIbtwZHMKaVmOf6BIt/V+gvZlPyspcEpgDxlRmBrv55dahoHBw3UwfD4B3L9rmaSchazltaRYzH4e2AZcs/NJ5VOwI0+uBu6MPqqjg/3uv4dZ/GZ8zG0wcbNr990EIlTa6Nz6tG/x4XTQNBvQjlDoacxe9uqfiunhckTQmuVbS+aHzmvQY86pU7kDs1+ZZsjSj4Q1iTHj5qTOjSTltB7DKBWaBlcWc8/GfT2T8nWjyvgC6cHoS8z1XbsiHRpsOEppqQfi1sgZV3LzbJxNVrokQQKtZTHIreS+HVsGkmM+4giBRxsqvJE3sXw2xKTtwW3W74/K+sCJkAHJSdZ/v//n6TInqVhYVRzKXVz62qMNYpZo2LWt0jCTfIcfK8Z4o1sp/+6ec4s5Z2WC6F7Qk4WClQWhRzBsHT3UyXMoodLdP6G/WN2G6ENGdUViplM+IAMQL16FbIvjLZXICbjL1CIbnwn+4e0eO4EbVIuUxex7wGziWLx4EdXilZkrDNOZv6pU4qkflBjG6hxP+6OvhSQYQzJ6GTEorScFDdyGnEE5NxPXFjbBC1368yh8ukSvw4znfVnNV3UrwnuFMASc8FHw4WWwJqZ8xibwbq2TQnvpsuuZC/bRgXruM+QBm84MY=");
- } elseif(name == "dark_mage") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYxMzg4NDI0MjQxMCwKICAicHJvZmlsZUlkIiA6ICJkNGY1ZGQ2YzVhYjE0NTNlYmJiNTg2ZTU2NzVkMDUyZSIsCiAgInByb2ZpbGVOYW1lIiA6ICIwMDAwMDAwMDAwMDAwMDBQIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M2NmQ3N2ExZTlkMDk0ZDI4MThkYjI1YTViMmQ1ZWIzZWYwOGQ4NTBhOGUxNGNiZWE5MjZlMDNhYTI1MTFiNjgiCiAgICB9CiAgfQp9", "nwOMBhB4wmZq0aQXOe38+ekT716r1YSIMVs60F/OrrNQa+vIWlDPSRZFeTjIkAQr5d1pYl7YlVmiXxgIzJGLcZC5LyvihVgEwseAU8CZdTXSfQBu7OJjC/qrhGZnfDuw0fliSBx6S/hFaOjNWsMTbuESqNRbYUzSx0BjuGDeicrbXHme9tsI2/wTfERLuWnXoeruKyHKNy+j7cQ+/76Bpk1KoQmt2pqxv+o7KGYP7EFl1FpsPDZY5/nWT37r2KrFj0e6+kPy1w4nth80dgBN0da8KceW/ykoHXIDkgVr0xZu3eXpI0bl9LT3rROf1/W1YAiA5gABLU22sZTuBBZYMAbUVuXiwUBlbF2T5mEBNKHQF/1wO+q7oNR9mojVgBggBE4aqMrgNWpx5Vdc1cEmlPVmgt/27w880uPuWW51Ri2JCOdLg28ZY0RqLAIHL28j6rqoum3HLDTWLpEZ+9iAMNJ1toJgN34Ni5C2hSzo7SCLn5I4K5Z/jKfvFJKhF1mkt4yc/Rezl+T9z4FT9qTLfvSFTwsAbQRefnCTqYkiDs7I8WFdL1wymjkqgK75oOE3VWb7fASqpHBMpX9hz09nemx7x4lsHxquj0mctidNhDcrIMiCe0BMqbEoDCgil7iUaiMtGqz8U6KBaWR457XIABL8xThhOw0unNknoau7q0k=");
- } elseif(name == "santa_marv") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYzNzI4NTI1MTMwMiwKICAicHJvZmlsZUlkIiA6ICJmYzUwMjkzYTVkMGI0NzViYWYwNDJhNzIwMWJhMzBkMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJDVUNGTDE3IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzYzYmMzNzczODg5YmRlNWFlZDA0NTliMWE5MWM5OWI1MTI4MDI1YzVmNTEwNDZjZjcxYjAxOWZhMTY2NWEyYTYiCiAgICB9CiAgfQp9", "r4SGS/TGW7tlibNTq4+uKg/v6oNc5eDD3BLbxIzcppll2tA9P4Za+16X968sgXQhrddNfdAh1zDui43WoON2Jrer797S1JzkddddISMiBq8CpjlUX77N6GvBOr5pBGgMKd0qLsDJUQF5Xa5FNun+ymwh1D57d0pb9eD0zNPIfD4V3REC1a9in1SHkoLfic11f8vCqBZ/oQ72eZ51GMYK1HWNSelCPGC1YQOEYI4WOD8suy44jRTrKO68cvmiizRBYykhJPP7Oqmcy2dOwXnDncif2vEEvTQVFp+uHolguIUOvKXy5lX7JIrZXsEgDaUHIAkQtMjO+9mH+qtkg2tniVTAUDFxQSdkbUY7kDfv40NipbiYgLyA4p+WPXr6BJyWGX6CCI8I71u7yUjOTH8pUt4OPVnGYUG0mT9kQO8P+vJIdW+Thg63/cTDHXmf8v+TDEdB2lyvjSdVeFD21C+MXXeM9yAWoZ370P1aLUar7dVUCRREpSBNpLFCo0wqpy1uiNYkO107LXD5wduxQJL1nQHVlym8+cvc7TyoRwEk7z6fL8NU+K8ijG/i9YhEUVPusCNhsbD33vJe2huroYMFx2DKHm9NeyTsTPsUmTu23bO4fZqttTdQohngbWYiDx0y8rDxakErF/gV4Ms38GVM80dAOde3dQpu0txYqGnPHxw=");
- } elseif(name == "smith") {
- citizen.setSkin(citizen, "eyJ0aW1lc3RhbXAiOjE1ODM1NTQzMTAxOTQsInByb2ZpbGVJZCI6IjIzZjFhNTlmNDY5YjQzZGRiZGI1MzdiZmVjMTA0NzFmIiwicHJvZmlsZU5hbWUiOiIyODA3Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS84NDQ0NDQzMjlhZWM0OTYxYTJmMWYzZWNiYTBmYjJkZTE1NDU1Mzk5MTFmYjFlODA4ZmM4NzQ2NDNlNTRkZTY2In19fQ==", "qBm2/mxwTcJIEu8r13WohKEiByJQAx1K+5ciGEZQ08PRHbA0hWvuJfLWcAdOERsPARFCAhfzUZOjhOlKr28CNwTYnP7gTf6njP8Q9roSkwGSAH5PDH4mkiS9zmZQwYUJVyzn//srq6XsASNzGFq2ChgRZV+yGAVJFeSFpHAEnhQxhsSM3xltUo37aRjWNI4wlVSqzzQh+oJvB6IDWR6evrK1sNHByhX8/UNcx+XYL6PqN/51g16gJNmhppTu3YFj25dIBSiUTFFGViNMf7eAYrRS36ZkyUHlvAiC8leIOvC6cwtGGngOG6Vun2DtVI+9xyxqQhQURYIl+DrFt1cqSLDfEDVosKsfh3f5ynxaZ61fBZIz0hWxHmWw40SV+1wgfh0XD6jsusdXk/rf9zuRInhAvx/9cBnUNELfDfTeFmpkaZFo2LYwBawcKePVj7yqNborJ30mcyApO68mSIVzYLxO0aKfjRQYzrJx452iBRu4K87DbwvyLPowTzWrBh3HDUXdG4/Qn+W7eR3n7UYTFDeZUXURq6tDX8NEEj2giiBzonlkqpTECAXufabpHo+JvST4L97WKLP5omsKWyzVYTVILBn1On54gra6ZZwga7j+r3o67CQfOh8qDL6ZRoNRA9nBkUZzgjzHcfUAbUsqhYgkBpb/iEkqU6VU2Nc/+tA=");
- } elseif(name == "casino") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTY0MjkwMTQ3NDQ4OCwKICAicHJvZmlsZUlkIiA6ICJjNTZlMjI0MmNiZWY0MWE2ODdlMzI2MGRjMGNmOTM2MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJMSlI3MzEwMCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZTA3OTQ3ZTRhMmNkOGQ1NGVjZGE4N2ZiNTQxNTViODQ4Zjk4ZTE5ZDE1ZTBiOTVhYjAyOTAyNjEyM2JkODM5IgogICAgfQogIH0KfQ==", "H5PIINevEBYikUEDiKw388RE5pxSp07y1LidOW/uZJbBUXFCQoUWZTh3faR5uL51T5EXxyVWbiZD1LA14S3vIrtruW7yR+keJYGw5PCQDWaPi8Qq41wwtQ01GXnGviWIqrJ5CGjHBbSQ0jpfZ+wSs48rByKfoS35SFeYdPvJeAODj9Sz1BBrJ8D9hW+n6w721RkAMGtYHSDgjcjzB1on+li78RvSKa3kUm2jqU5jNdLURHoDJe5Yg3i2vfXGtHdspC6isgH5KVe2prwYlosanun0XIYc6L99u2deN88rF55IXWsE+12cVTzaMDj4/oQqFvyfd92TgCNmuTJvwQKG9bLyt8IXgb/E0sRLN5ymZ0gUIju1ZXeRYDppnxWiZlLV9KK1zpGQ82gLTtamfjpj7z3Sg9N51t3BhGCZ98Y2Rn6UDGJ//v/h0qm/tNP4trQEFp2qGpYW4hM/0sSHA8KvJlfGrHv22JboVNyOlXMEENpcp8KTpJfAD5mpYoLKM3CWFFN/yReTkdTFs3L/qvv1DtNsvunNqAd0NTwD5hzQoigt3Diq9ZyLgnmzCj6OISw6RQLMkdNNpeBgxorXpCJM+mqV5RmPQwU0EhTlnJD0RC8HfqTOmIREJ/aczd3DJ7rMiJpDaPqOpMnNetQR6m85k90pcDHY08UqB4ZfItChL9I=");
- } elseif(name == "anna") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYwODY0MTkwMTQwNCwKICAicHJvZmlsZUlkIiA6ICI5MzZmMTA3MTEzOGM0YjMyYTg0OGY2NmE5Nzc2NDJhMiIsCiAgInByb2ZpbGVOYW1lIiA6ICIwMDAwMDAwMDAwMDAwMDB4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg1ZjVjZjBhYjIzMjBjYzYzNWRlMzk0ZjI5MGQxOGRiMjQ0OTQxMjE1NzgzM2I4MjBlNTBlNWI5ZGY2ZjAxOWIiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==", "EqWlrWpzfw/O8/Z5Lzw46lfSoEXERZT02R44zMSHr/2zzKBOmCt4kkl3COwNfO5Fjpc7el/4YbJya3ZBpmiLuJzPgYVtCt0cWmbxK7NXA2662yFq2Gsr6JX7NweQ2B6vZ573nFIOf7o/bMp2VI0BRRqPDsAlV61A1QS/aGYLJo7Yoz4njBRVYqVnAOXxUz8ETTSSfwxRHZSzXsvJVlci2yCalGcbM8dlGqgC9jRvZ4RjEFivCM7ICZGP9pJy555yOdMQvjkvxhslDNMvgpBR1hHBZA93yhjcTIGjErhIy/YwU9X0rpT9VEVjhQuPP+DBmJDrxj2IkyAESKvrRTG6ziZw8XlbCcDz9Q0Ao9GWp+wRMzntNNeFkMi/oVmDgh2pKFgdD2OGlhpl01286Ixcvw3XU4pQYmkq9khqomwvwjxomE0H52IjHAiFn+fEdVEw5n1ZdKJsvHHs/brqgohpKE5s8C+Lh5KDy76IfCOeiQcbBgpDdm2P9XeiuVkjZX8Sht+e05/ctPQpNXh5jgyjvREbKzbisztkZWzEnYI+uCa15dIIVkS0gTc8kJYX9ZQ6Q5IMUPPVo3R0etWfJ2jVI+M947rtEeJ9tRKslVA1H5MmAh9mndYkbFrMwzS7BLWbp4lhU4L9EsoUpHvf2IxInuLD1sauhGjJmTLtibs9tu4=");
- } elseif(name == "diver") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYxOTQ3NjExNDAyNCwKICAicHJvZmlsZUlkIiA6ICI5MzZmMTA3MTEzOGM0YjMyYTg0OGY2NmE5Nzc2NDJhMiIsCiAgInByb2ZpbGVOYW1lIiA6ICIwMDAwMDAwMDAwMDAwMDB4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzJjM2VmZDUwOWY0N2YxYjk1ODdkZGNlOGNiODU1NTY4Njg2Y2ZhZDc0Y2I4ZWU3YzUxNjEwMjllMDRjZWU0ZSIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", "qjH2cxOet5xXuYr6lBX9f/2oXrDez4UcYiMoxo45Ocjd6xqwncH2hfHESmQBtUtfv7pOIf+dW901N6B5qWuA1uxuDLeTC5dTG/AQ3NJUTJQ6AtiRZ49EVJ1OkexYFD3G31+USLGSrqhvsMzHN6a9gtRD3xbLCezCivMsVA02FXNaHjYylTgOc0vPs4+YdMi1pR4NGgcTxxsE1g6felZCxBeh3oy5DIOSdDjFq8xl6y6Kejo/kIyppl7dzK3DDcC0KxR7A3ukfMcDc/OA84kZlqqYf9or9MoztJIA+W3AIAH0vwnG+2feNjojHab/Z2jptqS3tlgnEV3j3cjbiB6LeRDQEsfg8/V/y/agzIZbTfJx92QRyfEPsoIXgYfb5OtOLuU9G9q+EIVALo9KRXXJLCpeOWj+/sgoDtLnG6rMdx0jyStwstTjCgV3kAvVfpvS5gTXrQl5qAIAepB04I9XgdVIxQppK+ZmLTCKRPbXj5P5NUc/f+BjsAFPmxP+0X9sWkamHbahyjj1tatlaMJhLAPzxLYSH8d7/91ZOGzcQL61d21w4Hn0nOCSI7y5HXo/O/tvJYFSEWj6DP5ZOayI14csnEfTAGS4kOCOCedabqBJjJuGfGlTatJWAdqJIBcEtXvun1oN4f7b42wvtwv/vmpuIVH4aAeUXdGKhOi5G/c=");
- } elseif(name == "mage_assistant") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTU5OTc0MzgxODcxMSwKICAicHJvZmlsZUlkIiA6ICJhMjk1ODZmYmU1ZDk0Nzk2OWZjOGQ4ZGE0NzlhNDNlZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJWaWVydGVsdG9hc3RpaWUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmE3ODc4MjIxYWQ4MDg3ODkzNjlmMmVkZjRkZmJlNWU5N2UzODJiNzZjODVmZWIzZmQyY2FkODgyYzk1NTJhNyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", "g3Ik0BT6M5jeFf7dHJ4hlLSJdiC5ivPcAb7gFP9+tlzH72N3eYrz+irExxpGQUsiro0NVEmlNt1R8aSBcY/wQDdLBOy9LHHt5MNpja72DDlFJUAW2fpXwJgfnCmqHDXzmVu3dfwyE0efZKOscFQzJQ5zbIGrEXjA2tOqEI/ZZMNehF5pNJZnusjGIpE/Abn9PxafnX/rvZAWr0BCip4wCUGbnfbDHlcn561HW50CAE8k3siqc+RJXXbnC24kYmblzuSBcHw33nCHRmlUiddyhzOE6NoWiZu9kNecOAapZmSZXCGMxyfwdy2n2Yg7ydxM8WTO7LOG1/o+ft/Ag24YxtHFkE6T2R03LvVYCTdodLzVQbXLqqMvGYcM7A6b6TPaHkMZhyumfH+GRoCI8kmyDEIqHrDbZOYhTyrpFBdz8WOOj1e5oz8nXQODMAC4ZEccj/5JishwPXxRdc9YFBkPJ63lJNN4boetMTdhDe3xe8tp8CoeNH3CaMn8eN0hkwmzXKx4I2qQPIO4NxW+bhJ1U6+qp8M0yllI2mRpZrTmTIhGHfq3nxJtUU+JcLMIaYiItnKlENH8vRP2UZrGq6SxiK0tE4A4wKGitXK/BAljLoUFLx8a+B/rbnmK8lqpWofaMeTeFw1W7m497ZaT7d3HLL0Jb/OR1vhP1NpJKZYhaLU=");
- } elseif(name == "mage_guard") {
- citizen.setSkin(citizen, "eyJ0aW1lc3RhbXAiOjE1MzEyODIzODEyNTMsInByb2ZpbGVJZCI6ImNhYjI4ODVkMTUxNjQ1OTNhZmI2MDkwODJlOTE2NmU3IiwicHJvZmlsZU5hbWUiOiJGYW5jeV9MdWR3aWciLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M0M2JmYTY1NTMyNWI3ZjFhMTE5YmQwZTYxNGM2NWI4NzFiMmFiZWFlNmI5YWZjOTRmNzJkZTRkMjRiYTAxODgifX19", "XkwrwdctRApUCGLH+sLKu85AlcL+hpNicYzKdjGhlUVuZ+qR4K5q3hdL0K5sivm2iwWXRQfGizgwOqyBEORJ4V0/EnTYBy/NheE4/Y4Kp1Fy/5+fVrktCRRzb2ha1GFUiq0VL0KvBo5zGeQTcibVn+KSw9mK01SQJK7zN/Rz9SSHIdJvj6D2Ckmqodrxo8LOgdrzkP9iKdgpAebG2fii90Uw38M5RMG/n0JcmnGFS1qKeQHIxNvdzqi12DJzLUoZ7FL+DS4JyX2fAZwEajCfS18zXZRNZ15b6Ba7hW35D+nEHtNM6AlHz0fHevaAnFpWsA3Q02sw29/2mUUSYkEVSbBz/Yf2EYOhlzzpCQnrHW9qqotS3bOcolezr6NEgmDp96THd6h1sIKrctVINzAUgBA+3EQbFVscTLkQEtcXkImuB9zJuErEJTrpzfYVZR72zSLZq0pElBFYs5mwArEGsDlqmWWKL0rHZ68rXMNdMYcZx7NjAjdQ6TTTVGxGngp/KwY3B65sUMqk57jQYSdvbaNnFUoBgJsO2SxQwO989O64WhuQcMRgLQ90pksgQXLnCUnZ2Er5uQGDGZndQF/EPpS8xNCsNu2iOHw9VbrpSDmYmTjBF0SOgNyV7k0xcYydksIv/rrDhWF/A073hKBkvnSpPqKIdJtYR0bmHUFGP68=");
- } elseif(name == "notch") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYyNDUyNjI0NjM2MywKICAicHJvZmlsZUlkIiA6ICIwNjlhNzlmNDQ0ZTk0NzI2YTViZWZjYTkwZTM4YWFmNSIsCiAgInByb2ZpbGVOYW1lIiA6ICJOb3RjaCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8yOTIwMDlhNDkyNWI1OGYwMmM3N2RhZGMzZWNlZjA3ZWE0Yzc0NzJmNjRlMGZkYzMyY2U1NTIyNDg5MzYyNjgwIgogICAgfQogIH0KfQ==", "K76X+5wYgbcKhUxr5ZJuF4MXquYNPM5ypUf6DdNz2k0+XaJlobLVVdETe2LotlHyj6ABoU3//8mGZnfwhdj2BiulOErpB6cQR4pMmIrW6T3TLCt4L8d9juQy7xy7Dw9sQngXWm2h3Cazm+205qa0apnvA/i+IGv+WeutP52kfGhJBAN7uBUQaut0NWBfFPL8Jo7DhwBvWf/KWVpcT9UcVQuS/dVP/VE0rrTTSf3x2/jGI0ksBEdOz5lROARCHwOA1sRDvP1nQHhZD1Uekj4Bmo6rsAjJCrzr++nK2IcaPMv1uTLv0sbsGe4JF884rqWHYzs7/Cc5lGv8FNy+QjHmTcISfjnlxwJIkI48KOmAjuaova+tU1gBHRFHqJR186Vw8gtIGHusitFr6rUuutODaHyJ1C9VnItyk5RF3eznsh+uUHSkT9NOCTAhx11UhaFjlIHgqHG3rRVmeFWyEKHE8Pk2yEAlROGPedp+oYEwMFbM97Q+og7W/RtSH+kYl9vNwpLrQEG2F0bQUtulwQrWzk8T2fKgPHncZIDS2YvQjrrHjjlG0bLbiakHGvRrMrLbrVtmQrKjOjLuc5j4M/quMoZpFz98q4uftCmNOyN9ZmoEjgFv5fOdsJDGJawSaug9VEieCWhuuPnXPx19GpT1TRzGRjDW9DqO08kNeCcRxq0=");
- } elseif(name == "oldman1") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTU4OTAxMTIxMjA2NCwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85YWZhODBlNjA0NTExNmEyMDhjNTBiOTllZGM0MWE0Yjg4MTZlODgxNjAxMWMxY2Q0MGYyMmY3YThkOTZlODUyIgogICAgfQogIH0KfQ==", "AZP+lLAvazx7YRzKtNYZ2y6gxfkxvyJce7LC7O0Q3BOKj80kbBEgOmA3m2yDSOJUm6hLlGND8nIReifHua0I1xkajnoUfBQmiptyGNby+LIpwORn4RHtes80fe1ZFbzg4icXDknRetINlMnGw+QAg/m+cKpP+ydpBoIOONz1EWhV3sEOpsxIKns+HVxJ4XBFvIy+bCGGylJFtqSK1z6Z2cM8Y//Uv4p1nN+71N3OI7RPuQiG4/8edaYce7ufxmbGc8wROnm6yjRLS749D5XG/z4eppe9FjptkY0S2m6R5JDRZ69kziI1VmKViSBbcrNTwOnXuCtdCvbALRy77QsO7pJvg2RvHXPi9lz+c1/lKiHq7Xy2KncmioBbC1Jap/5lJW094HrLf35kYmbav//8TWA9itUJzhdik+NfU6r1Q7wPeNG8Z8hZZ5ELxK+G5BCJqxsJTFdF23tkp7KoA7yOuNdtPaay48h1pBpk66oIo6ump5ON+KSNSPJ5IM5hn6lwy7fQ+IzTcLgeeXU2rs7ju/vIcVhUat/UvGl9oWKnFB7bhaJARNRIwrWTg3OiYAC9GMHOvoutYQJyJVmJ46gA5D2uwUwvtkphDR3bjuX9RD/7/b2qRtpMszgkx0j9alO2pK4ZTV70MbX2QX38ghLaXu1HAPshSRSp6Ox5V2gJb0s=");
- } elseif(name == "oldman2") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTYxNDA4ODgxMjk5NiwKICAicHJvZmlsZUlkIiA6ICIyYzEwNjRmY2Q5MTc0MjgyODRlM2JmN2ZhYTdlM2UxYSIsCiAgInByb2ZpbGVOYW1lIiA6ICJOYWVtZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jM2ZjNDJhNGJiY2EwNTk2MTRmYjZlMGQ2NWQxMmU4NTFiYTM2YTA2ZjAyMzVkZGI2OTlhNWE2ZDFhMzgzNmMyIgogICAgfQogIH0KfQ==", "Ucbd0D4Nb8lGoZ9UF3A5yi00IfK0O7YcBrHO7osRimtISi92dhkKThJtjq7ibXf+8qu1a7wWrwgNpFHLtz5g1vcbJfkuzfHxuRQN+jcZIZt8skV+vujUP3eS1wezQATHuvhA3wBztn3UuTl7tCZXFEoq/ywcWN9qZH3QRljnWu88VOXHKtoBrkMPHO3t7BXaXyRMl5+wpkzWdSJIYD/wXop7yys78R2e6MAiPeKBsr+Bh5rNUIsUSUi80vAo51dH3aSzY0LW43m99UG1P9w2U56IfqJetpvrTVHm1xwNoyHcyQGXSeVlTXJkpCzFHdOlT8L5Pi6EbkyozxKTod/gH3PzhpYMlVCsqs/c3qBHma3GmL5+mppCdrulQnY5jkltIkp1wikXxneo3tRAIWpTVDrSFwhjZ6TLD/hL8By5i/xohgmpTFXl1rQZVJFoti1kd764vLDZyuuswXe33txS6+gV2eA6XR2DUnOpcoFcLF4kx10PubtSt32WAKDShhv6lu/f8ciYMNjk2ZBR1PZ+meeIqW9n10T5x21JRbDg3bUV1d9kd0wuliuBeEu6/2D9sB7c1JSQ3NtShacQHEHMr/2xBrE3beKd/MKNzWEjAkZsitiTuobWrFvb9gK6jxgfdX1CSXc6x8iZBeyMrrGYLj221SHY08CDMkoGvqbXfBM=");
- } elseif(name == "oldman3") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTY4ODY2Njc5MDMyNiwKICAicHJvZmlsZUlkIiA6ICJmZjQ3NzI5YmQwZDI0YWYwOThiMTFjMGE3ZTFiMGVlZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJtYXRzY2FuIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzEyOTg5ZjMxOTQ3NmQ1NDk1MmUwOTQ5ZWEzMGIyZTQ3N2M5NDE4YjBiOGFiOTc0YmU2YzFmOWYwMGQ4NWMzMTYiCiAgICB9CiAgfQp9", "inFYrkbI1KbykFuDWprHxnDRpaLxOYuQLUC/w8mFMR8/joqRyBkqAOgnt4PlgG/KrBOYLwSgQ4VZbqkzGXTcuX+FkJAlXU0jNY6/GAyX686YhjP2OACXCE9AzUMhoWHHhNd5zlBNef3RGei9jIR7bZdJmGBfp6zNHT9ZGHGBBy3kFhmpg6wEJ3zSF2YnWAvAlZ+nxSbNMkn+Zb/hwIGV0pRjFKLX59ubS6wYZYeduxNLJjM9VcP3SZDu1YK4hsyo0crbFtX1GIIfUKgKvqGyJMsx2tmgbzPuSfcObaLBYWam3okcIkBsf9zqvhp/qY9jHB85+F1NZhx7axR53oEgOnv90n3hLOTKI01we1nSuFirg3LiOeH5rteEfCFuZVpb2/WrJ1JqF+0dwQU5H0qEuRbSgJlR2BYv7F/THs69MCB0wlfdIX5IddUhJj7n9dcHkp38YkfP595SGDhdcCMZvZL1OYOUMwJ1qhaXZLhNTSIZo1jnLtsqpUbk5ny78E/u5oyyRrvJAMf+6N8Gjx5S7JLpSgM2TX1rmiGe0GS9HoLF+Gd8sbe2A3gJJxPR1P2R9Q1HXG7opYEPPyUM2WCdzfg8kKpaPUfX5M3Kudm7rjPCG+2z3krbEbtbYLchFwpUn3wmZwybX9R/Xzv3HsI0mzOGk+WgxBRY804L1UGzVpo=");
- } elseif(name == "miner2") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc0NDU5MDcwNCwKICAicHJvZmlsZUlkIiA6ICJiZDE1ZDAxODA0YzA0MmIxYmUzZmEyMWRhZmI0ZDE0ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJNZWwyOCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8yMzU3ZGQ4N2JmZmZlNjRhYzllYTkwM2Y3MjlhOThhNTExZmJjNmYyZDg4YjM4MmE5MmViMGI5ZjhiZTdkNjRjIgogICAgfQogIH0KfQ==", "F8DMxRODIh1ODYumldhr3KxwuOmVB3sKR9CAZNjn/ZFZIZo5GyRVexH7ITY1FQovFf9PCVyVMbQwXv6Xw4Hpsqp9ZokFPB6sT0fVjg4TDw3lygsEZJoKQacb2RDBTnTl8QgTXcPHj14jIw00KO9qIeC+nSL0FyunN6eC/Rgj451lvzynUZniYtLLvQK+1O+K4egqh+cpL2yC8svTpbITz97Y71RY8l2kxKgyPZlrvxFE2ngwitntSKCU8eOd/pDycqsc/VywTutL7cQgrFBg+S/JWoz8uY4Fn7jyuG+3aeEbJ/MUPv+RZ2/Zr+ymXlVJAjNj3Gs4q1N/rzVgq43zciiQZuYX0EnxzTtrygET/vyUfqWtsCuzbwS4W1yt2sixqKZVC3CXFA4UUVlwN0ZGrXMijagY2vgUM0CuxRTJTKE1dDN0Ztlj0WsIdVpa/n3Qlk1Kww0Xf5Qk0ZAxddT9CPRNDRNy3nRrD+eAnnOCIyWiCVFQG6xVtBJQoZNFR7k4SIUkPV6IvEszDuYQOMSz0TLNJtrDDmQGg+Ya+LP7BmtcRUzV7ReOPRjdIw4Yn0O++uPvBrizDg5kQSwd8zQLsbrXLSby3+rJxdrfk0950V2NZz/3BDSesUY3cwgII4YJlM9tIfp9djeiwpoOq0uNRETKeXMQHC94f4NaKpUWjjQ=");
- } elseif(name == "marvinius") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc1ODE4NDAxNCwKICAicHJvZmlsZUlkIiA6ICI5ZTA5YzM4ZGUzZTY0MDA2OTAwYzAwZTJiOTQ3ZTQwMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4RFRPTUFTX1lUIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2UyYjI2MWE4OTM4ZTAyODdmZTRkZjI0MWY1MWZlYjE1MTA1MGNlOTYyNGE4ZDhhZGI0ZWI5M2EyZDAwYzhjMTUiCiAgICB9CiAgfQp9", "CSsd1bBr7HduBUUIm4M4RJo488Qkv5rMMCQQqqen64yBK5S8C9aZJAcHyWZ14Hcw8JQ8FI033zpzou9odoVkUGKNfZxTAsEvMb6pMtECKtO6VpTyt0rh4WcJ3LTgRXpCtRu+lmKvucUQcFgLAgbbxa1F8PuGzsIfT7B9Nk/Z6Ps3XbGKftbtBbTOrWKjulR9lrFRhQe92U/fmh7VbU2x61icJyK7t/VxMW+GKn0fq4f+E1UPKIcXDqUSF6UX1SXpKPw/e/N6kZ2bgUoTrBaqPIT4Jo+W2OuqNx/jAmMnxaUUlGnHiEAno0f4yMDm6DNngweLMkgWpwWUrPYEuaTjZqWkdfpUmz3a9EIE8ZD5hUWiyRZNawQfFuGd3E3ZrjiP5cQzZ2xa9+wOfyqYNVGO9SB8Ip/Exs7jFAs1N4BChrcGgycDgLlLofeK8mqbMKuXO7jdAHBBiPbxtahegOn9YKAzeIdvRjAWy/B6pQx0wfnxpwWltSs4SNA/x5kZnunh1YqvdxkU3ACCRiNpIEzdiV9FJQhUoEUy0ziI6KPVrQZM8L4Qwv58zwtc9zR7rO/5dCsYY7JQghd+PqNJvShhYMXiKUYcfykKJs6vqlTGIWGeD32JrC/5BZRXTLiQgJU0lVV+qBq8HSS/r9co933pBhv5CQVmCrQlMm6rPo/z58s=");
- } elseif(name == "mareeeen") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc1ODMyNzA0NSwKICAicHJvZmlsZUlkIiA6ICJlODhjMjBiOTUyMTA0NTA0OThkMDU4OTA5ODVhOTQ2OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTY2huZWxsZXJUYWc0MjciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODVlMjdhM2NhM2E4YWY3ODMyYjkwZjhhMmE3MTRlN2ZiMDE2YmI3M2JlNWY3OGIwZjVhZDJhOTMwM2EwOTY3NSIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", "LUccDCWbqkNJ6s+4fSk39iBNaaN4M4w1jxRDioAOsGgYaWS+K9l55+SlWdDc7VzotE7m6hws/JM6h1uOt8LtIRcRHivH72GqRQXZmq2FbL7vv+E5O8W1tlJQlU24UwGLj29S5zEDEhBFXdXU5+5nK/83pVoYx01x3e8mA0sBikafpUYsvsR1jhb8Zw53LNYUvpyPMZTPKirQPvjlUOlAJhH7iVbhPMgWC/9QZWbRJ8T//MVJedvopPbg2v21SDwk6YvmZwo61RDTMkAwZsjkD5bBGOlvvbLcmk/oJPPLziHFoD2B09OZNWgWTZdbxnObD7iZMbhbkMWCE6HfyY34lwacrxtp1ssV2JWPcc2Mmp3iD3Mixlrp9fxWfNTbc0h25uIQWw9r2/3rsG845grQgh62Zem7pVWqi8S/Cfl7Y6a5wYfLiX2HrjHeoBQlZIZMAQPme5oT2zTTdxBTBwcyjn3vN76CVzYmhvWus81pM9X/1ZbgohkRy4Nge+u45EfZ5RvQXI7PSsaQiW4M19eULeDywPgSq0YTrRfjlvmZzv6hjH2rESjNSYvmUVkdTM1e+iu69fPqGXFShJXL9v7/KxzKwUpabO6rL+5oGzjCy/OVbZMVOIUgtPNTrmVbtsv+xg6QZeRXpSwa3OPfIEwUAKqhjh2EeOmworrANT5jWeQ=");
- } elseif(name == "sirterence7") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc1ODM1MzY2NiwKICAicHJvZmlsZUlkIiA6ICIxNDU1MDNhNDRjZmI0NzcwYmM3NWNjMTRjYjUwMDE4NyIsCiAgInByb2ZpbGVOYW1lIiA6ICJMaWtlbHlFcmljIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2VkMjI0OGZkNzA5MDU0ZmMwMTJhNzdlMDg2ZDcwZjEyMjA0MjU2ZDZhNDg0Y2E2MzIwZTMzZjkzOWRkNTNjMjciCiAgICB9CiAgfQp9", "Cgaoe8gmJqfeRFi/5yt9W6FlE3/tgcStT/yKVAQN6PABHfuIOS00AmVrTwn8VEO26bLhH5v4iqFDK0w3hDTLryA8wWY07n3ct++j+HZZk1f7oDlFFKIGtAYrAgzGIltrS1o3fMa+JQxwqQUfcbREaVdZLBMBfAjfCdnxk6Mf3XVXHaP+qDcMIfrZlrDzN8LPXcUgBuPLBYJ8/WLYn5g+Ua/iVupKYzdoS7r2Kwfg2EtoFGOoLEPLtZ3orrflXxCcAX0leA2oTQtg8UvxRBnoZUtSNxnFk77e2KpMPhC33tO1TFsUe9LNnCnQg+sZoE5VTqV4yEfEGXzh8SYcztO+SZHKeQSbm8oOfYWtyXnQiDVLIbyA4zaeu1aUlWEKEqRDieawJp3AxRTd25vskdqxO+1LG91cQGEYyvnJAmq8cUHetSE68TMgt1NWnn92cv8ZGP/9ux0JWgT9Yf8o0gblr3CRvV+QKRgFl7z8hvvY81T52zJpIgBQLCCSeNgvNDPmAtKwWTORWuxLc12eQO2tUf4AjdgFbBqUAhIKdGr+as92ai+NWyzyems2+4tohRXrRkTbytgYvsu23AIUBhvQdkh5CmASVgjXgzgzztitR2AHxQaq5sW23SSx1TKcDYjV68YU6lm+enlsrnnA1iOo3JxUdl6sciAEYEnIu3peukI=");
- } elseif(name == "eropster") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc1ODQ5OTExOSwKICAicHJvZmlsZUlkIiA6ICJmYjNhZTU0OTU3ODQ0MGVlODIzODJlMDY2MzlhYTkzMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJXZWx0ZXJ3ZWlnaHQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzg1MjIxOTc1YzYxYTI0ZTVkM2QyZjk3ZjZlYjcwYmZhYmRjNDJmNWZhODczYWM0YWI1YTcwOWQxZmZkNDZjIgogICAgfQogIH0KfQ==", "CNf2gpk+SxDEAqhEihbXlFWfclU9Oh4epq1piekO6P6xFvAmW5sayCslTaJw27+FQL32bFCWR+ZeqBswJ/bKLll24YItj1ag20K5xkBJXFInJ97e55rcbZ5hJ5wnR6+4pooBi6WLdxNTmP/Eb65dlY2thewhW2jqFWmix29Z8fYZsZI6SJ/Eyz6X2eEtlaMBcPLg+07NNfOY/fH8OHSxGwTvB+F9ZBtjCKh0ryaXPgdYfWqsTI0NW5h03pha/EIhQzCC0UT3vol3zu+iYduwXUtHLCGhRO4IC3EOEkGNNjG4+a7aorOqt3c38K0L8gfLNraMV2RHAIiMXorWCsm86pWWUdxNuTTkklbyaUAMT1ns1R5cHZdAIX3CYhDLnQL8ZqioovbNHuuQrpRpYjxguM1NP2/x6NDSilnUUzJQZ8ECg82gg1YEHt2OFLxqYWfxj4/K4ybEobCQ9qyTAc9bKvMp3yF5xpRZYvOTH0LRTsjZCsTWlkL+EevTsPn7zHnhCA4Eil6BIn1X7qD/Zbs1bkp17PK5nPMBa8zv1l6BvErX29BBvaBlxdSeErPIK8dqNAi42JqMVS/uTwT/a/AqHoq5k9jFvVXEz5zBtr3Xy0B9gWZqxA+2ZLayL3IcpBoapOPbIkSn4sW1b8/HYoFUjptRf8V0QtsU+V18MHqQ4U4=");
- } elseif(name == "mentormentos") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc1ODUxMTExMiwKICAicHJvZmlsZUlkIiA6ICJkZmU5ODdkZjMzZjM0YTU2YWQyZmY5NThmYTBmZmVkYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJLaW5nUG90dGVyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzNkMjNlMzM5ZWFiYzljNTkwNzJjZGQ4NTg1YjYzODI1NzJiZWFjYWRmOWQxZmFkMzIxZDE4OWY1ZWZmMjMzYWQiCiAgICB9CiAgfQp9", "aH7Wq8FQORkDi2nzTinPbRZX98F/yi62FZ4UHv15a42yPN9qIYs/jXJJD+7Vt4YHrB/bvtvzjNThTI2T6pzimFq7GXkrOROqOJfK2YL55W3UPM0jO3vB/g6bAaDUJMj7X4LtzIB46y/2FFSJh7B6U1Ae7riZ6NU+4G0/KmNNM63mNGcGdhiT25/DpOMurEjKVEpBRTlvSdj8dDQ5i9KsVFKfCIHvWwuzJ14KI0zenwrUzyqe3PDZyDZAodwCnk3ljKRZ1ifR44aoPes2P3tb00h/47gBzptJwdLLtINdUNS9v4euSVrDO1OJI0Gks3n+SN/3cOaRuqiXSI9xBkRrLxQmrZAsP+QjmMrywBtO0RsxNoh519f2GCw0aNl1p16MJP3Ww8AoQNrhm0ykXjF69TlZDsgOnxrc/N7Qr1UWcAFFmw6KEj0QKJNAStw5o92ZHGf3Wi21O2XzJB9rVkn4Z5VnITrBoubYEJK+qQv3lwt0gvIgPLfnu5g16AXTPttYsNcZ1Vq1xTZBAudaJ+6baCsjJSUmyKecP3sS0sNiHWCJ6gxD9o1o9qqmCG/NCuoHCL+f3I6ErhjCCp8pRA0DPI6mfuTB6XMSq2H5O/gB9nHPxmrsQNTcpiBKUP0HQg691zuY4GhRKgQp9NMocq77ADcz/EMT2m471iBrUi5/yyI=");
- } elseif(name == "kajetanjohannes") {
- citizen.setSkin(citizen, "ewogICJ0aW1lc3RhbXAiIDogMTcxMTc1ODQ5MjI4MSwKICAicHJvZmlsZUlkIiA6ICJkZTU3MWExMDJjYjg0ODgwOGZlN2M5ZjQ0OTZlY2RhZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJNSEZfTWluZXNraW4iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzIwOTBmNTM1OGRlOGIyNTZiY2Y2YmU5MzA1Yzg2YjE0YjA4MTJmMmFhZjk4MzEyMjI5YzdiNmExYzVjZGQwNSIKICAgIH0KICB9Cn0=", "lT4YppbKGCzA9knunjsxeBvjGRGzFB5yYN9BgHmNI+QC/Ls17o/sJdAvbCR0fsUnOj07NQeyePsTKgPpL39DRx2AdBC20iGXSvAKvvzHPljiMpEPipL7oHjQmgpOLJF3B1zdAseR2/ifhiKGsVOcBxBDpyLcLozcvNb7y5f8gLZHTNugw3kzHiXbv3RHqtL7844dOx4ZcvAxINd9AOP4ePnBYTslrLumNrx3pDkLYxcltEepqqm4ATyJvJ47q+Bc6BiUwHWaNIsG7bLVo3jW8Gapk58u7YQx3aXl7HgW/9hzainVEzgNvZ4NwWPFl5p1QYb7m+WFBuuybBRAbxOcb7LBhkXpWw+ncm7pAQzDjrTeAS4q4/xJ7V2D2YQcG1AqcTvvm0DJI89z3LqVRDF9J2ntvIGD0DGojB2XFR5G6ojpSK9fx+Uee++9PkwTDUBWZva6XjLqNqZ2znhlbSURqim35Qd77UhVOiznb1TfrP58zIMIDFlaP52/ny/p2GLeNa+gSsXS9ZIM4AYe8f4oEPOfeBka3DFN9TQRvlNptBt8hXSqdx5HkblFzkzaWS3z52yN+/dYvFrbnm9cLcdjtqoTuE49FWtxlKj6HDJFv6e8qpEmSTfJuxnnZPk0Q/uCQNrLa4XKwCapYey9Oa+H2mtwEbKXQb9kTnoVLf4PQUA=");
- }else {
- msg.action(player, "Not supported name.");
- }
- goto("wait");
- }
- }
- goto("humanhelp");
- @answer
- if(player.isMuted(player)) {
- msg.prefix(player, prefix_commands, "You are muted.");
- goto("wait");
- }
- if(size < 1) {
- msg.prefix(sender, prefix_commands, "/answer <message>");
- goto("wait");
- }
- player_uuid = player.getUuid(sender);
- p_uuid = map.get(answer_map, player_uuid);
- if(p_uuid == null) {
- msg.prefix(sender, prefix_commands, "There is no one you could answer.");
- goto("wait");
- }
- string_message = string.concatList(string_args, " ", 0, size - 1);
- string_message = string.concat("§e", string_message);
- message = getMessage(string_message);
- p = player.get(p_uuid);
- if(p == null) {
- msg.prefix(sender, prefix_commands, "This player is not online.");
- goto("wait");
- }
- msg(sender, text.merge(text.new(string.concat("§6[§cme §6-> §c", player.getName(p), "§6] §r")), message));
- msg(p, text.merge(text.new(string.concat("§6[§c", player.getName(sender), " §6-> §cme§6] §r")), message));
- map.add(answer_map, p_uuid, player_uuid);
- map.add(answer_map, player_uuid, p_uuid);
- goto("wait");
- @msg
- if(player.isMuted(sender)) {
- msg.prefix(sender, "§6Commands", "You are muted.");
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(sender, prefix_commands, "/msg <player> <message>");
- if(perm.has("msg.team", player)) {
- msg.prefix(sender, prefix_commands, "/msg team <message>");
- }
- goto("wait");
- }
- string_message = string.concatList(string_args, " ", 1, size - 1);
- string_message = string.concat("§e", string_message);
- message = getMessage(string_message);
- p_name = list.getIndex(args, 0);
- if(p_name == "team") {
- msg.team(player, message);
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(sender, prefix_commands, "Unknown player.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(sender, prefix_commands, "This player is not online. Send a /mail instead.");
- goto("wait");
- }
- msg(p, text.merge(text.new(string.concat("§6[§c", player.getName(sender), " §6-> §cme§6] ")), message));
- msg(sender, text.merge(text.new(string.concat("§6[§cme §6-> §c", player.getName(p), "§6] ")), message));
- player_uuid = player.getUuid(sender);
- map.add(answer_map, p_uuid, player_uuid);
- map.add(answer_map, player_uuid, p_uuid);
- goto("wait");
- @list
- list = players.toList();
- size = list.getSize(list);
- msg.string(sender, string.getSpacer());
- if(size == 1) {
- msg.string(sender, string.concat("§6There is ", string.number(size), " players online."));
- } else {
- msg.string(sender, string.concat("§6There are ", string.number(size), " players online."));
- }
- table = table.new("§f", 16, 16);
- msg.string(sender, table.getStart(table));
- for(i = 0; i < size; i++) {
- p = list.getIndex(list, i++);
- full_name = player.getFullName(p);
- if(player.isAfk(p)) {
- full_name = string.concat(full_name, " §5§o[Afk]");
- }
- if(i < size) {
- p_2 = list.getIndex(list, i);
- full_name_2 = player.getFullName(p_2);
- if(player.isAfk(p_2)) {
- full_name_2 = string.concat(full_name_2, " §5§o[Afk]");
- }
- } else {
- full_name_2 = "";
- }
- msg.string(sender, table.get(table, full_name, full_name_2));
- }
- msg.string(sender, table.getEnd(table));
- goto("wait");
- @sign
- if(size == 0) {
- msg.prefix(player, prefix_commands, "/sign ...");
- msg.string(player, "§6 - <FRONT/BACK> <row:1-4> [text] §rSet a sign line");
- if(perm.has("sign.copy", player)) {
- msg.string(player, "§6 - copy §rCopy a sign content");
- msg.string(player, "§6 - paste §rPaste a sign content");
- msg.string(player, "§6 - wax <true/false> §rWax a sign");
- }
- goto("wait");
- }
- block = player.getTargetBlock(player, 5);
- if(block == null) {
- msg.prefix(player, prefix_commands, "Look at a sign.");
- goto("wait");
- }
- if(!block.hasTag(block, all_signs_tag)) {
- msg.prefix(player, prefix_commands, "Look at a sign.");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "copy") {
- a = array.new(8);
- a[0] = sign.getString(block, "FRONT", 0);
- a[1] = sign.getString(block, "FRONT", 1);
- a[2] = sign.getString(block, "FRONT", 2);
- a[3] = sign.getString(block, "FRONT", 3);
- a[4] = sign.getString(block, "BACK", 0);
- a[5] = sign.getString(block, "BACK", 1);
- a[6] = sign.getString(block, "BACK", 2);
- a[7] = sign.getString(block, "BACK", 3);
- map.add(sign_copy_map, player.getId(player), a);
- msg.prefix(player, prefix_commands, "Sign copied.");
- goto("wait");
- }
- if(arg0 == "paste") {
- a = map.get(sign_copy_map, player.getId(player));
- if(a == null) {
- msg.prefix(player, prefix_commands, "Use '/sign copy' first.");
- goto("wait");
- }
- sign.setString(block, "FRONT", 0, a[0]);
- sign.setString(block, "FRONT", 1, a[1]);
- sign.setString(block, "FRONT", 2, a[2]);
- sign.setString(block, "FRONT", 3, a[3]);
- sign.setString(block, "BACK", 0, a[4]);
- sign.setString(block, "BACK", 1, a[5]);
- sign.setString(block, "BACK", 2, a[6]);
- sign.setString(block, "BACK", 3, a[7]);
- msg.prefix(player, prefix_commands, "Sign pasted.");
- goto("wait");
- }
- if(arg0 == "wax") {
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/sign wax <true/false>");
- goto("wait");
- }
- bool = list.getIndex(args, 1);
- if(bool != true && bool != false) {
- msg.action(player, "True/False expected.");
- goto("wait");
- }
- block.signSetWaxed(block, bool);
- msg.prefix(player, prefix_commands, "Set sign wax.");
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_datatools, "/sign <FRONT/BACK> <row:1-4> [text]");
- goto("wait");
- }
- side = list.getIndex(args, 0);
- if(side != "FRONT" && side != "BACK") {
- msg.action(player, "FRONT/BACK expected.");
- goto("wait");
- }
- line = list.getIndex(args, 1);
- if(!isDouble(line)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(!(line == 1 || line == 2 || line == 3 || line == 4)) {
- msg.prefix(player, prefix_commands, "Number between 1 and 4 expected.");
- goto("wait");
- }
- if(!player.hasBypass(player)) {
- if(!plot.check(block.getLocation(block), player, 19, true)) {
- msg.prefix(player, prefix_commands, "Not your plot.");
- goto("wait");
- }
- }
- string = "";
- if(size > 2) {
- for(i = 2; i < size; i++) {
- arg = list.getIndex(string_args, i);
- if(i == 2) {
- string = arg;
- } else {
- string = string.concat(string, " ", arg);
- }
- }
- }
- string = string.replace(string, "&", "§");
- block.setSign(block, side, line - 1, text.new(string));
- block.signSetWaxed(block, true);
- goto("wait");
- @head
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/head <player>");
- goto("wait");
- }
- name = list.getIndex(args, 0);
- uuid = player.getUuid(name);
- if(uuid == null) {
- head = read.item(string.concat("{id:\"minecraft:player_head\", Count:1b, tag:{SkullOwner:\"", name, "\"}}"));
- } else {
- head = player.getHead(uuid, name);
- }
- player.giveItem(player, head);
- goto("wait");
- @mute
- if(size < 1) {
- msg.prefix(sender, prefix_commands, "/mute <player> [message]");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!isOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player is not online.");
- goto("wait");
- }
- p = read.player(p_name);
- p_name = player.getName(p);
- if(p_name == "marvinius") {
- msg.string(sender, "§cSorry §b¯\\_(._.)_/¯");
- goto("wait");
- }
- sender_name = player.getName(sender);
- player.mute(p, true);
- if(size > 1) {
- reason = string.concatList(args, " ", 1, size - 1);
- msg.team(sender_name, string.concat("§cMuted ", p_name, ": ", reason));
- } else {
- msg.team(sender_name, string.concat("§cMuted ", p_name, "."));
- }
- goto("wait");
- @unmute
- if(size < 1) {
- msg.prefix(sender, prefix_commands, "/unmute <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!isOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player is not online.");
- goto("wait");
- }
- p = read.player(p_name);
- p_name = player.getName(p);
- if(p_name == "marvinius") {
- msg.string(sender, "§cSorry §b¯\\_(._.)_/¯");
- goto("wait");
- }
- msg.team(player.getName(sender), string.concat("§cUnmuted ", p_name, "."));
- player.mute(p, false);
- goto("wait");
- @kick
- if(size < 1) {
- msg.prefix(sender, prefix_commands, "/kick <player> [reason]");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!isOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player is not online.");
- goto("wait");
- }
- p = read.player(p_name);
- p_name = player.getName(p);
- if(p_name == "marvinius") {
- msg.string(sender, "§cSorry §b¯\\_(._.)_/¯");
- goto("wait");
- }
- sender_name = player.getName(sender);
- if(size > 1) {
- reason = string.concatList(args, " ", 1, size - 1);
- msg.team(sender_name, string.concat("§c", p_name, " got kicked: ", reason));
- } else {
- reason = "You got kicked";
- msg.team(sender_name, string.concat("§c", p_name, " got kicked."));
- }
- ban.kick(p, text.new(reason));
- goto("wait");
- @warn
- if(size != 1) {
- msg.prefix(sender, prefix_commands, "/warn <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!isOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player is not online.");
- goto("wait");
- }
- p = read.player(p_name);
- p_name = player.getName(p);
- if(p_name == "marvinius") {
- msg.string(sender, "§cSorry §b¯\\_(._.)_/¯");
- goto("wait");
- }
- title.send(p, text.new(string.concat("§c", player.getName(sender))), text.new("is watching you"));
- msg.prefix(sender, prefix_commands, "The player got warned.");
- goto("wait");
- @ban
- if(size < 1) {
- msg.prefix(sender, prefix_commands, "/ban <player> [reason]");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(player.getUuid(p_name));
- if(p_name == "marvinius") {
- msg.string(sender, "§cSorry §b¯\\_(._.)_/¯");
- goto("wait");
- }
- sender_name = player.getName(sender);
- if(size > 1) {
- reason = string.concatList(args, " ", 1, size - 1);
- msg.team(sender_name, string.concat("§c", p_name, " got banned: ", reason));
- } else {
- reason = "You got banned.";
- msg.team(sender_name, string.concat("§c", p_name, " got banned."));
- }
- ban.add(p_name, reason, sender_name);
- if(isOnline(p_name)) {
- p = read.player(p_name);
- ban.kick(p, text.new(reason));
- }
- goto("wait");
- @unban
- if(size != 1) {
- msg.prefix(sender, prefix_commands, "/unban <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_name = player.getName(p_uuid);
- ban.remove(p_uuid);
- msg.team(player.getName(sender), string.concat("§cUnbanned ", p_name, "."));
- goto("wait");
- @tempban
- if(size < 4) {
- msg.prefix(sender, prefix_commands, "/tempban <player> <days> <hours> <minutes> [reason]");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(player.getUuid(p_name));
- if(p_name == "marvinius") {
- msg.string(sender, "§cSorry §b¯\\_(._.)_/¯");
- goto("wait");
- }
- days = list.getIndex(args, 1);
- hours = list.getIndex(args, 2);
- minutes = list.getIndex(args, 3);
- if(!isDouble(days) || !isDouble(hours) || !isDouble(minutes)) {
- msg.prefix(sender, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(days < 0 || hours < 0 || minutes < 0) {
- msg.prefix(sender, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- endtime = time.getMillis() + minutes * 60000 + hours * 3600000 + days * 86400000;
- timestring = time.getString(endtime);
- sender_name = player.getName(sender);
- if(size > 4) {
- reason = string.concatList(args, " ", 4, size - 1);
- msg.team(sender_name, string.concat("§c", p_name, " got banned until ", timestring, ". Reason: ", reason));
- } else {
- reason = "You got banned.";
- msg.team(sender_name, string.concat("§c", p_name, " got banned until ", timestring, "."));
- }
- calendar = time.new(endtime);
- ban.add(p_name, reason, sender_name, calendar);
- if(isOnline(p_name)) {
- p = read.player(p_name);
- ban.kick(p, text.new(reason));
- }
- goto("wait");
- @ping
- msg.string(player, "pong");
- goto("wait");
- @plot
- if(size == 0) {
- @plothelp
- msg.prefix(player, prefix_plot, "/plot ...");
- msg.string(player, "§d - info §rReturns info about current location");
- if(!perm.has("plot.moreinfo", player)) {
- msg.string(player, "§d - list §rLists your plots");
- }
- msg.string(player, "");
- msg.string(player, "§d - pos1/pos2 §rSet corner points");
- msg.string(player, "§d - create §rCreates a (sub-)plot (Y: -64 to 319)");
- msg.string(player, "§d - create3D §rCreates a 3D (sub-)plot");
- msg.string(player, "");
- msg.string(player, "§d - remove [id] §rRemoves a plot");
- msg.string(player, "§d - expand <value> [direction] [id] §rExpands a plot");
- msg.string(player, "§d - name [id] <name> §rRenames a plot");
- msg.string(player, "");
- msg.string(player, "§d - share <player> [id] §rAdd a player to a plot");
- msg.string(player, "§d - kick <player> [id] §rRemove a player from a plot");
- msg.string(player, "§d - leader <player> [id] §rSet a new plot leader");
- msg.string(player, "§d - mod <player> [id] §rPromote to plot mod");
- msg.string(player, "§d - chest <player> [id] §rAllows a player to open chests");
- msg.string(player, "");
- msg.string(player, "§d - raise §rRaises a plot to a city. Costs §610 gold snuvis§r.");
- msg.string(player, "§d - sell <price> §rSells a sub-plot");
- msg.string(player, "");
- if(perm.has("plot.moreinfo", player)) {
- msg.string(player, "§d - list [player] §rLists all plots from a player");
- msg.string(player, "§d - moreinfo [id] §rReturns more detailed infos");
- msg.string(player, "§d - listall §rLists all plots");
- msg.string(player, "§d - flags <flags> <boolean> §rSet all flags to the boolean");
- msg.string(player, "§d - move <value> [direction] [id] §rMoves a block");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "sell") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/plot sell <price>");
- goto("wait");
- }
- block = player.getTargetBlock(player, 5);
- if(block == null) {
- msg.prefix(player, prefix_commands, "Look at a sign.");
- goto("wait");
- }
- if(!block.hasTag(block, sign_tag)) {
- msg.prefix(player, prefix_plot, "You need to look at an empty sign.");
- goto("wait");
- }
- if(sign.getString(block, "FRONT", 0) != "" || sign.getString(block, 1) != "" || sign.getString(block, 2) != "" || sign.getString(block, 3) != "") {
- msg.prefix(player, prefix_plot, "You need to look at an empty sign.");
- goto("wait");
- }
- sign_loc = block.getLocation(block);
- plot_list = plot.get(sign_loc);
- amount = list.getSize(plot_list);
- if(amount == 0 || amount == 1) {
- msg.prefix(player, prefix_plot, "You aren´t on a sub plot.");
- goto("wait");
- }
- if(amount > 2) {
- msg.prefix(player, prefix_plot, "Multiple plots present. Not possible.");
- goto("wait");
- }
- plot_1 = list.getIndex(plot_list, 0);
- plot_2 = list.getIndex(plot_list, 1);
- if(plot.isCity(plot_1)) {
- city_plot = plot_1;
- sell_plot = plot_2;
- } elseif(plot.isCity(plot_2)) {
- sell_plot = plot_1;
- city_plot = plot_2;
- } else {
- msg.prefix(player, prefix_plot, "No city found.");
- goto("wait");
- }
- if(!plot.isLeader(city_plot, player) && !plot.isMod(city_plot, player)) {
- msg.prefix(player, prefix_plot, "You aren´t a city plot leader or mod.");
- goto("wait");
- }
- snuvis = list.getIndex(args, 1);
- if(!isDouble(snuvis) || snuvis < 0) {
- msg.prefix(player, prefix_plot, "Positive number expected.");
- goto("wait");
- }
- //Sell Plot
- x1 = plot.getMinX(sell_plot);
- y1 = plot.getMinY(sell_plot);
- z1 = plot.getMinZ(sell_plot);
- x2 = plot.getMaxX(sell_plot);
- y2 = plot.getMaxY(sell_plot);
- z2 = plot.getMaxZ(sell_plot);
- length = math.abs(x1 - x2) + 1;
- width = math.abs(z1 - z2) + 1;
- high = math.abs(y1 - y2) + 1;
- //Change plot settings
- plot.setFree(sell_plot, true);
- plot.setName(sell_plot, "Free Plot");
- plot.removePlayer(sell_plot, player.getName(player));
- //Label Sign
- block.setSign(sign_loc, 0, "§3[§bFree Plot§3]");
- block.setSign(sign_loc, 1, string.concat("§2", string.number(snuvis)));
- if(high == 319) {
- block.setSign(sign_loc, 2, string.concat(string.number(length), "x", string.number(width)));
- } else {
- block.setSign(sign_loc, 2, string.concat(string.number(length), "x", string.number(width), " (Y:", string.number(high), ")"));
- }
- block.setSign(sign_loc, 3, string.number(player.getId(player)));
- msg.prefix(player, prefix_plot, "Free plot for selling created.");
- world = loc.getWorld(sign_loc);
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "raise") {
- location = entity.getLocation(player);
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(plot.isCity(plot)) {
- msg.prefix(player, prefix_plot, "This plot is already a city.");
- goto("wait");
- }
- if(!plot.isLeader(plot, player)) {
- msg.prefix(player, prefix_plot, "Only the plot leader can do this.");
- goto("wait");
- }
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present. Not possible.");
- goto("wait");
- }
- x1 = plot.getMinX(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- z2 = plot.getMaxZ(plot);
- length = math.abs(x1 - x2) + 1;
- width = math.abs(z1 - z2) + 1;
- plot_size = length * width;
- if(plot_size < 2500) {
- msg.prefix(player, prefix_plot, "Your plot must be over 2500m2.");
- goto("wait");
- }
- snuvis = 40960;
- if(!hasEnoughMoney(player, snuvis)) {
- msg.prefix(player, prefix_plot, string.concat("You´ll need §6", string.number(snuvis), "§r snuvis for this."));
- goto("wait");
- }
- offerRank(player, "rank.major");
- player.setPlotRaised(player, true);
- money.sub(player, snuvis);
- plot.setCity(plot, true);
- msg.prefix(player, prefix_plot, string.concat("City created. Spent §6", string.number(snuvis), "§r snuvis."));
- world = loc.getWorld(location);
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "leader") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot leader <player> [plot_id]");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_plot, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 2) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot leader ", p_name, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/plot leader <player> [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 2);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- player_id = player.getId(player);
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- if(!plot.isLeader(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t the plot leader.");
- goto("wait");
- }
- player_name = player.getName(player);
- if(player_name == p_name) {
- msg.prefix(player, prefix_plot, "You are already the plot leader.");
- goto("wait");
- }
- }
- p_id = player.getId(p_uuid);
- if(plot.isLeader(plot, p_id)) {
- msg.prefix(player, prefix_plot, "This player is already the plot leader.");
- goto("wait");
- }
- old_leader = plot.getLeaderId(plot);
- if(old_leader != null) {
- plot.setMod(plot, old_leader);
- }
- plot.setLeader(plot, p_id);
- plot.addPlayer(plot, p_name);
- msg.prefix(player, prefix_plot, string.concat(p_name, " promoted to plot leader."));
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "mod") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot mod <player> [plot_id]");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_plot, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 2) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot mod ", p_name, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/plot mod <player> [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 2);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- player_id = player.getId(player);
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- if(!plot.isLeader(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t the plot leader.");
- goto("wait");
- }
- }
- p_id = player.getId(p_uuid);
- if(plot.isLeader(plot, p_id)) {
- msg.prefix(player, prefix_plot, "Not possible. Promote another player first /plot leader <player>.");
- goto("wait");
- }
- if(plot.isMod(plot, p_id)) {
- msg.prefix(player, prefix_plot, "This player is already a plot mod.");
- goto("wait");
- }
- plot.setMod(plot, p_id);
- plot.addPlayer(plot, p_name);
- msg.prefix(player, prefix_plot, string.concat(p_name, " promoted to plot mod."));
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "chest") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot chest <player> [plot_id]");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_plot, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 2) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot chest ", p_name, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/plot chest <player> [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 2);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- player_id = player.getId(player);
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- if(!plot.isLeader(plot, player_id) && !plot.isMod(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t a plot leader or mod.");
- goto("wait");
- }
- }
- p_id = player.getId(p_uuid);
- if(plot.isLeader(plot, p_id) || plot.isMod(plot, p_id)) {
- msg.prefix(player, prefix_plot, "Not possible. Player has higher permissions.");
- goto("wait");
- }
- if(plot.canOpenChests(plot, p_id)) {
- msg.prefix(player, prefix_plot, "This player already can open chests.");
- goto("wait");
- }
- plot.setChest(plot, p_id);
- msg.prefix(player, prefix_plot, string.concat(p_name, " can now open chests."));
- goto("wait");
- }
- if(arg0 == "remove") {
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 1) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot remove ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/plot remove [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 1);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- player_id = player.getId(player);
- if(!plot.isLeader(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t the plot leader.");
- goto("wait");
- }
- }
- if(plot.isCity(plot)) {
- plot_list = plot.intersecting(world, plot.getMinX(plot), plot.getMinY(plot), plot.getMinZ(plot), plot.getMaxX(plot), plot.getMaxY(plot), plot.getMaxZ(plot));
- iter = iterator(plot_list);
- while(hasNext(iter)) {
- sub_plot = next(iter);
- plot.removeAllPlayers(sub_plot);
- plot.remove(sub_plot, world);
- }
- }
- //10% money back
- x1 = plot.getMinX(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- z2 = plot.getMaxZ(plot);
- length = x2 - x1 + 1;
- width = z2 - z1 + 1;
- snuvis = math.round(plot.calcCost(world, length, width) / 10);
- leader_id = plot.getLeaderId(plot);
- if(leader_id != null) {
- money.add(leader_id, snuvis);
- msg.prefix(player, prefix_plot, string.concat("Returned 10% of plot costs: ", money.getString(snuvis)));
- }
- //remove plot
- plot.removeAllPlayers(plot);
- plot.delMoveEvent(plot);
- plot.remove(plot, world);
- msg.prefix(player, prefix_plot, string.concat("Plot removed. #", string.number(plot.getId(plot)), " §6", plot.getName(plot)));
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "expand") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot expand <value> [direction] [plot_id]");
- goto("wait");
- }
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- anzahl = list.getIndex(args, 1);
- if(!isDouble(anzahl) || anzahl < 0) {
- msg.prefix(player, prefix_plot, "Positive number expected.");
- goto("wait");
- }
- if(size == 2) {
- yaw = loc.getYaw(location);
- direction = getDirection(yaw);
- if(direction == null) {
- msg.prefix(player, prefix_plot, "Direction of view too imprecise.");
- goto("wait");
- }
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot expand ", anzahl, " ", direction, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 4) {
- msg.prefix(player, prefix_commands, "/plot expand <value> [<direction> <plot_id>]");
- goto("wait");
- }
- direction = string.toLowerCase(list.getIndex(args, 2));
- plot_id = list.getIndex(args, 3);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- if(plot.isSub(plot)) {
- msg.prefix(player, prefix_plot, "Sub plots can´t be expanded.");
- goto("wait");
- }
- x1 = plot.getMinX(plot);
- y1 = plot.getMinY(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- y2 = plot.getMaxY(plot);
- z2 = plot.getMaxZ(plot);
- old_length = math.abs(x1 - x2) + 1;
- old_width = math.abs(z1 - z2) + 1;
- if(direction == "east") {
- old_x2 = x2;
- x2 += anzahl;
- list = plot.intersecting(world, x2, y1, z1, old_x2, y2, z2);
- } elseif(direction == "south") {
- old_z2 = z2;
- z2 += anzahl;
- list = plot.intersecting(world, x1, y1, z2, x2, y2, old_z2);
- } elseif(direction == "west") {
- old_x1 = x1;
- x1 -= anzahl;
- list = plot.intersecting(world, old_x1, y1, z1, x1, y2, z2);
- } elseif(direction == "north") {
- old_z1 = z1;
- z1 -= anzahl;
- list = plot.intersecting(world, x1, y1, old_z1, x2, y2, z1);
- } else {
- msg.prefix(player, prefix_plot, "Unknown direction [north/east/south/west].");
- goto("wait");
- }
- if(!perm.has("plot.other", player)) {
- if(list.getSize(list) > 0) {
- msg.prefix(player, prefix_plot, "New area is intersecting with other plots.");
- goto("wait");
- }
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- player_id = player.getId(player);
- if(!plot.isLeader(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t the plot leader.");
- goto("wait");
- }
- //Calc costs
- length = math.abs(x1 - x2) + 1;
- width = math.abs(z1 - z2) + 1;
- snuvis = plot.calcCost(world, length, width) - plot.calcCost(world, old_length, old_width);
- if(!hasEnoughMoney(player, snuvis)) {
- msg.prefix(player, prefix_plot, string.concat("You´ll need §6", string.number(snuvis), "§r snuvis for this."));
- goto("wait");
- }
- money.sub(player, snuvis);
- expand_message = string.concat("The plot has been expanded. Spent §6", string.number(snuvis), "§r snuvis.");
- if(!player.hasBigPlotCreated(player)) {
- plot_size = length * width;
- if(plot_size >= 900) {
- offerRank(player, "rank.colonizer");
- player.setBigPlotCreated(player, true);
- }
- }
- } else {
- expand_message = string.concat("The plot has been expanded.");
- }
- //Expand plot
- gs_edge1 = loc.new(world, x1, y1, z1);
- gs_edge2 = loc.new(world, x2, y2, z2);
- new_plot = plot.setEdges(plot, gs_edge1, gs_edge2);
- plot.delMoveEvent(plot);
- plot.setMoveEvent(new_plot, world);
- msg.prefix(player, prefix_plot, expand_message);
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "move") {
- if(!perm.has("plot.move", player)) {
- perm.no("plot.move", player);
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot move <value> [direction] [plot_id]");
- goto("wait");
- }
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- anzahl = list.getIndex(args, 1);
- if(!isDouble(anzahl) || anzahl < 0) {
- msg.prefix(player, prefix_plot, "Positive number expected.");
- goto("wait");
- }
- if(size == 2) {
- yaw = loc.getYaw(location);
- direction = getDirection(yaw);
- if(direction == null) {
- msg.prefix(player, prefix_plot, "Direction of view too imprecise.");
- goto("wait");
- }
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot move ", anzahl, " ", direction, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 4) {
- msg.prefix(player, prefix_commands, "/plot move <value> [<direction> <plot_id>]");
- goto("wait");
- }
- direction = string.toLowerCase(list.getIndex(args, 2));
- plot_id = list.getIndex(args, 3);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- if(plot.isSub(plot)) {
- msg.prefix(player, prefix_plot, "Sub plots can´t be moved.");
- goto("wait");
- }
- x1 = plot.getMinX(plot);
- y1 = plot.getMinY(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- y2 = plot.getMaxY(plot);
- z2 = plot.getMaxZ(plot);
- old_length = math.abs(x1 - x2) + 1;
- old_width = math.abs(z1 - z2) + 1;
- if(direction == "east") {
- x1 += anzahl;
- x2 += anzahl;
- } elseif(direction == "south") {
- z1 += anzahl;
- z2 += anzahl;
- } elseif(direction == "west") {
- x1 -= anzahl;
- x2 -= anzahl;
- } elseif(direction == "north") {
- z1 -= anzahl;
- z2 -= anzahl;
- } else {
- msg.prefix(player, prefix_plot, "Unknown direction [north/east/south/west].");
- goto("wait");
- }
- //Move plot
- gs_edge1 = loc.new(world, x1, y1, z1);
- gs_edge2 = loc.new(world, x2, y2, z2);
- new_plot = plot.setEdges(plot, gs_edge1, gs_edge2);
- plot.delMoveEvent(plot);
- plot.setMoveEvent(new_plot, world);
- msg.prefix(player, prefix_plot, "The plot has been moved.");
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "share") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot share <player> [plot_id]");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_plot, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 2) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot share ", p_name, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/plot share <player> [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 2);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- player_id = player.getId(player);
- if(!plot.isLeader(plot, player_id) && !plot.isMod(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t a plot leader or mod.");
- goto("wait");
- }
- }
- plot.addPlayer(plot, p_name);
- msg.prefix(player, prefix_plot, string.concat(p_name, " added to the plot."));
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "kick") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot kick <player> [plot_id]");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_plot, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 2) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot kick ", p_name, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/plot kick <player> [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 2);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- if(!plot.isLeader(plot, player) && !plot.isMod(plot, player)) {
- msg.prefix(player, prefix_plot, "You aren´t a plot leader or mod.");
- goto("wait");
- }
- player_name = player.getName(player);
- if(player_name == p_name) {
- msg.prefix(player, prefix_plot, "You can´t kick yourself.");
- goto("wait");
- }
- p_id = player.getId(p_uuid);
- if(plot.isLeader(plot, p_id)) {
- msg.prefix(player, prefix_plot, "You can´t kick the plot-leader.");
- goto("wait");
- }
- }
- plot.removePlayer(plot, p_name);
- msg.prefix(player, prefix_plot, string.concat(p_name, " removed from this plot."));
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "name") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/plot name [plot_id] <name>");
- goto("wait");
- }
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- //Angegeben wurde ein Name aus einem Wort, ohne Plotid. Der Spieler muss auf einem Plot sein.
- if(size == 2) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- name = list.getIndex(args, 1);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot name ", plot_id, " ", name)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- }
- if(size > 2) {
- plot_id = list.getIndex(args, 1);
- if(isDouble(plot_id)) {
- //Angegeben wurde eine eine Plotid mit einem Namen aus ein oder mehreren Wörtern
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- name = string.concatList(args, " ", 2, size - 1);
- } else {
- //Angegeben wurde ein Name aus mehreren Wörtern, ohne Plotid. Der Spieler muss auf einem Plot sein.
- name = string.concatList(args, " ", 1, size - 1);
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot name ", plot_id, " ", name)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- }
- }
- if(!perm.has("plot.other", player)) {
- if(!world.canUsePlots(world)) {
- msg.prefix(player, prefix_perms, "You have no permission for this in this world.");
- goto("wait");
- }
- player_id = player.getId(player);
- if(!plot.isLeader(plot, player_id) && !plot.isMod(plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t a plot leader or mod.");
- goto("wait");
- }
- }
- plot.setName(plot, name);
- msg.prefix(player, prefix_plot, string.concat("Plot renamed to ", name, "."));
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "create" || arg0 == "create3d") {
- player_id = player.getId(player);
- loc1 = map.get(plotpos1, player_id);
- loc2 = map.get(plotpos2, player_id);
- if(loc1 == null || loc2 == null) {
- msg.prefix(player, prefix_plot, "Set corners points with §d/p pos1 §rand §d/p pos2§r.");
- goto("wait");
- }
- world1 = loc.getWorld(loc1);
- if(world1 != loc.getWorld(loc2)) {
- msg.prefix(player, prefix_plot, "Corner points have different worlds.");
- goto("wait");
- }
- x1 = loc.getX(loc1);
- z1 = loc.getZ(loc1);
- x2 = loc.getX(loc2);
- z2 = loc.getZ(loc2);
- if(arg0 == "create") {
- y1 = -64;
- y2 = 319;
- loc.setY(loc1, y1);
- loc.setY(loc2, y2);
- } else {
- y1 = loc.getY(loc1);
- y2 = loc.getY(loc2);
- }
- create_message = "Plot created.";
- sub_plot = false;
- if(!perm.has("plot.other", player)) {
- world_name = world.getName(world1);
- if(!world.canUsePlots(world1)) {
- msg.prefix(player, prefix_perms, "You have no permission in this world.");
- goto("wait");
- }
- list = plot.intersecting(world1, x1, y1, z1, x2, y2, z2);
- if(list.getSize(list) > 0) {
- city_plot = list.getIndex(list, 0);
- if(plot.isCity(city_plot)) {
- if(!plot.isLeader(city_plot, player_id) && !plot.isMod(city_plot, player_id)) {
- msg.prefix(player, prefix_plot, "You aren´t a plot leader or mod.");
- goto("wait");
- }
- city_id = plot.getId(city_plot);
- if(!loc.hasPlotId(loc1, city_id)) {
- msg.prefix(player, prefix_plot, "The sub plot needs to be surrounded by the city.");
- goto("wait");
- }
- if(!loc.hasPlotId(loc2, city_id)) {
- msg.prefix(player, prefix_plot, "The sub plot needs to be surrounded by the city.");
- goto("wait");
- }
- sub_plot = true;
- } else {
- msg.prefix(player, prefix_plot, "Intersecting plots are not allowed.");
- goto("wait");
- }
- }
- if(!sub_plot) {
- //Calc costs
- length = math.abs(x1 - x2) + 1;
- width = math.abs(z1 - z2) + 1;
- if(length < 3 || width < 3) {
- msg.prefix(player, prefix_plot, "Length and width of the plot must be at least 3.");
- goto("wait");
- }
- snuvis = plot.calcCost(world1, length, width);
- free_plot_used = player.usedHisFreePlot(player_id);
- if(!free_plot_used && world_name != "creative") {
- snuvis -= plot.calcCost(world1, 16, 16);
- if(snuvis < 0) {
- snuvis = 0;
- }
- msg.prefix(player, prefix_plot, "Free plot (16 x 16) to calculation included.");
- }
- if(!hasEnoughMoney(player, snuvis)) {
- msg.prefix(player, prefix_plot, string.concat("You´ll need ", money.getString(snuvis), " snuvis for this."));
- goto("wait");
- }
- create_message = string.concat("Plot created. Spent ", money.getString(snuvis), " snuvis.");
- money.sub(player, snuvis);
- if(!free_plot_used && world_name != "creative") {
- player.setUsedFreePlot(player_id, true);
- offerRank(player, "rank.settler");
- }
- if(!player.hasBigPlotCreated(player)) {
- plot_size = length * width;
- if(plot_size >= 900) {
- offerRank(player, "rank.colonizer");
- player.setBigPlotCreated(player, true);
- }
- }
- }
- }
- //Create plot
- map.remove(plotpos1, player_id);
- map.remove(plotpos2, player_id);
- plot = plot.add(loc1, loc2);
- if(sub_plot) {
- plot.setSub(plot, true);
- }
- plot.setMoveEvent(plot, world1);
- player_name = player.getName(player);
- plot.setName(plot, string.concat("Plot of ", player_name));
- plot.addPlayer(plot, player_name);
- plot.setLeader(plot, player_id);
- msg.prefix(player, prefix_plot, create_message);
- plot.savePlots(world1);
- goto("wait");
- }
- if(arg0 == "pos1" || arg0 == "pos2") {
- loc = entity.getLocation(player);
- loc = getBlockLocation(loc);
- player_id = player.getId(player);
- if(arg0 == "pos1") {
- map.add(plotpos1, player_id, loc);
- pos_string = "Pos1";
- } elseif(arg0 == "pos2") {
- map.add(plotpos2, player_id, loc);
- pos_string = "Pos2";
- }
- x = string.number(loc.getX(loc));
- y = string.number(loc.getY(loc));
- z = string.number(loc.getZ(loc));
- msg.prefix(player, prefix_plot, string.concat(pos_string, " (", x, "/", y, "/", z, ") set."));
- loc1 = map.get(plotpos1, player_id);
- loc2 = map.get(plotpos2, player_id);
- if(loc1 != null && loc2 != null) {
- world1 = loc.getWorld(loc1);
- snuvis = plot.calcCost(world1, loc1, loc2);
- if(!player.usedHisFreePlot(player_id) && world.getName(world1) != "creative") {
- snuvis -= plot.calcCost(world1, 16, 16);
- if(snuvis < 0) {
- snuvis = 0;
- }
- msg.prefix(player, prefix_plot, "Free plot (16 x 16) to calculation included.");
- }
- if(loc.isCity(loc1) && loc.isCity(loc2)) {
- snuvis = 0;
- }
- msg.prefix(player, prefix_plot, string.concat("This plot will cost ", money.getString(snuvis), " snuvis."));
- }
- goto("wait");
- }
- if(arg0 == "flags") {
- if(!perm.has("plot.moreinfo", player)) {
- perm.no("plot.moreinfo", player);
- goto("wait");
- }
- if(size < 3 || size > 4) {
- msg.prefix(player, prefix_commands, "/plot flags <flags> <boolean> [plot_id]");
- goto("wait");
- }
- flags = list.getIndex(args, 1);
- if(!isDouble(flags) || flags < 0) {
- msg.prefix(player, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- boolean = list.getIndex(args, 2);
- if(!(boolean == true || boolean == false)) {
- msg.prefix(player, prefix_commands, "Boolean expected.");
- goto("wait");
- }
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 3) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- x = loc.getX(location);
- y = loc.getY(location);
- z = loc.getZ(location);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot flags ", flags, " ", boolean, " ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)))));
- }
- goto("wait");
- }
- } else {
- plot_id = list.getIndex(args, 3);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- plot.setFlags(plot, flags, boolean);
- msg.prefix(player, prefix_plot, "Flags gesetzt.");
- plot.savePlots(world);
- goto("wait");
- }
- if(arg0 == "list") {
- if(size == 1) {
- p_name = player.getName(player);
- } else {
- if(!perm.has("plot.moreinfo", player)) {
- perm.no("plot.moreinfo", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- }
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_plot, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- msg.prefix(player, prefix_commands, string.concat("Plots of ", p_name, ":"));
- world = loc.getWorld(entity.getLocation(player));
- iter = plot.iterator(world, p_uuid);
- while(hasNext(iter)) {
- plot = next(iter);
- msg.string(player, string.concat(" - #", string.number(plot.getId(plot)), " ", plot.getType(plot), " §6", plot.getName(plot)));
- }
- goto("wait");
- }
- if(arg0 == "listall") {
- if(!perm.has("plot.moreinfo", player)) {
- perm.no("plot.moreinfo", player);
- goto("wait");
- }
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/plot listall");
- goto("wait");
- }
- world = loc.getWorld(entity.getLocation(player));
- msg.prefix(player, prefix_commands, string.concat("All plots in this world: ", world.getName(world)));
- iterator = plot.iterator(world);
- while(hasNext(iterator)) {
- plot = next(iterator);
- plot_id = plot.getId(plot);
- msg.string(player, string.concat(" - #", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", plot.getLeaderName(plot)));
- }
- goto("wait");
- }
- if(arg0 == "moreinfo" || arg0 == "mi") {
- if(!perm.has("plot.moreinfo", player)) {
- perm.no("plot.moreinfo", player);
- goto("wait");
- }
- location = entity.getLocation(player);
- world = loc.getWorld(location);
- if(size == 1) {
- plot_list = plot.get(location);
- amount = list.getSize(plot_list);
- if(amount == 0) {
- msg.prefix(player, prefix_plot, "You aren´t on a plot.");
- goto("wait");
- }
- plot = list.getIndex(plot_list, 0);
- if(amount > 1) {
- msg.prefix(player, prefix_plot, "Multiple plots present:");
- for(i = 0; i < amount; i++) {
- plot = list.getIndex(plot_list, i);
- plot_id = plot.getId(plot);
- msg(player, text.merge(string.getClickText(" [§cSelect§r] ", string.concat("/plot moreinfo ", plot_id)), text.new(string.concat("#", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot)))));
- }
- goto("wait");
- }
- } else {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/plot moreinfo [plot_id]");
- goto("wait");
- }
- plot_id = list.getIndex(args, 1);
- plot = plot.getFromId(plot_id, world);
- if(plot == null) {
- msg.prefix(player, prefix_plot, "Unknown plot or not in this world.");
- goto("wait");
- }
- }
- owners = "";
- owners_list = plot.getOwners(plot);
- copy_list = list.copy(owners_list);
- plot_id = plot.getId(plot);
-
- x1 = plot.getMinX(plot);
- y1 = plot.getMinY(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- y2 = plot.getMaxY(plot);
- z2 = plot.getMaxZ(plot);
- length = x2 - x1 + 1;
- width = z2 - z1 + 1;
- msg.string(player, string.concat(" - #", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", string.number(length), "x", string.number(width)));
- owners_list = plot.getOwners(plot);
- copy_list = list.copy(owners_list);
- msg.string(player, string.concat(" §dW §r", world.getName(world)));
- msg.string(player, string.concat(" §dX1 §r", string.number(x1), " §dY1 §r", string.number(y1), " §dZ1 §r", string.number(z1)));
- msg.string(player, string.concat(" §dX2 §r", string.number(x2), " §dY2 §r", string.number(y2), " §dZ2 §r", string.number(z2)));
-
- leader_name = plot.getLeaderName(plot);
- if(leader_name != "") {
- msg.string(player, string.concat(" §dLeader: §r", leader_name));
- list.remove(copy_list, player.getUuid(leader_name));
- }
-
- mods_list = plot.getMods(plot);
- mods_amount = list.getSize(mods_list);
- if(mods_amount != 0) {
- iter = iterator(mods_list);
- mods_string = "";
- while(hasNext(iter)) {
- p_name = player.getNameFromId(next(iter));
- p_uuid = player.getUuid(p_name);
- list.remove(copy_list, p_uuid);
- if(mods_string == "") {
- mods_string = p_name;
- } else {
- mods_string = string.concat(mods_string, " / ", p_name);
- }
- }
- msg.string(player, string.concat(" §dMods: §r", mods_string));
- }
-
- members_amount = list.getSize(copy_list);
- if(members_amount != 0) {
- iter = iterator(copy_list);
- members_string = "";
- while(hasNext(iter)) {
- p_name = player.getName(next(iter));
- if(members_string == "") {
- members_string = p_name;
- } else {
- members_string = string.concat(members_string, " / ", p_name);
- }
- }
- msg.string(player, string.concat(" §dMembers: §r", members_string));
- }
-
- chests_list = plot.getChestRanks(plot);
- chests_amount = list.getSize(chests_list);
- if(chests_amount != 0) {
- iter = iterator(chests_list);
- chests_string = "";
- while(hasNext(iter)) {
- p_name = player.getNameFromId(next(iter));
- if(chests_string == "") {
- chests_string = p_name;
- } else {
- chests_string = string.concat(chests_string, " / ", p_name);
- }
- }
- msg.string(player, string.concat(" §dOnly chest: §r", chests_string));
- }
-
- a = getFlagLists(plot);
- flags_true = a[0];
- flags_false = a[1];
-
- x = loc.getX(location);
- y = loc.getY(location);
- z = loc.getZ(location);
- msg.string(player, " §dFlags true:");
- iter = iterator(flags_true);
- while(hasNext(iter)) {
- array = next(iter);
- flag_number = array[0];
- flag_name = array[1];
- msg(player, text.merge(text.new(" "), string.getClickText(string.concat(" §d[§r", flag_name, "§d] "), string.concat("/plot flags ", flag_number, " false ", plot_id))));
- }
- msg.string(player, " §dFlags false:");
- iter = iterator(flags_false);
- while(hasNext(iter)) {
- array = next(iter);
- flag_number = array[0];
- flag_name = array[1];
- msg(player, text.merge(text.new(" "), string.getClickText(string.concat(" §d[§r", flag_name, "§d] "), string.concat("/plot flags ", flag_number, " true ", plot_id))));
- }
- goto("wait");
- }
- if(arg0 == "info" || arg0 == "i") {
- location = entity.getLocation(player);
- list = plot.get(location);
- world = loc.getWorld(location);
- size = list.getSize(list);
- if(size == 0) {
- msg.prefix(player, prefix_plot, "No plots found.");
- goto("wait");
- }
- if(size == 1) {
- msg.prefix(player, prefix_plot, string.concat(string.number(size), " plot found:"));
- } else {
- msg.prefix(player, prefix_plot, string.concat(string.number(size), " plots found:"));
- }
- for(i = 0; i < size; i++) {
- plot = list.getIndex(list, i);
- plot_id = plot.getId(plot);
- x1 = plot.getMinX(plot);
- y1 = plot.getMinY(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- y2 = plot.getMaxY(plot);
- z2 = plot.getMaxZ(plot);
- length = x2 - x1 + 1;
- width = z2 - z1 + 1;
- msg.string(player, string.concat(" - #", string.number(plot_id), " ", plot.getType(plot), " §6", plot.getName(plot), " §r", string.number(length), "x", string.number(width)));
- owners_list = plot.getOwners(plot);
- copy_list = list.copy(owners_list);
- msg.string(player, string.concat(" §dW §r", world.getName(world)));
- msg.string(player, string.concat(" §dX1 §r", string.number(x1), " §dY1 §r", string.number(y1), " §dZ1 §r", string.number(z1)));
- msg.string(player, string.concat(" §dX2 §r", string.number(x2), " §dY2 §r", string.number(y2), " §dZ2 §r", string.number(z2)));
-
- leader_name = plot.getLeaderName(plot);
- if(leader_name != "") {
- msg.string(player, string.concat(" §dLeader: §r", leader_name));
- list.remove(copy_list, player.getUuid(leader_name));
- }
-
- mods_list = plot.getMods(plot);
- mods_amount = list.getSize(mods_list);
- if(mods_amount != 0) {
- iter = iterator(mods_list);
- mods_string = "";
- while(hasNext(iter)) {
- p_name = player.getNameFromId(next(iter));
- p_uuid = player.getUuid(p_name);
- list.remove(copy_list, p_uuid);
- if(mods_string == "") {
- mods_string = p_name;
- } else {
- mods_string = string.concat(mods_string, " / ", p_name);
- }
- }
- msg.string(player, string.concat(" §dMods: §r", mods_string));
- }
-
- members_amount = list.getSize(copy_list);
- if(members_amount != 0) {
- iter = iterator(copy_list);
- members_string = "";
- while(hasNext(iter)) {
- p_name = player.getName(next(iter));
- if(members_string == "") {
- members_string = p_name;
- } else {
- members_string = string.concat(members_string, " / ", p_name);
- }
- }
- msg.string(player, string.concat(" §dMembers: §r", members_string));
- }
-
- chests_list = plot.getChestRanks(plot);
- chests_amount = list.getSize(chests_list);
- if(chests_amount != 0) {
- iter = iterator(chests_list);
- chests_string = "";
- while(hasNext(iter)) {
- p_name = player.getNameFromId(next(iter));
- if(chests_string == "") {
- chests_string = p_name;
- } else {
- chests_string = string.concat(chests_string, " / ", p_name);
- }
- }
- msg.string(player, string.concat(" §dOnly chest: §r", chests_string));
- }
- }
- goto("wait");
- }
- goto("plothelp");
- @stopadventure
- removeAdventureDisplay(player);
- player.setAdventure(player, false);
- msg.prefix(player, "§5Adventure", "Adventure canceled!");
- goto("wait");
- @speed
- if(size < 1 || size > 2) {
- if(perm.has("speed.other", player)) {
- msg.prefix(player, prefix_commands, "/speed <1-10> [player]");
- } else {
- msg.prefix(player, prefix_commands, "/speed <1-10>");
- }
- goto("wait");
- }
- speed = list.getIndex(args, 0);
- if(!isDouble(speed)) {
- msg.prefix(player, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(speed < 1) {
- speed = 1;
- }
- if(speed > 10) {
- speed = 10;
- }
- if(size < 2) {
- p = player;
- }
- if(size == 2) {
- if(!perm.has("speed.other", player)) {
- perm.no("speed.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- }
- player.setSpeed(p, speed);
- msg.prefix(p, prefix_commands, string.concat("Set your speed to ", string.number(speed), "."));
- if(p != player) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " set your speed to ", string.number(speed), "."));
- }
- goto("wait");
- @butcher
- loc = entity.getLocation(player);
- world = loc.getWorld(loc);
- list = world.getEntities(world);
- size = list.getSize(list);
- killed = 0;
- for(i = 0; i < size; i++) {
- element = list.getIndex(list, i);
- if(isLiving(element)) {
- entity_type = entity.getType(element);
- if(set.contains(butcher_set, entity_type)) {
- entity.remove(element);
- killed++;
- }
- }
- }
- msg.prefix(player, prefix_commands, string.concat(string.number(killed), " mobs killed."));
- goto("wait");
- @enchant
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/enchant <enchantment> <level>");
- goto("wait");
- }
- ench_string = list.getIndex(args, 0);
- ench = enchantment.get(ench_string);
- if(ench == null) {
- msg.prefix(player, prefix_commands, "Unknown enchantment");
- goto("wait");
- }
- lvl = list.getIndex(args, 1);
- if(!isDouble(lvl) || lvl < 1 || lvl > 100) {
- msg.prefix(sender, prefix_commands, "Number greater than 0 and less than 101 expected.");
- goto("wait");
- }
- item = living.getHand(player);
- if(item.isAir(item)) {
- msg.prefix(sender, prefix_commands, "You need to hold an item in your hand.");
- goto("wait");
- }
- enchantment.add(ench, item, lvl);
- goto("wait");
- @enderchest
- if(size < 1 || size > 2) {
- msg.prefix(player, prefix_commands, "/enderchest [player] <from-player>");
- goto("wait");
- }
- if(size == 1) {
- from_name = list.getIndex(args, 0);
- p = player;
- }
- elseif(size == 2) {
- p_name = list.getIndex(args, 0);
- from_name = list.getIndex(args, 1);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- }
- from_player = read.player(from_name);
- if(from_player == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- ender_inv = player.getEnderInv(from_player);
- inv.open(ender_inv, p);
- goto("wait");
- @gamemode
- if(size < 1 || size > 2) {
- msg.prefix(player, prefix_commands, "/gamemode <mode> [player]");
- goto("wait");
- }
- if(size == 1) {
- p = player;
- } elseif(size == 2) {
- if(!perm.has("gamemode.other", player)) {
- perm.no("gamemode.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- }
- mode = list.getIndex(args, 0);
- if(isDouble(mode)) {
- mode = string.number(mode);
- } else {
- mode = string.toLowerCase(mode);
- }
- if(mode == "s" || mode == "0" || mode == "survival") {
- mode = "SURVIVAL";
- } elseif(mode == "c" || mode == "1" || mode == "creative") {
- mode = "CREATIVE";
- } elseif(mode == "a" || mode == "2" || mode == "adventure") {
- mode = "ADVENTURE";
- } elseif(mode == "w" || mode == "3" || mode == "spectator") {
- mode = "SPECTATOR";
- } else {
- msg.prefix(player, prefix_commands, "Unknown gamemode.");
- goto("wait");
- }
- player.setGamemode(p, mode);
- if(p != player) {
- p_name = player.getName(p);
- msg.prefix(player, prefix_commands, string.concat("Gamemode of ", p_name, " set to ", mode, "."));
- }
- msg.prefix(p, prefix_commands, string.concat("Set your gamemode to ", mode, "."));
- goto("wait");
- @home
- if(size == 0) {
- @homesyntax
- msg.prefix(player, prefix_commands, "/home ...");
- msg.string(player, "§6 - set <name> §rSets a home");
- if(perm.has("home.other", player)) {
- msg.string(player, "§6 - delete <name> [player] §rDeletes a home");
- msg.string(player, "§6 - list [player] §rLists all homes");
- msg.string(player, "§6 - <name> [player] §rTeleports to a home");
- } else {
- msg.string(player, "§6 - delete <name> §rDeletes a home");
- msg.string(player, "§6 - list §rLists your homes");
- msg.string(player, "§6 - <name> §rTeleports to your home");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "del" || arg0 == "delete") {
- if(size < 2) {
- goto("homesyntax");
- }
- if(size == 2) {
- player_id = player.getId(player);
- } else {
- if(!perm.has("home.other", player)) {
- perm.no("home.other", player);
- goto("wait");
- }
- p_name = string.toLowerCase(list.getIndex(args, 2));
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- player_id = player.getId(p_uuid);
- }
- name = string.toLowerCase(list.getIndex(args, 1));
- if(!home.exists(player_id, name)) {
- msg.prefix(player, prefix_commands, string.concat("Home ", name, " doesn´t exist."));
- goto("wait");
- }
- home.delete(player_id, name);
- msg.prefix(player, prefix_commands, string.concat("Home ", name, " deleted."));
- goto("wait");
- }
- if(arg0 == "list") {
- if(size < 2) {
- p_uuid = player.getUuid(player);
- }
- if(size == 2) {
- if(!perm.has("home.other", player)) {
- perm.no("home.other", player);
- goto("wait");
- }
- p_name = string.toLowerCase(list.getIndex(args, 1));
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- }
- id = player.getId(p_uuid);
- homes_list = home.getList(id);
- home_amount = list.getSize(homes_list);
- if(home_amount == 0) {
- msg.prefix(player, prefix_commands, "No homes existing.");
- } else {
- msg.prefix(player, prefix_commands, string.concat("Homes of ", player.getName(p_uuid), ":"));
- for(i = 0; i < home_amount; i++) {
- msg.string(player, string.concat("§6 - §r", list.getIndex(homes_list, i)));
- }
- }
- goto("wait");
- }
- location = entity.getLocation(player);
- world_name = world.getName(loc.getWorld(location));
- if(!world.isSurvName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t use this command in this world.");
- goto("wait");
- }
- if(arg0 == "set") {
- if(size < 2) {
- goto("homesyntax");
- }
- player_id = player.getId(player);
- homes_list = home.getList(player_id);
- home_amount = list.getSize(homes_list);
- if(perm.has("isTeam", player)) {
- max_homes = 20;
- } else {
- max_homes = 1;
- }
- max_homes += getAdditionalVoteHomes();
- if(home_amount >= max_homes) {
- msg.prefix(player, prefix_commands, string.concat("You can only set ", string.number(max_homes), " homes."));
- goto("wait");
- }
- name = string.toLowerCase(list.getIndex(args, 1));
- if(name == "set" || name == "del" || name == "delete" || name == "list") {
- msg.prefix(player, prefix_commands, "This name ist not allowed.");
- goto("wait");
- }
- if(!string.onlyletters(name)) {
- msg.prefix(player, prefix_commands, "Only letters allowed.");
- goto("wait");
- }
- if(string.length(name) > 20) {
- msg.prefix(player, prefix_commands, "Maximum 20 letters.");
- goto("wait");
- }
- if(home.exists(player_id, name)) {
- msg.prefix(player, prefix_commands, string.concat("Home ", name, " already exists."));
- goto("wait");
- }
- home.set(player_id, name, location);
- msg.prefix(player, prefix_commands, string.concat("Home ", name, " set."));
- goto("wait");
- }
- //Teleportation
- if(size < 2) {
- p_name = player.getName(player);
- }
- if(size == 2) {
- p_name = string.toLowerCase(list.getIndex(args, 1));
- }
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "Der Spieler war noch nie online.");
- goto("wait");
- }
- player_id = player.getId(p_uuid);
- location = home.getLocation(player_id, arg0);
- if(location == null) {
- msg.prefix(player, prefix_commands, "Home doesn´t exist."); //oder die welt ist nicht geladen
- goto("wait");
- }
- player.teleport(player, location, true);
- goto("wait");
- @icon
- msg.string(player, string.getSpacer());
- msg.string(player, "Icons - Click to Copy");
- msg(player, text.merge(
- string.getClipBoardText(icon.getGoldCoin(), icon.getGoldCoin()), text.new(" "),
- string.getClipBoardText(icon.getSilverCoin(), icon.getSilverCoin()), text.new(" "),
- string.getClipBoardText(icon.getCopperCoin(), icon.getCopperCoin()), text.new(" "),
- string.getClipBoardText(icon.getExp(), icon.getExp()), text.new(" "),
- string.getClipBoardText(icon.getBookshelf(), icon.getBookshelf()), text.new(" "),
- string.getClipBoardText(icon.getCraftingTable(), icon.getCraftingTable())
- ));
- msg(player, text.merge(
- string.getClipBoardText(icon.getCompass(), icon.getCompass()), text.new(" "),
- string.getClipBoardText(icon.getCake(), icon.getCake()), text.new(" "),
- string.getClipBoardText(icon.getEnderpearl(), icon.getEnderpearl()), text.new(" "),
- string.getClipBoardText(icon.getHeart(), icon.getHeart()), text.new(" "),
- string.getClipBoardText(icon.getHalfHeart(), icon.getHalfHeart()), text.new(" "),
- string.getClipBoardText(icon.getEmptyHeart(), icon.getEmptyHeart())
- ));
- goto("wait");
- @tpa
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/tpa <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(!player.doesAcceptTpaRequests(p)) {
- msg.prefix(player, prefix_commands, string.concat("§c", p_name, "§r rejects teleport requests."));
- goto("wait");
- }
- if(!player.canTeleport(p)) {
- msg.prefix(player, prefix_commands, "This player can´t teleport now.");
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport in this world.");
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(p)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport to this world.");
- goto("wait");
- }
- addTpaRequest(player.getUuid(player), p_uuid);
- player_name = player.getName(player);
- msg.string(player, string.concat("§6Teleport-Request: [§c", player_name, "§6 -> §c ", p_name, "§6]"));
- msg(p, text.merge(text.new(string.concat("§6Teleport-Request: [§c", player_name, "§6 -> §c ", p_name, "§6] ")), string.getClickText("§6[§aAccept§6]", string.concat("/tpaccept ", player_name))));
- goto("wait");
- @tpahere
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/tpahere <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(!player.canTeleport(p)) {
- msg.prefix(player, prefix_commands, "This player can´t teleport now.");
- goto("wait");
- }
- if(!player.doesAcceptTpaRequests(p)) {
- msg.prefix(player, prefix_commands, string.concat("§c", p_name, "§r rejects teleport requests."));
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, string.concat("§c", p_name, "§r isn´t allowed to teleport to this world."));
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(p)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, string.concat("§c", p_name, "§r isn´t allowed to teleport from their world."));
- goto("wait");
- }
- addTpaRequest(p_uuid, player.getUuid(player));
- player_name = player.getName(player);
- msg.string(player, string.concat("§6Teleport-Request: [§c", p_name, "§6 -> §c ", player_name, "§6]"));
- msg(p, text.merge(text.new(string.concat("§6Teleport-Request: [§c", p_name, "§6 -> §c ", player_name, "§6] ")), string.getClickText("§6[§aAccept§6]", string.concat("/tpaccepthere ", player_name))));
- goto("wait");
- @tpaccept
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/tpaccept <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(!player.canTeleport(player)) {
- msg.prefix(player, prefix_commands, "This player can´t teleport to you now.");
- goto("wait");
- }
- if(!player.canTeleport(p)) {
- msg.prefix(player, prefix_commands, "This player can´t teleport to you now.");
- //Kein return. Spieler A bekommt cancel adventure und Spieler B wird informiert.
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, string.concat("§c", p_name, "§r isn´t allowed to teleport to your world."));
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(p)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, string.concat("§c", p_name, "§r isn´t allowed to teleport from their world."));
- goto("wait");
- }
- player_uuid = player.getUuid(player);
- if(!hasTpaRequest(p_uuid, player_uuid)) {
- msg.prefix(player, prefix_commands, "No outstanding teleport-request.");
- goto("wait");
- }
- location = entity.getLocation(player);
- player.teleport(p, location, true);
- goto("wait");
- @tpaccepthere
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/tpaccepthere <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p_name = player.getName(p_uuid);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(!player.canTeleport(player)) {
- msg.prefix(p, prefix_commands, "This player can´t teleport to you now.");
- //Kein return. Spieler A bekommt cancel adventure und Spieler B wird informiert.
- }
- if(!player.canTeleport(p)) {
- msg.prefix(player, prefix_commands, "You must not teleport to this player now.");
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport in this world.");
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(p)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport to this world.");
- goto("wait");
- }
- player_uuid = player.getUuid(player);
- if(!hasTpaRequest(player_uuid, p_uuid)) {
- msg.prefix(player, prefix_commands, "No outstanding teleport-request.");
- goto("wait");
- }
- location = entity.getLocation(p);
- player.teleport(player, location, true);
- goto("wait");
- @tp
- if(size < 1 || size > 2) {
- if(perm.has("tp.other", player)) {
- msg.prefix(player, prefix_commands, "/tp [player] <to-player>");
- } else {
- msg.prefix(player, prefix_commands, "/tp <player>");
- }
- goto("wait");
- }
- if(size == 1) {
- to_name = list.getIndex(args, 0);
- p = player;
- }
- elseif(size == 2) {
- if(!perm.has("tp.other", player)) {
- perm.no("tp.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- //Damit der ganze Spielername und nicht nur der eingegebene angezeigt wird
- to_name = list.getIndex(args, 1);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- }
- if(player.hasMinigame(p)) {
- if(size == 2) {
- msg.prefix(player, prefix_commands, "This player can´t be teleported now.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- to_player = read.player(to_name);
- if(to_player == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- //Damit der ganze Spielername und nicht nur der eingegebene angezeigt wird
- to_name = player.getName(to_player);
- location = entity.getLocation(to_player);
- if(player.teleport(p, location, true)) {
- if(player != p) {
- msg.prefix(player, prefix_commands, string.concat("Teleported ", player.getName(p), " to ", to_name, "."));
- }
- msg.prefix(p, prefix_commands, string.concat("Teleported you to ", to_name, "."));
- }
- goto("wait");
- @say
- if(size == 0) {
- msg.prefix(sender, prefix_commands, "/say <text>");
- goto("wait");
- }
- msg.online("§cServer", string.concatList(args, " ", 0, size - 1));
- goto("wait");
- @warp
- if(size == 0) {
- @warpsyntax
- msg.prefix(player, prefix_commands, "/warp ...");
- if(perm.has("warp.create", player)) {
- msg.string(player, "§6 - set <warp> §rSets a warp");
- msg.string(player, "§6 - delete <warp> §rDeletes a warp");
- }
- msg.string(player, "§6 - <warp> §rTeleports to a warp");
- msg.string(player, "§6 - list §rLists all warps");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "delete") {
- if(!perm.has("warp.create", player)) {
- perm.no("warp.create", player);
- goto("wait");
- }
- if(size != 2) {
- goto("warpsyntax");
- }
- warp_name = string.toLowerCase(list.getIndex(args, 1));
- if(warp.delete(warp_name)) {
- msg.prefix(player, prefix_commands, string.concat("Warp ", warp_name, " deleted."));
- } else {
- msg.prefix(player, prefix_commands, "Warpname doesn´t exist.");
- }
- goto("wait");
- }
- if(arg0 == "list") {
- warps_list = warp.getList();
- if(list.getSize(warps_list) == 0) {
- msg.prefix(player, prefix_commands, "No warps existing.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, string.concat("§6Warps:"));
- for(i = 0; i < list.getSize(warps_list); i++) {
- msg.string(player, string.concat("§6 - §r", list.getIndex(warps_list, i)));
- }
- goto("wait");
- }
- if(arg0 == "set") {
- if(!perm.has("warp.create", player)) {
- perm.no("warp.create", player);
- goto("wait");
- }
- if(size != 2) {
- goto("warpsyntax");
- }
- warp_name = string.toLowerCase(list.getIndex(args, 1));
- if(warp.exists(warp_name)) {
- msg.prefix(player, prefix_commands, "Warpname already exists.");
- goto("wait");
- }
- warp.create(warp_name, entity.getLocation(player));
- msg.prefix(player, prefix_commands, string.concat("Warp ", warp_name, " set."));
- goto("wait");
- }
- //Teleportation
- warp_name = string.toLowerCase(arg0);
- warp_loc = warp.get(warp_name);
- if(warp_loc == null) {
- msg.prefix(player, prefix_commands, "Warpname doesn´t exist.");
- goto("wait");
- }
- if(!perm.has("warp.create", player)) {
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport in this world.");
- goto("wait");
- }
- world_name = world.getName(loc.getWorld(warp_loc));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport to this world.");
- goto("wait");
- }
- }
- if(player.teleport(player, warp_loc, true)) {
- msg.prefix(player, prefix_commands, string.concat("You have been teleported to warp §7", warp_name, "."));
- }
- goto("wait");
- @databank
- if(size == 0) {
- @databankhelp
- msg.prefix(player, prefix_commands, "/databank...");
- msg.string(player, "§6 - showtables §rShows all tables");
- msg.string(player, "§6 - showfields §rShows fields from a table");
- msg.string(player, "§6 - showdatatypes §rShows dataypes from a table");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "showtables") {
- msg.string(player, string.getSpacer());
- stmt = databank.prepare("SHOW TABLES");
- result = databank.execute(stmt);
- while(databank.next(result)) {
- msg.string(player, databank.getString(result, 1));
- }
- databank.close(result);
- databank.close(stmt);
- goto("wait");
- }
- if(arg0 == "showfields") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/databank showfields <table>");
- goto("wait");
- }
- table = list.getIndex(args, 1);
- if(!databank.isExistingTable(table)) {
- msg.prefix(player, prefix_commands, "This in no existing table.");
- goto("wait");
- }
- msg.string(player, string.getSpacer());
- fields = databank.getTableFields(table);
- iter = iterator(fields);
- while(hasNext(iter)) {
- msg.string(player, next(iter));
- }
- goto("wait");
- }
- if(arg0 == "showdatatypes") {
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/databank showdatatypes <table>");
- goto("wait");
- }
- table = list.getIndex(args, 1);
- if(!databank.isExistingTable(table)) {
- msg.prefix(player, prefix_commands, "This in no existing table.");
- goto("wait");
- }
- msg.string(player, string.getSpacer());
- msg.string(player, databank.getTableDatatypes(table));
- goto("wait");
- }
- goto("databankhelp");
- @seen
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/seen <player>");
- goto("wait");
- }
- seen_name = list.getIndex(args, 0);
- seen_uuid = player.getUuid(seen_name);
- if(seen_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- if(read.player(seen_name) != null) {
- msg.prefix(player, prefix_commands, "This player is online.");
- goto("wait");
- }
- seenStatement = databank.prepare("SELECT MAX(leave_time) FROM playtime WHERE player_id = ?;");
- databank.setInt(seenStatement, 1, player.getId(seen_uuid));
- result = databank.execute(seenStatement);
- if(databank.next(result)) {
- time = databank.getLong(result, 1);
- msg.prefix(player, prefix_commands, string.concat(seen_name, " was seen at §e", time.getString(time), "."));
- } else {
- msg.prefix(player, prefix_commands, "Keine Daten vorhanden.");
- }
- databank.close(result);
- databank.close(seenStatement);
- goto("wait");
- @lastseen
- if(size != 1) {
- msg.prefix(sender, prefix_commands, "/lastseen <amount>");
- goto("wait");
- }
- amount = list.getIndex(args, 0);
- if(!isDouble(amount)) {
- msg.prefix(sender, prefix_commands, "Number expected.");
- goto("wait");
- }
- if(amount < 1) {
- msg.prefix(sender, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- modTimer(-5);
- msg.prefix(sender, prefix_commands, "These players were last seen:");
- table = table.new("§f", 12, 12);
- msg.string(sender, table.getStart(table));
- msg.string(sender, table.get(table, "Player", "Date"));
- msg.string(sender, table.getMiddle(table));
- lastseenStatement = databank.prepare("SELECT player_id, MAX(leave_time) AS max_time FROM playtime GROUP BY player_id ORDER BY max_time DESC LIMIT ?;");
- databank.setInt(lastseenStatement, 1, amount);
- result = databank.execute(lastseenStatement);
- while(databank.next(result)) {
- id = databank.getInt(result, 1);
- time = databank.getLong(result, 2);
- msg.string(sender, table.get(table, string.concat("§a", player.getNameFromId(id)), string.concat("§e", time.getString(time))));
- }
- msg.string(sender, table.getEnd(table));
- databank.close(result);
- databank.close(lastseenStatement);
- goto("wait");
- @feed
- if(size > 1) {
- msg.prefix(player, prefix_commands, "/feed [player]");
- goto("wait");
- }
- if(size == 0) {
- p = player;
- }
- if(size == 1) {
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(player != p) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " has been feed."));
- }
- }
- player.setHunger(p, 20);
- player.setSaturation(p, 5);
- msg.prefix(p, prefix_commands, "You have been feed.");
- goto("wait");
- @tempfly
- if(size < 2) {
- msg.prefix(sender, prefix_commands, "/tempfly <player> <sec>");
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(sender, prefix_commands, "This player is not online.");
- goto("wait");
- }
- p_name = player.getName(player.getUuid(p_name));
- if(player.hasMinigame(p)) {
- msg.prefix(player, prefix_commands, "This player can´t fly now.");
- goto("wait");
- }
- sec = list.getIndex(args, 1);
- if(!isDouble(sec) || sec < 0) {
- msg.prefix(sender, prefix_commands, "Positive number expected.");
- goto("wait");
- }
- msg.prefix(sender, prefix_commands, string.concat(p_name, " can now fly for ", string.number(sec), " seconds."));
- msg.prefix(p, prefix_commands, string.concat("You can now fly for ", string.number(sec), " seconds."));
- player.setFly(p, true);
- duration = sec * 20;
- data.setTimer(p, "fly", duration);
- //status.addTimed(player, 55, duration, "Fly");
- goto("wait");
- @fly
- if(size > 2) {
- msg.prefix(player, prefix_commands, "/fly [player] [on/off]");
- goto("wait");
- }
- if(size >= 1) {
- if(!perm.has("fly.other", player)) {
- perm.no("fly.other", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- } else {
- p = player;
- }
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- if(player.hasMinigame(p) || (perm.has("fly", p) && !perm.has("isTeam", p))) {
- if(size == 2) {
- msg.prefix(player, prefix_commands, "This player can´t fly now.");
- } else {
- msg.prefix(player, prefix_commands, "You can´t fly now.");
- }
- goto("wait");
- }
- }
- if(size < 2) {
- new_state = player.toggleFly(p);
- } else {
- new_state = false;
- if(list.getIndex(args, 1) == "on") {
- new_state = true;
- }
- player.setFly(p, new_state);
- }
- if(new_state) {
- msg.prefix(p, prefix_commands, "You can fly now.");
- if(player != p) {
- p_name = player.getName(p);
- msg.prefix(player, prefix_commands, string.concat(p_name, " can fly now."));
- }
- } else {
- msg.prefix(p, prefix_commands, "You can´t fly anymore.");
- if(player != p) {
- p_name = player.getName(p);
- msg.prefix(player, prefix_commands, string.concat(p_name, " can´t fly anymore."));
- }
- }
- goto("wait");
- @tppos
- if(size < 3 || size > 5) {
- msg.prefix(player, prefix_commands, "/tppos <x> <y> <z> [world] [player]");
- goto("wait");
- }
- x = list.getIndex(args, 0);
- y = list.getIndex(args, 1);
- z = list.getIndex(args, 2);
- if(!isDouble(x) || !isDouble(y) || !isDouble(z)) {
- msg.prefix(player, prefix_commands, "x/y/z müssen Zahlen sein.");
- goto("wait");
- }
- if(size >= 4) {
- worldname = list.getIndex(args, 3);
- world = world.get(worldname);
- if(world == null) {
- msg.prefix(player, prefix_commands, "This world is not loaded.");
- goto("wait");
- }
- } else {
- world = loc.getWorld(entity.getLocation(player));
- }
- if(x < -32000) {
- x = -32000;
- } elseif(x > 32000) {
- x = 32000;
- }
- if(y < -64) {
- y = -64;
- } elseif(y > 319) {
- y = 319;
- }
- if(z < -32000) {
- z = -32000;
- } elseif(z > 32000) {
- z = 32000;
- }
- location = loc.new(world, x, y, z);
- if(size == 5) {
- p_name = list.getIndex(args, 4);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- } else {
- p = player;
- }
- if(player.hasMinigame(p)) {
- if(size == 5) {
- msg.prefix(player, prefix_commands, "This player can´t be teleported now.");
- goto("wait");
- }
- msg.prefix(player, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- if(player.teleport(p, location, true)) {
- if(player != p) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " was teleported."));
- }
- }
- goto("wait");
- @back
- if(size > 0) {
- msg.prefix(player, prefix_commands, "/back");
- goto("wait");
- }
- if(!player.canTeleport(player)) {
- msg.prefix(player, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- hasPerms = perm.has("isTeam", player);
- if(!hasPerms) {
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t use /back in this world.");
- goto("wait");
- }
- }
- location = player.getBackPos(player);
- if(location == null) {
- msg.prefix(player, prefix_commands, "No back-location available.");
- goto("wait");
- }
- world = loc.getWorld(location);
- if(world == null) {
- msg.prefix(player, prefix_commands, "This world is not loaded.");
- goto("wait");
- }
- if(!hasPerms) {
- world_name = world.getName(world);
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport to this world.");
- goto("wait");
- }
- }
- player.teleport(player, location, true);
- goto("wait");
- @clan
- if(size == 0) {
- @clanhelp
- msg.prefix(player, prefix_clan, "/clan...");
- msg.string(player, "§2 - info [id/name/tag] §rReturns info about a clan");
- msg.string(player, "§2 - list §rLists all clans");
- msg.string(player, "");
- msg.string(player, "§2 - create <name> <tag> §rCreates a clan. Costs §64096 §rsnuvis.");
- msg.string(player, "§2 - invite <name> §rInvites a player");
- msg.string(player, "§2 - accept <id/name/tag> §rAccepts an invitation");
- msg.string(player, "");
- msg.string(player, "§2 - kick <name> §rKicks a player");
- msg.string(player, "§2 - leader <name> §rPromote to clan-leader");
- msg.string(player, "§2 - mod <name> §rPromote to clan-mod");
- msg.string(player, "§2 - degrade <name> §rDemote a clan-mod");
- msg.string(player, "§2 - leave §rLeave a clan");
- msg.string(player, "");
- msg.string(player, "§2 - rename <name> <tag> §rRenames a clan. Costs §664 §rsnuvis.");
- msg.string(player, "§2 - setspawn §rSets a clan-spawn");
- msg.string(player, "§2 - spawn §rTeleports to clan-spawn");
- msg.string(player, "§2 - disband §rDisband a clan");
- msg.string(player, "");
- msg.string(player, "§2 - deposit <money> §rDeposit money to the clan account");
- msg.string(player, "§2 - withdraw <money> §rWithdraw money from the clan account");
- msg.string(player, "§2 - msg <message> §rSends a clan-message");
- msg.string(player, "§2 - mail <message> §rSends a clan-mail");
- msg.string(player, "§2 - shout <message> §rSends a message to all online players. Costs §664 §rsnuvis.");
- msg.string(player, "§2 - party §rInvites all online members to a party");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "invite") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan invite <name>");
- goto("wait");
- }
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player) && !player.isClanMod(player)) {
- msg.prefix(player, prefix_clan, "You have no permission for this.");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(string.toLowerCase(player.getName(player)) == string.toLowerCase(p_name)) {
- msg.prefix(player, prefix_clan, "You can´t invite yourself.");
- goto("wait");
- }
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(sender, prefix_clan, "This player has never been online.");
- goto("wait");
- }
- if(!isOnline(p_name)) {
- msg.prefix(player, prefix_clan, "This player has to be online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(player.isClanMember(player)) {
- msg.prefix(player, prefix_clan, "This player is already in a clan.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- p_id = player.getId(p);
- if(player.hasClanInvitation(p_id, clan_id)) {
- msg.prefix(player, prefix_clan, "This player already has an invitation from your clan.");
- goto("wait");
- }
- player.addClanInvitation(p_id, clan_id);
- clan_name = clan.getName(clan_id);
- msg.prefix(player, prefix_clan, string.concat("You invited §7", p_name, "§r to your clan."));
- msg.prefix(p, prefix_clan, string.concat("You got an clan invitation by §7", clan_name, "§r."));
- msg.string(p, string.getClickText("§r[§aAccept§r]", string.concat("/clan accept ", clan_id)));
- sgoto(6000, "remove_clan_invitation"); //5 Minuten
- goto("wait");
- }
- if(arg0 == "accept") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan accept <id/name/tag>");
- goto("wait");
- }
- if(player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are already in a clan.");
- goto("wait");
- }
- arg1 = list.getIndex(args, 1);
- if(isDouble(arg1)) {
- clan_id = arg1;
- clan_name = clan.getName(clan_id);
- if(clan_name == null) {
- msg.prefix(player, prefix_clan, "Unknown clan.");
- goto("wait");
- }
- } else {
- clan_id = clan.getIdFromName(arg1);
- if(clan_id == null) {
- clan_id = clan.getIdFromTag(arg1);
- if(clan_id == null) {
- msg.prefix(player, prefix_clan, "Unknown clan.");
- goto("wait");
- }
- }
- }
- player_id = player.getId(player);
- if(!player.hasClanInvitation(player_id, clan_id)) {
- msg.prefix(player, prefix_clan, "You have no invitation from this clan.");
- goto("wait");
- }
- clan.addMember(clan_id, player, "member");
- player.setHeadName(player);
- clan.msg(clan_id, string.concat("§7", player.getName(player), "§r joined the clan."));
- msg.prefix(player, prefix_clan, string.concat("You joined §7", clan_name, "§r."));
- clan_size = clan.getMembersAmount(clan_id);
- if(clan_size >= 15) {
- rank.offerClan(clan_id, "rank.lord");
- } elseif(clan_size >= 10) {
- rank.offerClan(clan_id, "rank.chief");
- } elseif(clan_size >= 5) {
- rank.offerClan(clan_id, "rank.commander");
- }
- goto("wait");
- }
- if(arg0 == "create") {
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/clan create <name> <tag>");
- goto("wait");
- }
- if(player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are already in a clan.");
- goto("wait");
- }
- clan_name = list.getIndex(args, 1);
- if(string.length(clan_name) > 20) {
- msg.prefix(player, prefix_clan, "Maximum 20 letters allowed for name.");
- goto("wait");
- }
- if(!string.onlyletters(clan_name)) {
- msg.prefix(player, prefix_clan, "Only letters are allowed.");
- goto("wait");
- }
- if(clan.isExistingName(clan_name)) {
- msg.prefix(player, prefix_clan, "This name already exists.");
- goto("wait");
- }
- clan_tag = list.getIndex(args, 2);
- tag_length = string.length(clan_tag);
- if(tag_length < 3 || tag_length > 4) {
- msg.prefix(player, prefix_clan, "3 to 4 letters allowed for tag.");
- goto("wait");
- }
- if(!string.onlyletters(clan_tag)) {
- msg.prefix(player, prefix_clan, "Only letters are allowed.");
- goto("wait");
- }
- if(clan.isExistingTag(clan_tag)) {
- msg.prefix(player, prefix_clan, "This tag already exists.");
- goto("wait");
- }
- if(!hasEnoughMoney(player, 4096)) { //1 Goldmünze
- msg.prefix(player, prefix_clan, "You need 4096 snuvis (1 gold coin).");
- goto("wait");
- }
- money.sub(player, 4096);
- clan_id = clan.create(clan_name, clan_tag);
- clan.addMember(clan_id, player, "leader");
- player.setHeadName(player);
- msg.prefix(player, prefix_clan, "Clan successful created.");
- goto("wait");
- }
- if(arg0 == "info") {
- if(size == 1) {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_commands, "/clan info <id/name/tag>");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan_name = clan.getName(clan_id);
- clan_tag = clan.getTag(clan_id);
- }
- if(size == 2) {
- arg1 = list.getIndex(args, 1);
- if(isDouble(arg1)) {
- clan_id = arg1;
- clan_name = clan.getName(clan_id);
- if(clan_name == null) {
- msg.prefix(player, prefix_clan, "Unknown clan.");
- goto("wait");
- }
- } else {
- clan_id = clan.getIdFromName(arg1);
- if(clan_id == null) {
- clan_id = clan.getIdFromTag(arg1);
- if(clan_id == null) {
- msg.prefix(player, prefix_clan, "Unknown clan.");
- goto("wait");
- }
- }
- clan_name = clan.getName(clan_id);
- }
- clan_tag = clan.getTag(clan_id);
- }
- list = clan.getMembersList(clan_id);
- mod_list = list.new();
- members_list = list.new();
- iter = iterator(list);
- while(hasNext(iter)) {
- player_uuid = next(iter);
- player_name = player.getName(player_uuid);
- player_id = player.getId(player_uuid);
- if(player.isClanLeader(player_id)) {
- leader = player_name;
- } else {
- if(player.isClanMod(player_id)) {
- list.add(mod_list, player_name);
- } else {
- list.add(members_list, player_name);
- }
- }
- }
- if(list.getSize(mod_list) == 0) {
- mods = "-";
- } else {
- mods = string.concatList(mod_list, ", ", 0, list.getSize(mod_list) - 1);
- }
- if(list.getSize(members_list) == 0) {
- members = "-";
- } else {
- members = string.concatList(members_list, ", ", 0, list.getSize(members_list) - 1);
- }
- msg.string(player, string.concat("§6§lClan §r", clan_name, " (", clan_tag, " #ID:", string.number(clan_id), ")"));
- msg.string(player, "§6Leader");
- msg.string(player, leader);
- msg.string(player, "§6Mods");
- msg.string(player, mods);
- msg.string(player, "§6Members");
- msg.string(player, members);
- msg.string(player, "§6Money");
- msg.string(player, string.number(clan.getMoney(clan_id)));
- goto("wait");
- }
- if(arg0 == "rename") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You are not a clan leader.");
- goto("wait");
- }
- if(size != 3) {
- msg.prefix(player, prefix_commands, "/clan rename <name> <tag>");
- goto("wait");
- }
- clan_name = list.getIndex(args, 1);
- if(string.length(clan_name) > 20) {
- msg.prefix(player, prefix_clan, "Maximum 20 letters allowed for name.");
- goto("wait");
- }
- if(!string.onlyletters(clan_name)) {
- msg.prefix(player, prefix_clan, "Only letters are allowed.");
- goto("wait");
- }
- if(clan.isExistingName(clan_name)) {
- msg.prefix(player, prefix_clan, "This name already exists.");
- goto("wait");
- }
- clan_tag = list.getIndex(args, 2);
- tag_length = string.length(clan_tag);
- if(tag_length < 3 || tag_length > 4) {
- msg.prefix(player, prefix_clan, "3 to 4 letters allowed for tag.");
- goto("wait");
- }
- if(!string.onlyletters(clan_tag)) {
- msg.prefix(player, prefix_clan, "Only letters are allowed.");
- goto("wait");
- }
- if(clan.isExistingTag(clan_tag)) {
- msg.prefix(player, prefix_clan, "This tag already exists.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- if(clan.getMoney(clan_id) < 64) {
- msg.prefix(player, prefix_clan, "Your clan needs 64 snuvis.");
- goto("wait");
- }
- clan.subMoney(clan_id, 64);
- clan.setName(clan_id, clan_name);
- clan.setTag(clan_id, clan_tag);
- clan.msg(clan_id, string.concat("Clan renamed to §7", clan_name, "§r."));
- //New tag for online players
- clan.updateHeadNames(clan_id);
- goto("wait");
- }
- if(arg0 == "msg") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/clan msg <message>");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.msg(clan_id, string.concat(player.getName(player), ": ", string.concatList(args, " ", 1, size - 1)));
- goto("wait");
- }
- if(arg0 == "mail") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/clan mail <message>");
- goto("wait");
- }
- if(player.isClanMember(player)) {
- msg.prefix(player, prefix_commands, "You have no permission for this.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.mail(clan_id, player.getName(player), string.concatList(args, " ", 1, size - 1));
- goto("wait");
- }
- if(arg0 == "shout") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/clan shout <message>");
- goto("wait");
- }
- if(player.isClanMember(player)) {
- msg.prefix(player, prefix_commands, "You have no permission for this.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- if(clan.getMoney(clan_id) < 64) {
- msg.prefix(player, prefix_clan, "Your clan needs 64 snuvis.");
- goto("wait");
- }
- clan.subMoney(clan_id, 64);
- msg.prefix("online", prefix_clan, string.concat(clan.getTag(clan_id), ": ", string.concatList(args, " ", 1, size - 1)));
- goto("wait");
- }
- if(arg0 == "deposit") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan deposit <money>");
- goto("wait");
- }
- money = list.getIndex(args, 1);
- if(!isDouble(money) || money < 0) {
- msg.prefix(player, prefix_clan, "Positive number expected.");
- goto("wait");
- }
- if(!hasEnoughMoney(player, money)) {
- msg.prefix(player, prefix_clan, "You can´t transfer more money than you have.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.addMoney(clan_id, money);
- money.sub(player, money);
- clan.msg(clan_id, string.concat("§7", player.getName(player), "§r transferred §7", string.number(money), "§r snuvis."));
- goto("wait");
- }
- if(arg0 == "party") {
- counter = 0;
- clan_id = player.getClanId(player);
- list = clan.getMembersList(clan_id);
- iter = iterator(list);
- while(hasNext(iter)) {
- p = player.get(next(iter));
- if(p != null) {
- temp = party.invitePlayer(player, p);
- if(temp == true) {
- counter++;
- }
- }
- }
- msg.prefix(player, prefix_clan, string.concat(string.number(counter), " online clan members invited to a party."));
- goto("wait");
- }
- if(arg0 == "withdraw") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You are not a clan leader.");
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan withdraw <money>");
- goto("wait");
- }
- money = list.getIndex(args, 1);
- if(!isDouble(money) || money < 0) {
- msg.prefix(player, prefix_clan, "Positive number expected.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan_money = clan.getMoney(clan_id);
- if(clan_money < money) {
- msg.prefix(player, prefix_clan, string.concat("There are only §7", string.number(clan_money), "§r snuvis on the clan account."));
- goto("wait");
- }
- clan.subMoney(clan_id, money);
- money.add(player, money);
- msg.prefix(player, prefix_clan, string.concat("You have withdrawn §7", string.number(money), "§r snuvis."));
- goto("wait");
- }
- if(arg0 == "leader") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You are not a clan leader.");
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan leader <name>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_clan, "This player has never been online.");
- goto("wait");
- }
- if(string.toLowerCase(player.getName(player)) == string.toLowerCase(p_name)) {
- msg.prefix(player, prefix_clan, "You can´t do this for yourself.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- if(!player.isSameClan(player, p_id)) {
- msg.prefix(player, prefix_clan, "This player is not in your clan.");
- goto("wait");
- }
- player.setClanRole(p_id, "leader");
- player.setClanRole(player, "mod");
- clan_id = player.getClanId(player);
- clan.msg(clan_id, string.concat("§7", p_name, "§r was set to clan leader."));
- goto("wait");
- }
- if(arg0 == "mod") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You are not a clan leader.");
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan leader <name>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_clan, "This player has never been online.");
- goto("wait");
- }
- if(string.toLowerCase(player.getName(player)) == string.toLowerCase(p_name)) {
- msg.prefix(player, prefix_clan, "You can´t do this for yourself.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- if(!player.isSameClan(player, p_id)) {
- msg.prefix(player, prefix_clan, "This player is not in your clan.");
- goto("wait");
- }
- player.setClanRole(p_id, "mod");
- clan_id = player.getClanId(player);
- clan.msg(clan_id, string.concat("§7", p_name, "§r was set to clan mod."));
- goto("wait");
- }
- if(arg0 == "degrade") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You are not a clan leader.");
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan degrade <name>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_clan, "This player has never been online.");
- goto("wait");
- }
- if(string.toLowerCase(player.getName(player)) == string.toLowerCase(p_name)) {
- msg.prefix(player, prefix_clan, "You can´t do this for yourself.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- if(!player.isSameClan(player, p_id)) {
- msg.prefix(player, prefix_clan, "This player is not in your clan.");
- goto("wait");
- }
- player.setClanRole(p_id, "member");
- clan_id = player.getClanId(player);
- clan.msg(clan_id, string.concat("§7", p_name, "§r was degraded."));
- goto("wait");
- }
- if(arg0 == "kick") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player) && !player.isClanMod(player)) {
- msg.prefix(player, prefix_clan, "You have no permission for this.");
- goto("wait");
- }
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/clan kick <name>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_clan, "This player has never been online.");
- goto("wait");
- }
- if(string.toLowerCase(player.getName(player)) == string.toLowerCase(p_name)) {
- msg.prefix(player, prefix_clan, "You can´t do this for yourself.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- p_id = player.getId(p_uuid);
- if(!player.isSameClan(player, p_id)) {
- msg.prefix(player, prefix_clan, "This player is not in your clan.");
- goto("wait");
- }
- if(player.isClanLeader(p_id)) {
- msg.prefix(player, prefix_clan, "You can´t kick the leader.");
- goto("wait");
- }
- if(player.isClanMod(player) && player.isClanMod(p_id)) {
- msg.prefix(player, prefix_clan, "You can´t kick another mod.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.msg(clan_id, string.concat("§7", p_name, "§r got kicked out of the clan."));
- clan.removeMember(clan_id, p_id);
- p = read.player(p_name);
- if(p_name != null) {
- player.setHeadName(p);
- }
- goto("wait");
- }
- if(arg0 == "disband") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You are not a clan leader.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.msg(clan_id, "Clan disbanded.");
- list = clan.getMembersList(clan_id);
- clan.delete(clan_id);
- iter = iterator(list);
- while(hasNext(iter)) {
- p = player.get(next(iter));
- if(p != null) {
- player.setHeadName(p);
- }
- }
- goto("wait");
- }
- if(arg0 == "leave") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(player.isClanLeader(player)) {
- msg.prefix(player, prefix_clan, "You have to set another leader first.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.msg(clan_id, string.concat("§7", player.getName(player), "§r left the clan."));
- clan.removeMember(clan_id, player);
- player.setHeadName(player);
- goto("wait");
- }
- if(arg0 == "list") {
- table = table.new("§b", 2, 6, 4, 5);
- msg.string(player, table.getStart(table));
- msg.string(player, table.get(table, "§2ID", "§2Name", "§2Tag", "§2Members"));
- msg.string(player, table.getMiddle(table));
-
- list = clan.getIdList();
- iter = iterator(list);
- while(hasNext(iter)) {
- clan_id = next(iter);
- name = clan.getName(clan_id);
- tag = clan.getTag(clan_id);
- amount = clan.getMembersAmount(clan_id);
- msg.string(player, table.get(table, string.number(clan_id), name, tag, string.number(amount)));
- }
- msg.string(player, table.getEnd(table));
- goto("wait");
- }
- if(arg0 == "setspawn") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- if(!player.isClanLeader(player) && !player.isClanMod(player)) {
- msg.prefix(player, prefix_clan, "You have no permission for this.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- clan.setSpawn(clan_id, entity.getLocation(player));
- msg.prefix(player, prefix_clan, "New clan spawn set.");
- goto("wait");
- }
- if(arg0 == "spawn") {
- if(!player.isInClan(player)) {
- msg.prefix(player, prefix_clan, "You are not in a clan.");
- goto("wait");
- }
- clan_id = player.getClanId(player);
- spawn_loc = clan.getSpawn(clan_id);
- if(spawn_loc == null) {
- msg.prefix(player, prefix_clan, "No clan spawn set.");
- goto("wait");
- }
- if(!perm.has("isTeam", player)) {
- world_name = world.getName(loc.getWorld(entity.getLocation(player)));
- if(world.isGamesName(world_name)) {
- msg.prefix(player, prefix_commands, "You can´t teleport in this world.");
- goto("wait");
- }
- }
- player.teleport(player, spawn_loc, true);
- goto("wait");
- }
- goto("clanhelp");
- @remove_clan_invitation
- list.removeIndex(clan_invitations, 0);
- goto("wait");
- @color
- msg.string(player, string.getSpacer());
- msg.string(player, " §0&0 §1&1 §2&2 §3&3 §4&4 §5&5 §6&6 §7&7");
- msg.string(player, " §8&8 §9&9 §a&a §b&b §c&c §d&d §e&e §f&f");
- msg.string(player, " &l §l(bold)");
- msg.string(player, " &m §m(strikethrough)");
- msg.string(player, " &n §n(underline)");
- msg.string(player, " &o §o(italic)");
- goto("wait");
- @comeback
- if(player.isOnAdventure(player)) {
- msg.prefix(player, prefix_skill, "Comeback not allowed during adventure.");
- goto("wait");
- }
- amount = skill.getAmount(player, "skill.comeback");
- if(amount <= 0) {
- msg.prefix(player, prefix_skill, "You have not bought that skill.");
- goto("wait");
- }
- loc = player.getDeathLoc(player);
- if(loc == null) {
- msg.prefix(player, prefix_skill, "No death location found.");
- goto("wait");
- }
- new_amount = amount - 1;
- skill.setAmount(player, "skill.comeback", new_amount);
- msg.prefix(player, prefix_skill, string.concat("Used Comeback. New amount: ", string.number(new_amount)));
- entity.teleport(player, loc);
- player.resetDeathLoc(player);
- goto("wait");
- @setspawn
- if(size != 1) {
- @setspawnhelp
- msg.prefix(player, prefix_commands, "/setspawn ...");
- msg.string(player, "§6 - server");
- msg.string(player, "§6 - games");
- msg.string(player, "§6 - creative");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- new_spawn = string.location(entity.getLocation(player));
- config = getServerConfig();
- if(arg0 == "games") {
- config.set(config, "gamesspawn", new_spawn);
- msg.prefix(player, prefix_commands, "New spawn for gaming world set.");
- } elseif(arg0 == "server") {
- config.set(config, "serverspawn", new_spawn);
- msg.prefix(player, prefix_commands, "New main Spawn set.");
- } elseif(arg0 == "creative") {
- config.set(config, "creativespawn", new_spawn);
- msg.prefix(player, prefix_commands, "New spawn for creative world set.");
- } else {
- goto("setspawnhelp");
- }
- config.saveAsync(config);
- goto("wait");
- @heal
- if(size > 1) {
- msg.prefix(player, prefix_commands, "/heal [player]");
- goto("wait");
- }
- if(size == 0) {
- p = player;
- } elseif(size == 1) {
- p_name = list.getIndex(args, 0);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- if(player != p) {
- msg.prefix(player, prefix_commands, string.concat(player.getName(p), " was healed."));
- }
- }
- living.heal(p, 50);
- player.setHunger(p, 20);
- player.setSaturation(p, 5);
- living.clearEffects(p);
- entity.setBurning(p, 0);
- msg.prefix(p, prefix_commands, "You have been healed.");
- goto("wait");
- @inv
- if(size == 0) {
- @invhelp
- msg.prefix(player, prefix_commands, "/inv ...");
- if(perm.has("inv.backups", player)) {
- msg.string(player, "§6 - backups <player> §rLists backup invs of a player");
- }
- if(perm.has("inv.ignore", player)) {
- msg.string(player, "§6 - ignore §rToggles inventory change on world change");
- }
- if(perm.has("inv.see", player)) {
- msg.string(player, "§6 - see <player> §rOpens an inventory of a player");
- }
- if(perm.has("inv.reload", player)) {
- msg.string(player, "§6 - reload <player> §rReloads an inventory of a player");
- }
- if(perm.has("inv.saveFor", player)) {
- msg.string(player, "§6 - saveFor <player> <world> §rSaves your inventory for a player");
- }
- if(perm.has("inv.loadFrom", player)) {
- msg.string(player, "§6 - loadFrom <player> <world> §rLoads an inventory of a player for you");
- }
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "backups") {
- if(!perm.has("inv.backups", player)) {
- perm.no("inv.backups", player);
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/inv backups <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- player_id = player.getId(p_uuid);
- dir = file.new(string.concat("scripts/configs/inv_data/backup/", player_id));
- if(!file.exists(dir)) {
- msg.prefix(player, prefix_commands, "No backups available.");
- goto("wait");
- }
- file_list = file.getList(dir);
- if(list.getSize(file_list) == 0) {
- msg.prefix(player, prefix_commands, "No backups available.");
- goto("wait");
- }
- f_map = map.new();
- table = table.new("§b", 3, 14);
- msg.string(player, table.getStart(table));
- msg.string(player, table.get(table, "#", p_name));
- msg.string(player, table.getMiddle(table));
- iter = iterator(file_list);
- while(hasNext(iter)) {
- f = next(iter);
- f_name = file.getName(f);
- split_array = string.split("_", f_name);
- time_array = string.split("-", split_array[2]);
- year = time_array[0];
- month = time.getStringFromNumber(read.number(time_array[1]));
- day = time.getStringFromNumber(read.number(time_array[2]));
- hour = time.getStringFromNumber(read.number(time_array[3]));
- minute = time.getStringFromNumber(read.number(time_array[4]));
- second = time.getStringFromNumber(read.number(time_array[5]));
- time_string = string.concat(day, ".", month, ".", year, " ", hour, ":", minute, ":", second);
- map.add(f_map, read.number(split_array[1]), time_string);
- }
- for(i = 1; i <= 10; i++) {
- time_string = map.get(f_map, i);
- msg.string(player, table.get(table, string.number(i), time_string));
- }
- msg.string(player, table.getEnd(table));
- goto("wait");
- }
- if(arg0 == "ignore") {
- if(!perm.has("inv.ignore", player)) {
- perm.no("inv.ignore", player);
- goto("wait");
- }
- ignore = player.hasInvIgnore(player);
- if(ignore == null) {
- ignore = false;
- }
- if(ignore) {
- msg.prefix(player, prefix_commands, "Your inventory will change on joining another world.");
- } else {
- msg.prefix(player, prefix_commands, "You´ll keep your inventory on joining another world.");
- }
- player.invIgnore(player, !ignore);
- goto("wait");
- }
- if(arg0 == "see") {
- if(!perm.has("inv.see", player)) {
- perm.no("inv.see", player);
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/inv see <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- inv.show(p, player);
- goto("wait");
- }
- if(arg0 == "reload") {
- if(!perm.has("inv.reload", player)) {
- perm.no("inv.reload", player);
- goto("wait");
- }
- if(size < 2) {
- msg.prefix(player, prefix_commands, "/inv reload <player>");
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(player, prefix_commands, "This player is not online.");
- goto("wait");
- }
- world = loc.getWorld(entity.getLocation(p));
- inv.loadFromPlayer(p, p, world);
- msg.prefix(player, prefix_commands, "Inventory reloaded.");
- goto("wait");
- }
- if(arg0 == "savefor") {
- if(size != 1 && size != 3) {
- msg.prefix(player, prefix_commands, "/inv saveFor <player> <world>");
- goto("wait");
- }
- if(size == 1) {
- for_player_or_id = player.getId(player);
- world = loc.getWorld(entity.getLocation(player));
- }
- if(size == 3) {
- if(!perm.has("inv.saveFor", player)) {
- perm.no("inv.saveFor", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p != null) {
- msg.prefix(player, prefix_commands, "This player is online. Use /inv see to change this inventory.");
- goto("wait");
- }
- for_player_or_id = player.getId(p_uuid);
- world_name = list.getIndex(args, 2);
- world = world.get(world_name);
- if(world == null) {
- msg.prefix(player, prefix_world, "This world is not loaded.");
- goto("wait");
- }
- }
- inv.saveForPlayer(player, for_player_or_id, world);
- msg.prefix(player, prefix_commands, "Inventory saved.");
- goto("wait");
- }
- if(arg0 == "loadfrom") {
- if(size != 1 && size != 3) {
- msg.prefix(player, prefix_commands, "/inv loadFrom <player> <world>");
- goto("wait");
- }
- if(size == 1) {
- from_player_or_id = player.getId(player);
- world = loc.getWorld(entity.getLocation(player));
- }
- if(size == 3) {
- if(!perm.has("inv.loadFrom", player)) {
- perm.no("inv.loadFrom", player);
- goto("wait");
- }
- p_name = list.getIndex(args, 1);
- p_uuid = player.getUuid(p_name);
- if(p_uuid == null) {
- msg.prefix(player, prefix_commands, "This player has never been online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(p != null) {
- msg.prefix(player, prefix_commands, "§cThis player is online. Loaded inventory can differ from /inv see!");
- }
- from_player_or_id = player.getId(p_uuid);
- world_name = list.getIndex(args, 2);
- world = world.get(world_name);
- if(world == null) {
- msg.prefix(player, prefix_world, "This world is not loaded.");
- goto("wait");
- }
- }
- inv.loadFromPlayer(player, from_player_or_id, world);
- msg.prefix(player, prefix_commands, "Inventory loaded.");
- goto("wait");
- }
- goto("wait");
- @sponsor
- msg.prefix(sender, prefix_commands, "Be a fancy sponsor and ...");
- msg.string(sender, string.concat(" §a+ §cUse §dcolors §rand §bicons§r", icon.getGoldCoin(), icon.getCraftingTable(), icon.getHeart()));
- msg.string(sender, " §a+ §rEquip your head with §b/hat");
- msg.string(sender, " §a+ §rGet all online players in a party with §b/joinme");
- msg.string(sender, " §a+ §rSet your own §bjoin, leave §rand §bdeath message");
- goto("wait");
- @dev
- if(size == 0) {
- @dev_syntax
- msg.prefix(sender, prefix_commands, "/dev ...");
- msg.string(sender, "§6 - boost §rBoosts you up to the clouds");
- msg.string(sender, "§6 - debug <list/clear> §rManages logged debug messages");
- msg.string(sender, "§6 - entities <world> §rLists all entities in a world");
- msg.string(sender, "§6 - logo §rGives the Mundus Crassus logo on a banner");
- msg.string(sender, "§6 - yeet §rThrows you in sight");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "logo") {
- player.giveItem(player, logo);
- goto("wait");
- }
- if(arg0 == "boost") {
- entity.setMotion(player, 0, 5, 0);
- goto("wait");
- }
- if(arg0 == "yeet") {
- if(size != 2){
- msg.prefix(player, prefix_commands, "/dev yeet <strength>");
- goto("wait");
- }
- yeet_strength = list.getIndex(args, 1);
- yeet(player,math.abs(yeet_strength));
- msg.string(player, "§4YEET");
- goto("wait");
- }
- if(arg0 == "debug") {
- arg1 = string.toLowerCase(list.getIndex(args, 1));
- if(arg1 == "list") {
- error_size = debug.getSize();
- if(error_size == 0) {
- msg.prefix(player, prefix_commands, "No debugs logged.");
- goto("wait");
- }
- for(i = 0; i < error_size; i++) {
- msg.string(player, debug.getIndex(i));
- }
- goto("wait");
- }
- if(arg1 == "clear") {
- debug.clear();
- msg.prefix(player, prefix_commands, "All logged debugs deleted.");
- goto("wait");
- }
- goto("wait");
- }
- if(arg0 == "entities") {
- if(size != 2) {
- msg.prefix(player, prefix_commands, "/dev entities <world>");
- goto("wait");
- }
- world_name = string.toLowerCase(list.getIndex(args, 1));
- world = world.get(world_name);
- if(world == null) {
- msg.prefix(player, prefix_world, "This world is not loaded.");
- goto("wait");
- }
- list = world.getEntities(world);
- size = list.getSize(list);
- map = map.new();
- living = 0;
- for(i = 0; i < size; i++) {
- element = list.getIndex(list, i);
- if(isLiving(element)) {
- living++;
- entity_type = entity.getType(element);
- n = map.get(map, entity_type);
- if(n == null) {
- map.add(map, entity_type, 1);
- } else {
- map.add(map, entity_type, n + 1);
- }
- }
- }
- msg.string(player, "§0-------------------------------------------------");
- msg.string(player, string.concat("Living: ", living));
- iter = map.iterator(map);
- table = table.new("§b", 14, 14);
- msg.string(player, table.getStart(table));
- while(hasNext(iter)) {
- element1 = next(iter);
- if(hasNext(iter)) {
- element2 = next(iter);
- } else {
- element2 = "";
- }
- msg.string(player, table.get(table, element1, element2));
- }
- msg.string(player, table.getEnd(table));
- goto("wait");
- }
- goto("dev_syntax");
- function yeet(player, strength){
- array = entity.getLook(player);
- x = array[0] * (math.log(strength) + 1);
- y = math.abs(array[1]) * (math.log(strength) + 1);
- z = array[2] * (math.log(strength) + 1);
- entity.setMotion(player, x, y, z);
- }
- @memory
- msg.prefix(sender, prefix_commands, string.concat("Used RAM: ", string.number(usedMemory()), " / ", string.number(math.round(allocatedMemory())), " MB"));
- goto("wait");
- @world
- if(size == 0) {
- @world_syntax
- msg.prefix(sender, prefix_world, "/world ...");
- msg.string(sender, "§b - info [world] §rShows info about a world");
- msg.string(sender, "§b - tp <world> [player] §rTeleports a player to a world");
- msg.string(sender, "§b - list §rShows all loaded worlds");
- msg.string(sender, "§b - setspawn §rSets the spawn of a world");
- msg.string(sender, "§b - diffi <world> <diffi> §rSets the difficulty of a world");
- goto("wait");
- }
- arg0 = string.toLowerCase(list.getIndex(args, 0));
- if(arg0 == "info") {
- if(size == 1) {
- if(!isPlayer(sender)) {
- msg.string(sender, "Not possible on console.");
- goto("wait");
- }
- world = loc.getWorld(entity.getLocation(player));
- } else {
- worldname = list.getIndex(args, 1);
- world = world.get(worldname);
- if(world == null) {
- msg.prefix(sender, prefix_world, "This world is not loaded.");
- goto("wait");
- }
- }
- msg.string(sender, string.getSpacer());
- msg.string(sender, string.concat("§6World: §r", world.getName(world)));
- msg.string(sender, string.concat("§6Thunder: §r", world.hasThunder(world)));
- msg.string(sender, string.concat("§6Rain: §r", world.hasRain(world)));
- chunks = world.getLoadedChunks(world);
- forced = 0;
- for(i = 0; i < array.getSize(chunks); i++) {
- if(world.isForceLoadedChunk(chunks[i])) {
- forced++;
- }
- }
- msg.string(sender, string.concat("§6Chunks: §r", string.number(forced), "/", string.number(array.getSize(chunks))));
- time = world.getTime(world);
- while(time >= 24000) {
- time -= 24000;
- }
- msg.string(sender, string.concat("§6Time: §r", string.number(time)));
- goto("wait");
- }
- if(arg0 == "tp") {
- if(size < 2 || size > 3) {
- msg.prefix(sender, prefix_world, "/world tp <world> [player]");
- goto("wait");
- }
- if(size >= 2) {
- world_name = string.toLowerCase(list.getIndex(args, 1));
- world = world.get(world_name);
- if(world == null) {
- msg.prefix(sender, prefix_world, "This world is not loaded.");
- goto("wait");
- }
- }
- if(size > 2) {
- p_name = list.getIndex(args, 2);
- p = read.player(p_name);
- if(p == null) {
- msg.prefix(sender, prefix_world, "This player is not online.");
- goto("wait");
- }
- } else {
- if(!isPlayer(sender)) {
- msg.string(sender, "Not possible on console.");
- goto("wait");
- }
- p = sender;
- }
- if(!player.canTeleport(p)) {
- if(size == 3) {
- msg.prefix(sender, prefix_commands, "This player can´t be teleported now.");
- goto("wait");
- }
- msg.prefix(sender, prefix_commands, "You can´t teleport now.");
- goto("wait");
- }
- if(sender != p) {
- msg.prefix(sender, prefix_world, string.concat(player.getName(p), " was teleported to the spawn of the world ", world_name, "."));
- }
- if(world_name == "games") {
- loc = world.getGamesSpawn();
- } elseif(world_name == "creative") {
- loc = world.getCreativeSpawn();
- } else {
- loc = world.getSpawn(world);
- }
- player.teleport(p, loc, true);
- goto("wait");
- }
- if(arg0 == "list") {
- msg.prefix(sender, prefix_world, "Loaded worlds:");
- worldlist = world.getAll();
- for(i = 0; i < list.getSize(worldlist); i++) {
- msg.string(sender, string.concat(" - ", world.getName(list.getIndex(worldlist, i))));
- }
- msg.string(sender, string.getSpacer());
- goto("wait");
- }
- if(arg0 == "setspawn") {
- if(!isPlayer(sender)) {
- msg.string(sender, "Not possible on console.");
- goto("wait");
- }
- location = entity.getLocation(sender);
- world = loc.getWorld(location);
- world.setSpawn(location, world);
- msg.prefix(sender, prefix_world, string.concat("New spawn of the world ", world.getName(world), " set."));
- goto("wait");
- }
- if(arg0 == "diffi") {
- if(size != 3) {
- msg.prefix(sender, prefix_world, "/world diffi <world> <diffi>");
- goto("wait");
- }
- worldname = list.getIndex(args, 1);
- world = world.get(worldname);
- if(world == null) {
- msg.prefix(sender, prefix_world, "This world is not loaded.");
- goto("wait");
- }
- diffi_string = list.getIndex(args, 2);
- if(!(diffi_string == "PEACEFUL" || diffi_string == "EASY" || diffi_string == "NORMAL" || diffi_string == "HARD")) {
- msg.prefix(sender, prefix_world, "False input.");
- goto("wait");
- }
- world.setDifficulty(world, diffi_string);
- msg.prefix(sender, prefix_world, "Difficulty changed.");
- goto("wait");
- }
- goto("world_syntax");
- @giveup
- script_id = quest.getFromPlayer(player);
- if(script_id == null) {
- msg.prefix(player, prefix_quest, "You are not in a quest.");
- goto("wait");
- }
- script = script.getFromId(script_id);
- if(script == null) {
- msg.dev("Player used giveup on corrupt quest");
- quest.removePlayer(player); //in case of corrupt quest
- msg.prefix(player, prefix_quest, "You have no quest.");
- goto("wait");
- }
- setScriptVar("player", player);
- modTimer.scriptCallEvent("quest_term", script);
- quest.term(script, player);
- msg.prefix(player, prefix_quest, "Quest termed.");
- goto("wait");
- @leave
- set = player.getMinigameIds(player);
- iter = iterator(set);
- if(hasNext(iter)) {
- script_id = next(iter);
- script = script.getFromId(script_id);
- if(script == null) {
- msg.dev(string.concat("Player left game without existing gamescript ", set));
- msg.prefix(player, prefix_commands, "An error occured and some displays may not have been reset. So please panic and call for an admin! No, please don´t do that.");
- player.resetMinigames(player);
- entity.teleport(player, world.getGamesSpawn());
- goto("wait");
- }
- minigame.hub(script, player);
- goto("wait");
- }
- msg.prefix(player, "§dScript", "You are not in a minigame.");
- goto("wait");
- function minigame.hub(script, player) {
- script.setVar(script, "player", player);
- modTimer.scriptCallEvent("player_giveup", script);
- }
- @jail
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/jail <player>");
- } else {
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_jail, "This player has never been online.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- if(isJailed(p_uuid)) {
- msg.prefix(player, prefix_jail, "This player is already jailed.");
- goto("wait");
- }
- player_name = player.getName(player);
- if(player_name == p_name) {
- msg.prefix(player, prefix_jail, "Self-Jailing isn´t a good idea.");
- goto("wait");
- }
- if(!isOnline(p_name)) {
- msg.prefix(player, prefix_jail, "This player is not online.");
- goto("wait");
- }
- p = read.player(p_name);
- if(perm.has("jail", p)) {
- msg.prefix(player, prefix_jail, "You can´t jail this player.");
- goto("wait");
- }
- list.add(jailed_list, p_uuid);
- msg.prefix(player, prefix_jail, string.concat(p_name, " wurde gejailt"));
- showJail(p_name);
- if(!jail_loop_active) {
- sgoto(5, "jailloop");
- }
- }
- goto("wait");
- @unjail
- if(size != 1) {
- msg.prefix(player, prefix_commands, "/unjail <player>");
- } else {
- p_name = list.getIndex(args, 0);
- if(!checkIfEverOnline(p_name)) {
- msg.prefix(player, prefix_jail, "This player has never been online.");
- goto("wait");
- }
- p_uuid = player.getUuid(p_name);
- if(!isJailed(p_uuid)) {
- msg.prefix(player, prefix_jail, "This player is not jailed.");
- goto("wait");
- }
- list.remove(jailed_list, p_uuid);
- msg.prefix(player, prefix_jail, "You freed this player from jail.");
- }
- goto("wait");
- function inv.show(from_player, to_player) {
- player_inv = player.getInv(from_player);
- inv = inv.new("222222222222222222222222222222222222222222222", text.new(string.concat("Inventory of ", player.getName(from_player))));
- set.add($invseeids, inv.getId(inv));
- setInvItem(inv, 0, living.getEquip(from_player, read.slot("HEAD")));
- setInvItem(inv, 1, living.getEquip(from_player, read.slot("CHEST")));
- setInvItem(inv, 2, living.getEquip(from_player, read.slot("LEGS")));
- setInvItem(inv, 3, living.getEquip(from_player, read.slot("FEET")));
- setInvItem(inv, 4, living.getOffHand(from_player));
- for(slot = 0; slot <= 8; slot++) {
- setInvItem(inv, slot + 36, inv.getItem(player_inv, slot));
- }
- for(slot = 9; slot <= 35; slot++) {
- setInvItem(inv, slot, inv.getItem(player_inv, slot));
- }
- inv.open(inv, to_player);
- }
- function setInvItem(inv, slot, item) {
- if(item == null || item.isAir(item)) {
- return;
- }
- inv.setItem(inv, slot, item);
- }
- function rank.add(index, tech_rank, chat_rank) {
- $rank_array[index, 0] = tech_rank;
- $rank_array[index, 1] = chat_rank;
- }
- //--------------------------------------------------
- //Vote-Utils
- //--------------------------------------------------
- function vote.register(name, time) {
- uuid = player.getUuid(name);
- if(uuid == null) {
- stmt = databank.prepare("INSERT INTO votes (name, time) VALUES(?,?);");
- databank.setString(stmt, 1, name);
- databank.setLong(stmt, 2, time);
- databank.workerExecute(stmt);
- return;
- }
- stmt = databank.prepare("INSERT INTO votes (name, player_id, time) VALUES(?,?,?);");
- id = player.getId(uuid);
- databank.setString(stmt, 1, name);
- databank.setInt(stmt, 2, id);
- databank.setLong(stmt, 3, time);
- databank.workerExecute(stmt);
- }
- //--------------------------------------------------
- //LoginRequests-Utils
- //--------------------------------------------------
- function loginrequests.getPlayer(player_id, amount, result) {
- list = list.new();
- if(result == null) {
- stmt = databank.prepare("SELECT player_id,time,result FROM login_requests WHERE player_id = ? ORDER BY TIME DESC LIMIT ?;");
- databank.setInt(stmt, 1, player_id);
- databank.setInt(stmt, 2, amount);
- } else {
- stmt = databank.prepare("SELECT player_id,time,result FROM login_requests WHERE player_id = ? AND result = ? ORDER BY TIME DESC LIMIT ?;");
- databank.setInt(stmt, 1, player_id);
- databank.setString(stmt, 2, result);
- databank.setInt(stmt, 3, amount);
- }
- result = databank.execute(stmt);
- while(databank.next(result)) {
- a = array.new(3);
- a[0] = databank.getInt(result, 1); //player_id
- a[1] = databank.getLong(result, 2); //time
- a[2] = databank.getString(result, 3); //result
- list.add(list, a);
- }
- databank.close(stmt);
- databank.close(result);
- return list;
- }
- function loginrequests.getAll(amount, result) {
- list = list.new();
- if(result == null) {
- stmt = databank.prepare("SELECT player_id,time,result FROM login_requests ORDER BY TIME DESC LIMIT ?;");
- databank.setInt(stmt, 1, amount);
- } else {
- stmt = databank.prepare("SELECT player_id,time,result FROM login_requests WHERE result = ? ORDER BY TIME DESC LIMIT ?;");
- databank.setString(stmt, 1, result);
- databank.setInt(stmt, 2, amount);
- }
-
- result = databank.execute(stmt);
- while(databank.next(result)) {
- a = array.new(3);
- a[0] = databank.getInt(result, 1); //player_id
- a[1] = databank.getLong(result, 2); //time
- a[2] = databank.getString(result, 3); //result
- list.add(list, a);
- }
- databank.close(stmt);
- databank.close(result);
- return list;
- }
- //--------------------------------------------------
- //Tip-Utils
- //--------------------------------------------------
- function tip.setLoop(tipp_key, boolean) {
- stmt = databank.prepare("UPDATE tipps SET tipp_loop = ? WHERE tipp_key = ?;");
- databank.setBool(stmt, 1, boolean);
- databank.setString(stmt, 2, tipp_key);
- databank.workerExecute(stmt);
- }
- function tip.remove(tipp_key) {
- stmt = databank.prepare("DELETE FROM tipps WHERE tipp_key = ?;");
- databank.setString(stmt, 1, tipp_key);
- databank.workerExecute(stmt);
- }
- function tip.getAll() {
- list = list.new();
- stmt = databank.prepare("SELECT * FROM tipps;");
- result = databank.execute(stmt);
- while(databank.next(result)) {
- a = array.new(3);
- a[0] = databank.getString(result, 1);
- a[1] = databank.getString(result, 2);
- a[2] = databank.getBool(result, 3);
- list.add(list, a);
- }
- databank.close(stmt);
- databank.close(result);
- return list;
- }
- //--------------------------------------------------
- //Databank-Utils
- //--------------------------------------------------
- function databank.isExistingTable(table) {
- temp = false;
- stmt = databank.prepare("SHOW TABLES");
- result = databank.execute(stmt);
- while(databank.next(result)) {
- if(table == databank.getString(result, 1)) {
- temp = true;
- break;
- }
- }
- databank.close(result);
- databank.close(stmt);
- return temp;
- }
- function databank.getTableFields(table) {
- fields = list.new();
- stmt = databank.prepare(string.concat("SHOW FIELDS FROM ", table));
- result = databank.execute(stmt);
- while(databank.next(result)) {
- list.add(fields, databank.getString(result, 1));
- }
- databank.close(result);
- databank.close(stmt);
- return fields;
- }
- function databank.getTableDatatypes(table) {
- stmt = databank.prepare(string.concat("SHOW CREATE TABLE ", table));
- result = databank.execute(stmt);
- if(databank.next(result)) {
- temp = databank.getString(result, 2);
- }
- databank.close(result);
- databank.close(stmt);
- return temp;
- }
- //--------------------------------------------------
- //Tipp-Utils
- //--------------------------------------------------
- function tipp.register(tipp_key, tipp_value) {
- stmt = databank.prepare("INSERT INTO tipps (tipp_key, tipp_value) VALUES (?,?) ON DUPLICATE KEY UPDATE tipp_value = ?");
- databank.setString(stmt, 1, tipp_key);
- databank.setString(stmt, 2, tipp_value);
- databank.setString(stmt, 3, tipp_value);
- databank.workerExecute(stmt);
- }
- function tipp.get(tipp_key) {
- tipp_value = null;
- stmt = databank.prepare("SELECT tipp_value FROM tipps WHERE tipp_key = ?;");
- databank.setString(stmt, 1, tipp_key);
- result = databank.execute(stmt);
- if(databank.next(result)) {
- tipp_value = databank.getString(result, 1);
- }
- databank.close(result);
- databank.close(stmt);
- return tipp_value;
- }
- function tipp.exists(tipp_key) {
- stmt = databank.prepare("SELECT tipp_key FROM tipps WHERE tipp_key = ?;");
- databank.setString(stmt, 1, tipp_key);
- result = databank.execute(stmt);
- temp = false;
- if(databank.next(result)) {
- temp = true;
- }
- databank.close(result);
- databank.close(stmt);
- return temp;
- }
- //--------------------------------------------------
- //Warp-Utils
- //--------------------------------------------------
- function warp.create(warp_name, location) {
- config = config.new(string.concat("scripts/configs/warps"), warp_name);
- config.set(config, "world", world.getName(loc.getWorld(location)));
- config.set(config, "x", loc.getX(location));
- config.set(config, "y", loc.getY(location));
- config.set(config, "z", loc.getZ(location));
- config.set(config, "yaw", loc.getYaw(location));
- config.set(config, "pitch", loc.getPitch(location));
- config.saveAsync(config);
- }
- function warp.exists(warp_name) {
- config = config.new(string.concat("scripts/configs/warps"), warp_name);
- return config.exists(config);
- }
- function warp.get(warp_name) {
- config = config.new(string.concat("scripts/configs/warps"), warp_name);
- if(config.exists(config)) {
- config.load(config);
- }
- world_name = config.getString(config, "world", "null");
- if(world_name == "null") {
- return null;
- }
- world = world.get(world_name);
- x = config.getDouble(config, "x", 0);
- y = config.getDouble(config, "y", 100);
- z = config.getDouble(config, "z", 0);
- yaw = config.getDouble(config, "yaw", 0);
- pitch = config.getDouble(config, "pitch", 0);
- return loc.new(world, x, y, z, yaw, pitch);
- }
- function warp.delete(warp_name) {
- config = config.new(string.concat("scripts/configs/warps"), warp_name);
- if(!config.exists(config)) {
- return false;
- }
- config.delete(config);
- return true;
- }
- function warp.getList() {
- dir = file.new(string.concat("scripts/configs/warps"));
- warps_list = list.new();
- if(file.exists(dir)) {
- file_list = file.getList(dir);
- iter = iterator(file_list);
- while(hasNext(iter)) {
- warp = file.getName(next(iter));
- warp = string.replace(warp, ".snuvic", "");
- list.add(warps_list, warp);
- }
- }
- return warps_list;
- }
- //--------------------------------------------------
- //Home-Utils
- //--------------------------------------------------
- function home.set(player_id, home_name, location) {
- stmt = databank.prepare("INSERT INTO new_homes (player_id, name, world_name, x, y, z, yaw, pitch) VALUES (?,?,?,?,?,?,?,?);");
- databank.setInt(stmt, 1, player_id);
- databank.setString(stmt, 2, home_name);
- databank.setString(stmt, 3, world.getName(loc.getWorld(location)));
- databank.setInt(stmt, 4, loc.getX(location));
- databank.setInt(stmt, 5, loc.getY(location));
- databank.setInt(stmt, 6, loc.getZ(location));
- databank.setInt(stmt, 7, loc.getYaw(location));
- databank.setInt(stmt, 8, loc.getPitch(location));
- databank.workerExecute(stmt);
- }
- function home.delete(player_id, home_name) {
- stmt = databank.prepare("DELETE FROM new_homes WHERE player_id = ? AND name = ?;");
- databank.setInt(stmt, 1, player_id);
- databank.setString(stmt, 2, home_name);
- databank.workerExecute(stmt);
- }
- function home.getLocation(player_id, home_name) {
- stmt = databank.prepare("SELECT world_name, x, y, z, yaw, pitch FROM new_homes WHERE player_id = ? AND name = ?;");
- databank.setInt(stmt, 1, player_id);
- databank.setString(stmt, 2, home_name);
- result = databank.execute(stmt);
- if(databank.next(result)) {
- world = world.get(databank.getString(result, 1));
- if(world == null) {
- return null;
- }
- x = databank.getDouble(result, 2);
- y = databank.getDouble(result, 3);
- z = databank.getDouble(result, 4);
- yaw = databank.getDouble(result, 5);
- pitch = databank.getDouble(result, 6);
- location = loc.new(world, x, y, z, yaw, pitch);
- }
- databank.close(result);
- databank.close(stmt);
- return location;
- }
- function home.exists(player_id, home_name) {
- stmt = databank.prepare("SELECT player_id FROM new_homes WHERE player_id = ? AND name = ?;");
- databank.setInt(stmt, 1, player_id);
- databank.setString(stmt, 2, home_name);
- result = databank.execute(stmt);
- if(databank.next(result)) {
- temp = true;
- } else {
- temp = false;
- }
- databank.close(result);
- databank.close(stmt);
- return temp;
- }
- function home.getList(player_id) {
- homes_list = list.new();
- stmt = databank.prepare("SELECT name FROM new_homes WHERE player_id = ?;");
- databank.setInt(stmt, 1, player_id);
- result = databank.execute(stmt);
- while(databank.next(result)) {
- list.add(homes_list, databank.getString(result, 1));
- }
- databank.close(result);
- databank.close(stmt);
- return homes_list;
- }
- function hasTpaRequest(player_uuid, aim_uuid) {
- for(i = 0; i < list.getSize($tpa_request); i++) {
- array = list.getIndex($tpa_request, i);
- if(array[0] == player_uuid && array[1] == aim_uuid) {
- list.removeIndex($tpa_request, i);
- return true;
- }
- }
- return false;
- }
- function addTpaRequest(player_uuid, aim_uuid) {
- array = array.new(2);
- array[0] = player_uuid;
- array[1] = aim_uuid;
- list.add($tpa_request, array);
- }
- function showJail(player_name) {
- if(isOnline(player_name)) {
- inv.open($jailmenu, read.player(player_name));
- }
- }
- function isJailed(player_uuid) {
- return(list.contains($jailed_list, player_uuid));
- }
- function command.register(command, description) {
- command.add(command);
- list.add($command_list, command);
- map.add($command_map, command, description);
- }
- function command.registerAlias(alias, command) {
- command.add(alias);
- map.add($alias_map, alias, command);
- }
- //--------------------------------------------------
- //Time-Utils
- //--------------------------------------------------
- //Spielzeit aller Online-Spieler
- function playtime.getTotalOnlineMinutes() {
- minutes = 0;
- iter = iterator(players.toList());
- while(hasNext(iter)) {
- minutes += playtime.getPlayerOnlineMinutes(player.getId(next(iter)));
- }
- return minutes;
- }
- //Spielzeit in einem Zeitraum exkl. der Spielzeit der Online-Spieler
- function playtime.getInterval(from_cal, to_cal) {
- stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE join_time > ? AND join_time < ?;");
- databank.setLong(stmt, 1, time.from(from_cal));
- databank.setLong(stmt, 2, time.from(to_cal));
- result = databank.execute(stmt);
- if(databank.next(result)) {
- minutes = databank.getLong(result, 1) / 1000 / 60;
- } else {
- minutes = 0;
- }
- databank.close(result);
- databank.close(stmt);
- return minutes;
- }
- //Gesamte Spielzeit inkl. der Spielzeit der Online-Spieler
- function playtime.getTotal() {
- minutes = playtime.getTotalOnlineMinutes();
- stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime;");
- result = databank.execute(stmt);
- if(databank.next(result)) {
- minutes += databank.getLong(result, 1) / 1000 / 60;
- }
- databank.close(result);
- databank.close(stmt);
- return minutes;
- }
- //Spielzeit eines Spielers in einem Zeitraum exkl. der Online-Spielzeit
- function playtime.getPlayerInterval(player_id, from_cal, to_cal) {
- stmt = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE player_id = ? AND join_time > ? AND join_time < ?;");
- databank.setInt(stmt, 1, player_id);
- databank.setLong(stmt, 2, time.from(from_cal));
- databank.setLong(stmt, 3, time.from(to_cal));
- result = databank.execute(stmt);
- if(databank.next(result)) {
- minutes = databank.getLong(result, 1) / 1000 / 60;
- } else {
- minutes = 0;
- }
- databank.close(result);
- databank.close(stmt);
- return minutes;
- }
- function playtime.getPlayersPerInterval(from_cal, to_cal) {
- set = set.new();
- stmt = databank.prepare("SELECT player_id FROM playtime WHERE join_time > ? AND join_time < ?;");
- databank.setLong(stmt, 1, time.from(from_cal));
- databank.setLong(stmt, 2, time.from(to_cal));
- result = databank.execute(stmt);
- while(databank.next(result)) {
- set.add(set, databank.getInt(result, 1));
- }
- databank.close(result);
- databank.close(stmt);
- return set.getSize(set);
- }
- function time.getYearDays(year) {
- days = 365;
- if(year % 4 == 0) {
- days++;
- }
- return days;
- }
- function time.getMonthDays(month, year) {
- days = month.getDays(month);
- //Schaltjahre
- if(month == 2 && year % 4 == 0) {
- days++;
- }
- return days;
- }
- function month.register(month_index, shortname, days) {
- $month_array[month_index, 0] = shortname;
- $month_array[month_index, 1] = days;
- }
- function month.getShortName(month) {
- return $month_array[month - 1, 0];
- }
- function month.getDays(month) {
- return $month_array[month - 1, 1];
- }
- //--------------------------------------------------
- //Player-Utils
- //--------------------------------------------------
- function player.hasClanInvitation(player_or_id, clan_id) {
- if(isPlayer(player_or_id)) {
- player_id = player.getId(player_or_id);
- } else {
- player_id = player_or_id;
- }
- iter = iterator($clan_invitations);
- while(hasNext(iter)) {
- invitation = next(iter);
- p_id = invitation[0];
- c_id = invitation[1];
- if(player_id == p_id && clan_id == c_id) {
- return true;
- }
- }
- return false;
- }
- function player.addClanInvitation(player_id, clan_id) {
- invitation = array.new(2);
- invitation[0] = player_id;
- invitation[1] = clan_id;
- list.add($clan_invitations, invitation);
- }
- //--------------------------------------------------
- //Party-Utils
- //--------------------------------------------------
- function party.invitePlayer(inviter, invitee) {
- //Wenn bereits ein Party besteht, diese Party-ID verwenden.
- //Ansonsten überprüfen, ob der Einlader bereits andere Spieler eingeladen hat. Dann diese Party-ID verwenden.
- //Ansonsten neue Party-ID vergeben.
- inviter_uuid = player.getUuid(inviter);
- if(player.isInParty(inviter)) {
- party_id = player.getPartyId(inviter);
- } else {
- party_id = map.get($party_invite_ids, inviter_uuid);
- if(party_id == null) {
- party_id = ++$party_counter;
- }
- }
- if(invitee == null) {
- return "inviteeNotOnline";
- }
- if(inviter == invitee) {
- return "inviterEqualsInvitee";
- }
- if(player.isInParty(inviter)) {
- if(!player.isPartyLeaderOrMod(inviter)) {
- return "inviterNotPermitted";
- }
- }
- if(player.isInParty(invitee)) {
- return "inviteeAlreadyInParty";
- }
- invitee_uuid = player.getUuid(invitee);
- list = map.get($party_invitations, invitee_uuid);
- if(list == null) {
- list = list.new();
- map.add($party_invitations, invitee_uuid, list);
- }
- if(list.contains(list, inviter_uuid)) {
- return "inviteeAlreadyInvited";
- }
- list.add(list, inviter_uuid);
- list.add($deluuid, inviter_uuid);
- list.add($delkeytime, time.getMillis());
- list = map.get($delkeytimes, invitee_uuid);
- if(list == null) {
- list = list.new();
- map.add($delkeytimes, invitee_uuid, list);
- }
- list.add(list, time.getMillis());
- map.add($party_invite_ids, inviter_uuid, party_id);
- inviter_name = player.getName(inviter);
- msg.prefix(invitee, $prefix_party, string.concat(inviter_name, " invites you to a party."));
- msg(invitee, text.merge(text.new(" §5=> §rAccept ? "), string.getClickText("[§aYes§r] ", string.concat("/party accept ", inviter_name)), string.getClickText("[§cNo§r]", string.concat("/party deny ", inviter_name))));
- sgoto(200, "deletePartyInvitation"); //Einladung bleibt 1 Minute lang erhalten
- return true;
- }
- function party.kickPlayer(player, reason) {
- party_id = player.getPartyId(player);
- //Nachrichten
- player_name = player.getName(player);
- if(reason == "kick") {
- message = string.concat("§r", player_name, " has been kicked out of the party.");
- } else {
- message = string.concat("§r", player_name, " has left the party.");
- }
- party.sendMessage(party_id, message);
- player_uuid = player.getUuid(player_name);
- //aus Partyliste entfernen
- party_list = party.getList(party_id);
- list.remove(party_list, player_uuid);
- //ID und Rang entfernen
- rank = player.getPartyRank(player);
- player.delPartyRank(player);
- player.delPartyId(player);
- //Einladungen löschen
- map.remove($party_invitations, player_uuid);
- map.remove($delkeytimes, player_uuid);
- //Wenn Party keine zwei Spieler mehr hat, dann Party auflösen
- if(list.getSize(party_list) < 2) {
- party.delete(party_id);
- return;
- }
- //Wenn Spieler Partyleiter war, neuen Partyleiter ernennen
- if(rank == "Leader") {
- new_player = player.get(list.getIndex(party_list, 0));
- player.setPartyRank(new_player, "Leader");
- party.sendMessage(party_id, string.concat("§r", player.getName(new_player), " is now Leader."));
- }
- }
- function party.sendMessage(party_id, message) {
- iter = iterator(party.getList(party_id));
- while(hasNext(iter)) {
- msg.prefix(player.get(next(iter)), $prefix_party, message);
- }
- }
- function party.delete(party_id) {
- party.sendMessage(party_id, "Party disbanded.");
- iter = iterator(party.getList(party_id));
- while(hasNext(iter)) {
- player = player.get(next(iter));
- player.delPartyRank(player);
- player.delPartyId(player);
- }
- }
- @deletePartyInvitation
- player_uuid = list.getIndex(deluuid, 0);
- invitations = map.get(party_invitations, player_uuid);
- keytimes = map.get(delkeytimes, player_uuid);
- if(invitations != null) {
- if(list.getSize(invitations) != 0) {
- keytime = list.getIndex(delkeytime, 0);
- keytime2 = list.getIndex(keytimes, 0);
- list.remove(delkeytime, keytime);
- if(keytime == keytime2) {
- index = list.getIndexOf(keytimes, keytime2);
- list.remove(keytimes, keytime2);
- list.removeIndex(invitations, index);
- }
- }
- }
- goto("wait");
- //--------------------------------------------------
- //Plot-Utils
- //--------------------------------------------------
- function plot.registerMoveEvents(world) {
- if(world == null) {
- return;
- }
- iter = plot.iterator(world);
- while(hasNext(iter)) {
- plot = next(iter);
- plot.setMoveEvent(plot, world);
- }
- }
- function plot.delMoveEvent(plot) {
- plot_id = plot.getId(plot);
- for(i = 0; i < list.getSize($plot_move_ids_list); i++) {
- a = list.getIndex($plot_move_ids_list, i);
- if(a[1] == plot_id) {
- event.removeMoveData(a[0]);
- list.removeIndex($plot_move_ids_list, i);
- break;
- }
- }
- }
- function plot.setMoveEvent(plot, world) {
- if(!plot.isCity(plot) && !plot.isPlot(plot)) {
- return;
- }
- x1 = plot.getMinX(plot);
- y1 = plot.getMinY(plot);
- z1 = plot.getMinZ(plot);
- x2 = plot.getMaxX(plot);
- y2 = plot.getMaxY(plot);
- z2 = plot.getMaxZ(plot);
- loc1 = loc.new(world, x1, y1, z1);
- loc2 = loc.new(world, x2, y2, z2);
- move_id = event.addMoveData(loc1, loc2, 100, -1);
- plot_id = plot.getId(plot);
- a = array.new(2);
- a[0] = move_id;
- a[1] = plot_id;
- list.add($plot_move_ids_list, a);
- }
- function plot.getPlotIdFromMoveId(move_id) {
- iter = iterator($plot_move_ids_list);
- while(hasNext(iter)) {
- a = next(iter);
- if(a[0] == move_id) {
- return a[1];
- }
- }
- return null;
- }
- function plot.getMoveIdFromPlotId(plot_id) {
- iter = iterator($plot_move_ids_list);
- while(hasNext(iter)) {
- a = next(iter);
- if(a[1] == plot_id) {
- return a[0];
- }
- }
- return null;
- }
- @checkForPlot
- player_uuid = list.getIndex(check_for_plot_list, 0);
- list.removeIndex(check_for_plot_list, 0);
- player = player.get(player_uuid);
- if(player == null) {
- map.remove(actual_move_id, player_uuid);
- goto("wait");
- }
- player_loc = entity.getLocation(player);
- plot_list = plot.get(player_loc);
- if(list.getSize(plot_list) == 0) {
- map.remove(actual_move_id, player_uuid);
- } else {
- list.add(check_for_plot_list, player_uuid);
- sgoto(100, "checkForPlot");
- }
- goto("wait");
- function tpBottom(player) {
- player_loc = entity.getLocation(player);
- y = loc.getY(player_loc);
- while(y > -64 && block.isAir(block.get(player_loc))) {
- loc.setY(player_loc, y);
- y--;
- }
- if(y <= 0) {
- return;
- }
- loc.addY(player_loc, 1);
- entity.teleport(player, player_loc);
- }
- //--------------------------------------------------
- //Mailbox-Utils
- //--------------------------------------------------
- function mailbox.sendItem(player_id, item) {
- index = mailbox.getFreeIndex(player_id);
- if(index == -1) {
- return false;
- }
- mailbox.setItem(player_id, index, item);
- return true;
- }
- function mailbox.clear(player_id) {
- pfad = "scripts/configs/inv_data/mailbox";
- config = config.new(pfad, player_id);
- if(config.exists(config)) {
- config.load(config);
- }
- for(index = 0; index < 27; index++) {
- config.set(config, string.concat("item-", string.number(index)), "null");
- }
- config.saveAsync(config);
- }
- function mailbox.setItem(player_id, index, item) {
- pfad = "scripts/configs/inv_data/mailbox";
- config = config.new(pfad, player_id);
- if(config.exists(config)) {
- config.load(config);
- }
- item_string = string.item(item);
- config.set(config, string.concat("item-", string.number(index)), item_string);
- config.saveAsync(config);
- }
- function mailbox.removeItem(player_id, index) {
- pfad = "scripts/configs/inv_data/mailbox";
- config = config.new(pfad, player_id);
- if(config.exists(config)) {
- config.load(config);
- }
- config.set(config, string.concat("item-", string.number(index)), "null");
- config.saveAsync(config);
- }
- function mailbox.getFreeIndex(player_id) {
- pfad = "scripts/configs/inv_data/mailbox";
- config = config.new(pfad, player_id);
- if(config.exists(config)) {
- config.load(config);
- }
- for(i = 0; i < 27; i++) {
- item_string = config.getString(config, string.concat("item-", string.number(i)), "null");
- if(item_string == "null") {
- return i;
- }
- }
- return -1;
- }
- function mailbox.show(to_player, player_id, bool) {
- pfad = "scripts/configs/inv_data/mailbox";
- config = config.new(pfad, player_id);
- if(config.exists(config)) {
- config.load(config);
- }
- if(bool) {
- inv = inv.new("222222222222222222222222222", text.new(string.concat("Mailbox from ", player.getNameFromId(player_id))));
- } else {
- inv = inv.new("111111111111111111111111111", text.new(string.concat("Mailbox from ", player.getNameFromId(player_id))));
- }
- for(i = 0; i < 27; i++) {
- item_string = config.getString(config, string.concat("item-", string.number(i)), "null");
- if(item_string == "null") {
- continue;
- }
- item = read.item(item_string);
- if(item == null) {
- continue;
- }
- setInvItem(inv, i, item);
- }
- inv.open(inv, to_player);
- }
- function updateVoteInv() {
- lore_list = list.new();
- list.add(lore_list, text.new("§fCost: §e1 VP"));
- list.add(lore_list, text.new(string.concat("§fCounter: §e", string.number(getHomeBoost()))));
- list.add(lore_list, text.new("§5Every 20 VP the possible homes increase by one."));
- list.add(lore_list, text.new("§5Counter automatically shrinks by one every day."));
- inv.setItem($vote_inv, 2, item.create("RED_BED", 1, "§aMore Homes", lore_list));
- }
- function getAdditionalVoteHomes() {
- return math.roundDown(getHomeBoost() / 20);
- }
- function getHomeBoost() {
- config = getServerConfig();
- return config.getDouble(config, "homeBoostPoints", 0);
- }
- function increaseHomeBoost() {
- config = getServerConfig();
- points = config.getDouble(config, "homeBoostPoints", 0) + 1;
- config.set(config, "homeBoostPoints", points);
- config.saveAsync(config);
- updateVoteInv();
- }
- function decreaseHomeBoost() {
- config = getServerConfig();
- points = config.getDouble(config, "homeBoostPoints", 0) - 1;
- if(points < 0) {
- points = 0;
- }
- config.set(config, "homeBoostPoints", points);
- config.saveAsync(config);
- updateVoteInv();
- }
|