commands.txt 86 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859
  1. waitfor(1);
  2. command.clear();
  3. command.add("gamerule");
  4. command.add("time");
  5. command.add("weather");
  6. command.add("stats");
  7. command.add("party");
  8. command.add("game");
  9. command.add("perm");
  10. command.add("setrank");
  11. command.add("tpall");
  12. command.add("tipp");
  13. command.add("help");
  14. //command.add("grow");
  15. //command.add("plant");
  16. command.add("start");
  17. command.add("senditem");
  18. command.add("invsee");
  19. command.add("boost");
  20. command.add("jail");
  21. command.add("unjail");
  22. command.add("memory");
  23. command.add("mem");
  24. command.add("datatools");
  25. command.add("dt");
  26. command.add("gilde");
  27. command.add("g");
  28. command.add("guild");
  29. command.add("pay");
  30. command.add("group");
  31. command.add("friend");
  32. command.add("f");
  33. command.add("placearte");
  34. command.add("slots");
  35. command.add("skill");
  36. command.add("pinfo"); //Gpvp
  37. command.add("playerinfo"); //Gpvp
  38. command.add("bank"); //Gpvp
  39. command.add("money"); //Gpvp
  40. command.add("human");
  41. command.add("h");
  42. command.add("bug");
  43. command.add("report");
  44. //command.add("rocket");
  45. command.add("ticket");
  46. command.add("mail");
  47. //command.add("ass");
  48. command.add("shop");
  49. command.add("coord");
  50. command.add("coords");
  51. command.add("sign");
  52. command.add("playtime");
  53. command.add("head");
  54. command.add("skull");
  55. command.add("inv");
  56. command.add("marco");
  57. command.add("ping");
  58. command.add("p");
  59. command.add("plot");
  60. command.add("speed");
  61. command.add("mayo");
  62. command.add("home");
  63. command.add("listhomes");
  64. command.add("sethome");
  65. command.add("delhome");
  66. command.add("enderchest");
  67. command.add("gm");
  68. command.add("gamemode");
  69. command.add("tp");
  70. //command.add("teleport");
  71. command.add("say");
  72. command.add("showtables");
  73. command.add("showfields");
  74. command.add("droptables");
  75. command.add("seen");
  76. command.add("warp");
  77. command.add("setwarp");
  78. command.add("delwarp");
  79. command.add("lastseen");
  80. command.add("world");
  81. command.add("color");
  82. command.add("setspawn");
  83. command.add("setgamesspawn");
  84. command.add("spawn");
  85. command.add("back");
  86. command.add("tppos");
  87. command.add("feed");
  88. command.add("fly");
  89. command.add("heal");
  90. command.add("butcher");
  91. command.add("iteminfo");
  92. command.add("itemdb");
  93. command.add("elytra");
  94. command.add("top");
  95. command.add("games");
  96. command.add("copyisland");
  97. command.add("ci");
  98. list.new(command_list);
  99. list.add(command_list, "weather");
  100. list.add(command_list, "time");
  101. list.add(command_list, "gamerule");
  102. list.add(command_list, "stats");
  103. list.add(command_list, "party");
  104. list.add(command_list, "game");
  105. list.add(command_list, "perm");
  106. list.add(command_list, "setrank");
  107. list.add(command_list, "tpall");
  108. list.add(command_list, "tipp");
  109. list.add(command_list, "script");
  110. list.add(command_list, "senditem");
  111. list.add(command_list, "invsee");
  112. list.add(command_list, "boost");
  113. list.add(command_list, "jail");
  114. list.add(command_list, "unjail");
  115. list.add(command_list, "memory");
  116. list.add(command_list, "datatools");
  117. list.add(command_list, "friend");
  118. list.add(command_list, "playerinfo");
  119. list.add(command_list, "money");
  120. list.add(command_list, "human");
  121. list.add(command_list, "bug");
  122. list.add(command_list, "report");
  123. //list.add(command_list, "rocket");
  124. list.add(command_list, "ticket");
  125. list.add(command_list, "mail");
  126. //list.add(command_list, "ass");
  127. list.add(command_list, "shop");
  128. list.add(command_list, "sign");
  129. list.add(command_list, "coords");
  130. list.add(command_list, "playtime");
  131. list.add(command_list, "head");
  132. list.add(command_list, "skull");
  133. list.add(command_list, "inv");
  134. list.add(command_list, "marco");
  135. list.add(command_list, "ping");
  136. list.add(command_list, "plot");
  137. list.add(command_list, "speed");
  138. list.add(command_list, "mayo");
  139. list.add(command_list, "home");
  140. list.add(command_list, "listhomes");
  141. list.add(command_list, "sethome");
  142. list.add(command_list, "delhome");
  143. list.add(command_list, "enderchest");
  144. list.add(command_list, "gamemode");
  145. list.add(command_list, "teleport");
  146. list.add(command_list, "say");
  147. list.add(command_list, "showtables");
  148. list.add(command_list, "showfields");
  149. list.add(command_list, "droptables");
  150. list.add(command_list, "seen");
  151. list.add(command_list, "warp");
  152. list.add(command_list, "setwarp");
  153. list.add(command_list, "delwarp");
  154. list.add(command_list, "lastseen");
  155. list.add(command_list, "color");
  156. list.add(command_list, "setspawn");
  157. list.add(command_list, "setgamesspawn");
  158. list.add(command_list, "spawn");
  159. list.add(command_list, "back");
  160. list.add(command_list, "tppos");
  161. list.add(command_list, "feed");
  162. list.add(command_list, "fly");
  163. list.add(command_list, "heal");
  164. list.add(command_list, "iteminfo");
  165. //list.add(command_list, "grow");
  166. //list.add(command_list, "plant");
  167. list.add(command_list, "start");
  168. list.add(command_list, "games");
  169. list.add(command_list, "top");
  170. list.add(command_list, "world");
  171. list.add(command_list, "elytra");
  172. list.add(command_list, "copyisland");
  173. event.load("inv_click");
  174. event.load("missing_perm");
  175. event.load("missing_command");
  176. event.load("custom_command");
  177. event.load("block_click");
  178. event.load("portal");
  179. event.load("player_death");
  180. event.load("player_login");
  181. event.load("player_logout");
  182. map.new(aliasmap);
  183. map.add(aliasmap, "ci", "copyisland");
  184. map.add(aliasmap, "mem", "memory");
  185. map.add(aliasmap, "tp", "teleport");
  186. map.add(aliasmap, "gm", "gamemode");
  187. map.add(aliasmap, "p", "plot");
  188. map.add(aliasmap, "coord", "coords");
  189. map.add(aliasmap, "h", "human");
  190. map.add(aliasmap, "dt", "datatools");
  191. map.add(aliasmap, "pinfo", "playerinfo");
  192. map.add(aliasmap, "g", "gilde");
  193. map.add(aliasmap, "guild", "gilde");
  194. map.add(aliasmap, "f", "friend");
  195. map.add(aliasmap, "bank", "money");
  196. map.add(aliasmap, "itemdb", "iteminfo");
  197. airitem = "minecraft:air";
  198. wheat_item_type = "minecraft:wheat";
  199. farmland_item_type = "minecraft:farmland";
  200. gamesspawn = read.location(ggv("SERVER", "gamesspawn"));
  201. gpvpworld = world.get("gpvpnew");
  202. gamesworld = world.get("games");
  203. set.new(nohomeworld); //Blacklist für Homes in bestimmten Welten
  204. set.add(nohomeworld, gpvpworld);
  205. set.add(nohomeworld, gamesworld);
  206. list.new(sameinvworlds);
  207. list.add(sameinvworlds, "world");
  208. list.add(sameinvworlds, "world_nether");
  209. list.add(sameinvworlds, "world_end");
  210. list.add(sameinvworlds, "world2");
  211. list.add(sameinvworlds, "iceworld");
  212. list.add(sameinvworlds, "survival");
  213. map.new(plotpos1);
  214. map.new(plotpos2);
  215. map.new(invseeids);
  216. set.new(fields);
  217. list.new(permgroups);
  218. list.add(permgroups, "mod");
  219. list.add(permgroups, "supporter");
  220. list.add(permgroups, "builder");
  221. list.add(permgroups, "worldedit");
  222. list.add(permgroups, "teleport");
  223. list.add(permgroups, "vip");
  224. list.add(permgroups, "dev");
  225. groupsstring = text.concatList(permgroups, "/", 0, list.getSize(permgroups) - 1);
  226. map.new(permgroupsmap);
  227. map.add(permgroupsmap, "worldedit", 1);
  228. map.add(permgroupsmap, "mod", 2);
  229. map.add(permgroupsmap, "builder", 3);
  230. map.add(permgroupsmap, "vip", 4);
  231. map.add(permgroupsmap, "dev", 5);
  232. map.add(permgroupsmap, "teleport", 6);
  233. map.add(permgroupsmap, "supporter", 9);
  234. map.new(permgroupsmap2);
  235. map.add(permgroupsmap2, 1, "worldedit");
  236. map.add(permgroupsmap2, 2, "mod");
  237. map.add(permgroupsmap2, 3, "builder");
  238. map.add(permgroupsmap2, 4, "vip");
  239. map.add(permgroupsmap2, 5, "dev");
  240. map.add(permgroupsmap2, 6, "teleport");
  241. map.add(permgroupsmap2, 9, "supporter");
  242. executeOnce = databank.prepare("CREATE TABLE IF NOT EXISTS logoutdata (player_id INT NOT NULL PRIMARY KEY, logouttime BIGINT, FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);");
  243. databank.workerExecute(executeOnce);
  244. executeOnce2 = databank.prepare("CREATE TABLE IF NOT EXISTS tipps (tipp_key VARCHAR(20) PRIMARY KEY, tipp_value VARCHAR(255));");
  245. databank.workerExecute(executeOnce2);
  246. msg("dev", "§bCommands §rwurden geladen");
  247. @wait
  248. wait();
  249. if(event == "custom_command") {
  250. //Permission-Check
  251. command = text.toLowerCase(command);
  252. origin = map.get(aliasmap, command);
  253. if(origin != null) {
  254. command = origin;
  255. }
  256. if(!perm.has(player, command)) {
  257. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  258. goto("wait");
  259. }
  260. size = list.getSize(args);
  261. affectedplayer = player;
  262. affectedname = player_name;
  263. igoto(command);
  264. goto("wait");
  265. }
  266. if(event == "block_click") {
  267. if(item.getType(entity.getEquip(player, "hand")) == "minecraft:wooden_sword") {
  268. player_id = player.getId(player);
  269. if(action == "left") {
  270. map.add(plotpos1, player_id, block_loc);
  271. pos = "Pos1";
  272. } elseif(action == "right") {
  273. map.add(plotpos2, player_id, block_loc);
  274. pos = "Pos2";
  275. }
  276. x = loc.getX(block_loc);
  277. y = loc.getY(block_loc);
  278. z = loc.getZ(block_loc);
  279. player.speak(player, "§dPlots", pos, " (", text.number(x), "/", text.number(y), "/", text.number(z), ") gesetzt");
  280. }
  281. goto("wait");
  282. }
  283. if(event == "player_death") {
  284. setBackPos(player);
  285. goto("wait");
  286. }
  287. if(event == "portal") {
  288. checkInvChange(player, entity.getLocation(player)); //Location ist hier egal
  289. goto("wait");
  290. }
  291. if(event == "missing_command") {
  292. player.speak(sender_name, "§6Commands", "Kein Command ", command_name);
  293. goto("wait");
  294. }
  295. if(event == "missing_perm") {
  296. player.speak(sender_name, "§6Commands", "Du hast keine Permission für ", command_name);
  297. goto("wait");
  298. }
  299. if(event == "inv_click") {
  300. //Wenn ein Spieler ein invsee-Inventar offen hat
  301. inv_id = map.get(invseeids, player.getId(player));
  302. if(inv_id != null) {
  303. safeGiveItemPlayer(player, item);
  304. inv.update(player);
  305. }
  306. try {
  307. //Item übertrage
  308. text.split(splitlist, " ", inv_name);
  309. p_name = list.getIndex(splitlist, 2);
  310. p = read.player(p_name);
  311. player.removeItem(p, item);
  312. //Inventar neu laden
  313. inventar = inv.new("222222222222222222222222222222222222", concat("Inventar von ", p_name));
  314. map.add(invseeids, player.getId(player), inv.getId(inventar));
  315. for(slot = 0; slot <= 35; slot++) {
  316. item = player.getInvSlot(p, slot);
  317. inv.setItem(inventar, slot, item);
  318. }
  319. inv.open(inventar, player);
  320. } catch {
  321. player.speak(sender_name, "§6Commands", "Der Spieler ist nicht mehr online");
  322. }
  323. goto("wait");
  324. }
  325. if(event == "inv_close") {
  326. map.remove(invseeids, player.getId(player));
  327. goto("wait");
  328. }
  329. goto("wait");
  330. @setrank
  331. if(size != 2) {
  332. player.speak(player, "§6Commands", "§r/setrank <player> <rank>");
  333. goto("wait");
  334. }
  335. player_name = list.getIndex(args, 0);
  336. if(!checkIfEverOnline(player_name)) {
  337. player.speak(player, "§6Commands", "§rDieser Spieler war noch nie online");
  338. goto("wait");
  339. }
  340. rank = list.getIndex(args, 1);
  341. setRank(player_name, rank);
  342. goto("wait");
  343. @perm
  344. if(size == 0) {
  345. @perm_syntax
  346. player.speak(player, "§zPerms", "§r/perm ...");
  347. msg(player, "§z - give <player> <perm>");
  348. msg(player, "§z - remove <player>");
  349. msg(player, "§z - removeall <player>");
  350. msg(player, "§z - list <player>");
  351. msg(player, "§z perm §r", groupsstring);
  352. goto("wait");
  353. }
  354. arg0 = list.getIndex(args, 0);
  355. if(arg0 == "give") {
  356. if(size != 3) {
  357. player.speak(player, "§zPerms", "/perm give <player> <perm>");
  358. } else {
  359. p_name = list.getIndex(args, 1);
  360. perm = list.getIndex(args, 2);
  361. if(!checkIfEverOnline(p_name)) {
  362. player.speak(player, "§zPerms", "§rDieser Spieler existiert nicht");
  363. goto("wait");
  364. }
  365. if(!isAPermGroup(perm)) {
  366. player.speak(player, "§zPerms", groupsstring);
  367. goto("wait");
  368. }
  369. p_id = player.getId(player.getUuid(p_name));
  370. perm_id = map.get(permgroupsmap, perm);
  371. if(hasPermAlready(p_id, perm_id)) {
  372. player.speak(player, "§zPerms", "§rPerm bereits hinzugefügt");
  373. goto("wait");
  374. }
  375. givePerm(p_id, perm_id);
  376. player.speak(player, "§zPerms", "§rDone");
  377. }
  378. goto("wait");
  379. }
  380. if(arg0 == "remove") {
  381. if(size != 3) {
  382. player.speak(player, "§zPerms", "/perm remove <player> <perm>");
  383. } else {
  384. p_name = list.getIndex(args, 1);
  385. perm = list.getIndex(args, 2);
  386. if(!checkIfEverOnline(p_name)) {
  387. player.speak(player, "§zPerms", "§rDieser Spieler existiert nicht");
  388. goto("wait");
  389. }
  390. if(!isAPermGroup(perm)) {
  391. player.speak(player, "§zPerms", groupsstring);
  392. goto("wait");
  393. }
  394. p_id = player.getId(player.getUuid(p_name));
  395. //Wenn marvinius eine Permission entfernt wird, wird dies blockiert, ausgenommen er tut dies selbst
  396. player_id = player.getId(player);
  397. if(player_id != 2) {
  398. if(p_id == 2) {
  399. msg(player, "§cSorry §s¯\_(ツ)_/¯");
  400. goto("wait");
  401. }
  402. }
  403. perm_id = map.get(permgroupsmap, perm);
  404. removePerm(p_id, perm_id);
  405. player.speak(player, "§zPerms", "§rDone");
  406. }
  407. goto("wait");
  408. }
  409. if(arg0 == "removeall") {
  410. if(size != 2) {
  411. player.speak(player, "§zPerms", "/perm removeall <player>");
  412. } else {
  413. p_name = list.getIndex(args, 1);
  414. if(!checkIfEverOnline(p_name)) {
  415. player.speak(player, "§zPerms", "§rDieser Spieler existiert nicht");
  416. goto("wait");
  417. }
  418. //Wenn marvinius Permissions entfernt werden, wird dies blockiert, ausgenommen er tut dies selbst
  419. p_id = player.getId(player.getUuid(p_name));
  420. player_id = player.getId(player);
  421. if(player_id != 2) {
  422. if(p_id == 2) {
  423. msg(player, "§cSorry §s¯\_(ツ)_/¯");
  424. goto("wait");
  425. }
  426. }
  427. removeAllPerms(p_id);
  428. player.speak(player, "§zPerms", "§rDone");
  429. }
  430. goto("wait");
  431. }
  432. if(arg0 == "list") {
  433. if(size != 2) {
  434. player.speak(player, "§zPerms", "/perm list <player>");
  435. } else {
  436. p_name = list.getIndex(args, 1);
  437. if(!checkIfEverOnline(p_name)) {
  438. player.speak(player, "§zPerms", "§rDieser Spieler existiert nicht");
  439. goto("wait");
  440. }
  441. p_id = player.getId(player.getUuid(p_name));
  442. permslist = getPermsFromPlayer(p_id);
  443. listsize = list.getSize(permslist);
  444. if(listsize == 0) {
  445. player.speak(player, "§zPerms", "§rKeine Permissions vorhanden");
  446. } else {
  447. player.speak(player, "§zPerms", p_name);
  448. for(i = 0; i < listsize; i++) {
  449. msg(player, " - ", map.get(permgroupsmap2, list.getIndex(permslist, i)));
  450. }
  451. }
  452. }
  453. goto("wait");
  454. }
  455. goto("perm_syntax");
  456. @tpall
  457. online_list = players.toList();
  458. list.remove(online_list, player);
  459. tpto = entity.getLocation(player);
  460. for(i = 0; i <= list.getSize(online_list) - 1; i++) {
  461. p = list.getIndex(online_list, i);
  462. setBackPos(p);
  463. entity.teleport(p, tpto);
  464. }
  465. player.speak(player, "§6Commands", text.number(list.getSize(online_list)), " Spieler wurden zu dir teleportiert.");
  466. goto("wait");
  467. @weather
  468. if(size == 0) {
  469. @weather_syntax
  470. player.speak(player, "§eWeather", "§r/weather ...");
  471. msg(player, "§e - clear [duration]");
  472. msg(player, "§e - rain [duration]");
  473. msg(player, "§e - thunder [duration]");
  474. goto("wait");
  475. }
  476. arg0 = list.getIndex(args, 0);
  477. if(arg0 == "clear" || arg0 == "rain" || arg0 == "thunder") {
  478. if(size == 2) {
  479. duration = list.getIndex(args, 1);
  480. if(!isDouble(duration)) {
  481. player.speak(player, "§6Commands", "§rZahl erwartet");
  482. goto("wait");
  483. }
  484. if(duration < 0) {
  485. player.speak(player, "§6Commands", "§rPositive Zahl erwartet");
  486. goto("wait");
  487. }
  488. } else {
  489. duration = 650;
  490. }
  491. world = loc.getWorld(entity.getLocation(player));
  492. if(arg0 == "clear") {
  493. if(size > 2) {
  494. player.speak(player, "§6Commands", "§r/weather clear [duration]");
  495. goto("wait");
  496. }
  497. world.clearWeather(world, duration);
  498. player.speak(player, "§6Commands", "§rWetter wurde auf Klar gestellt");
  499. goto("wait");
  500. }
  501. if(arg0 == "rain") {
  502. if(size > 2) {
  503. player.speak(player, "§6Commands", "§r/weather rain [duration]");
  504. goto("wait");
  505. }
  506. world.setRain(world, duration);
  507. player.speak(player, "§6Commands", "§rWetter wurde auf Regen gestellt");
  508. goto("wait");
  509. }
  510. if(arg0 == "thunder") {
  511. if(size > 2) {
  512. player.speak(player, "§6Commands", "§r/weather thunder [duration]");
  513. goto("wait");
  514. }
  515. world.setThunder(world, duration);
  516. player.speak(player, "§6Commands", "§rWetter wurde auf Gewitter gestellt");
  517. goto("wait");
  518. }
  519. goto("wait");
  520. }
  521. goto("weather_syntax");
  522. @time
  523. if(size == 0) {
  524. @time_syntax
  525. player.speak(player, "§eTime", "§r/time ...");
  526. msg(player, "§e - set <day / noon / night / midnight>");
  527. msg(player, "§e - add <time>");
  528. goto("wait");
  529. }
  530. arg0 = list.getIndex(args, 0);
  531. if(arg0 == "set") {
  532. if(size != 2) {
  533. player.speak(player, "§6Commands", "§r/time set <day / noon / night / midnight>");
  534. goto("wait");
  535. }
  536. text = list.getIndex(args, 1);
  537. if(text == "day") {
  538. newtime = 1000;
  539. } elseif(text == "noon") {
  540. newtime = 6000;
  541. } elseif(text == "night") {
  542. newtime = 13000;
  543. } elseif(text == "midnight") {
  544. newtime = 18000;
  545. } else {
  546. player.speak(player, "§6Commands", "§r/time set <day / noon / night / midnight>");
  547. goto("wait");
  548. }
  549. world = loc.getWorld(entity.getLocation(player));
  550. world.setTime(world, newtime);
  551. player.speak(player, "§6Commands", "§rZeit wurde auf ", text.number(newtime), " gesetzt");
  552. goto("wait");
  553. }
  554. if(arg0 == "add") {
  555. if(size != 2) {
  556. player.speak(player, "§6Commands", "§r/time add <time>");
  557. goto("wait");
  558. }
  559. addTime = list.getIndex(args, 1);
  560. if(!isDouble(addTime)) {
  561. player.speak(player, "§6Commands", "§rZahl erwartet");
  562. goto("wait");
  563. }
  564. if(addTime < 0) {
  565. player.speak(player, "§6Commands", "§rPositive Zahl erwartet");
  566. goto("wait");
  567. }
  568. world = loc.getWorld(entity.getLocation(player));
  569. newtime = world.getTime(world) + addTime;
  570. while(newtime >= 24000) {
  571. newtime -= 24000;
  572. }
  573. world.setTime(world, newtime);
  574. player.speak(player, "§6Commands", "§rZeit wurde auf ", text.number(newtime), " gesetzt");
  575. goto("wait");
  576. }
  577. goto("time_syntax");
  578. @gamerule
  579. world = loc.getWorld(entity.getLocation(player));
  580. if(size == 0) {
  581. player.speak(player, "§6Commands", "§r/gamerule <gamerule> [value]");
  582. goto("wait");
  583. }
  584. gamerule = list.getIndex(args, 0);
  585. if(size == 1) {
  586. player.speak(player, "§6Commands", gamerule, " ", world.getGamerule(world, gamerule));
  587. goto("wait");
  588. }
  589. if(size == 2) {
  590. input = list.getIndex(args, 1);
  591. try {
  592. world.setGamerule(world, gamerule, input);
  593. if(world.getGamerule(world, gamerule) == null) {
  594. player.speak(player, "§6Commands", "Falsche Eingabe");
  595. } else {
  596. player.speak(player, "§6Commands", gamerule, " auf ", input, " gesetzt");
  597. }
  598. } catch {
  599. player.speak(player, "§6Commands", "Falsche Eingabe");
  600. }
  601. goto("wait");
  602. }
  603. goto("wait");
  604. @tipp
  605. if(size == 0) {
  606. player.speak(player, "§eTipps", "§r/tipp ...");
  607. msg(player, "§e - list §rListet alle Tipps auf");
  608. msg(player, "§e - add <name> <text> §rFügt einen Tipp hinzu");
  609. msg(player, "§e - remove <name> §rEntfernt einen Tipp");
  610. msg(player, "§e - <name> [player] §rSendet einen Tipp");
  611. goto("wait");
  612. }
  613. arg0 = list.getIndex(args, 0);
  614. if(arg0 == "list") {
  615. msg(player, "§r--==§eTipps§r==--");
  616. counter = 0;
  617. getTippsListStatement = databank.prepare("SELECT * FROM tipps;");
  618. result = databank.execute(getTippsListStatement);
  619. while(databank.next(result)) {
  620. tipp_key = databank.getString(result, 1);
  621. tipp_value = databank.getString(result, 2);
  622. msg(player, concat("§e", tipp_key, "§r : ", tipp_value));
  623. counter++;
  624. }
  625. databank.close(result);
  626. databank.close(getTippsListStatement);
  627. if(counter == 0) {
  628. player.speak(player, "§eTipps", "§rIm Moment stehen keine Tipps zur Verfügung.");
  629. }
  630. goto("wait");
  631. }
  632. if(arg0 == "add") {
  633. if(size < 3) {
  634. player.speak(player, "§6Commands", "§r/tipp add <name> <text>");
  635. goto("wait");
  636. }
  637. tipp_key = list.getIndex(args, 1);
  638. tipp_value = concatList(args, " ", 2, list.getSize(args) - 1);
  639. registerTipp(tipp_key, tipp_value);
  640. player.speak(player, "§eTipps", "§rDer Tipp wurde hinzugefügt.");
  641. goto("wait");
  642. }
  643. if(arg0 == "remove") {
  644. if(size != 2) {
  645. player.speak(player, "§6Commands", "§r/tipp remove <name>");
  646. goto("wait");
  647. }
  648. tipp_key = list.getIndex(args, 1);
  649. removeTippStatement = databank.prepare("DELETE FROM tipps WHERE tipp_key = ?;");
  650. databank.setInt(removeTippStatement, 1, tipp_key);
  651. databank.workerExecute(removeTippStatement);
  652. player.speak(player, "§eTipps", "§rDer Tipp wurde entfernt.");
  653. goto("wait");
  654. }
  655. tipp_key = arg0;
  656. tipp_value = getTippValue(tipp_key);
  657. if(tipp_value == null) {
  658. player.speak(player, "§eTipps", "§rDer Tipp existiert nicht.");
  659. goto("wait");
  660. }
  661. if(size == 1) {
  662. player.speak("online", "§eTipps", tipp_value);
  663. } else {
  664. p_name = list.getIndex(args, 1);
  665. if(!isOnline(p_name)) {
  666. player.speak(player, "§eTipps", "§rDieser Spieler ist nicht online");
  667. goto("wait");
  668. }
  669. player.speak(p_name, "§eTipps", tipp_value);
  670. player.speak(player, "§eTipps", concat("§rDer Tipp wurde §7", p_name, "§r gesendet."));
  671. }
  672. goto("wait");
  673. @help
  674. msg(player, "An Hilfe wird noch gearbeitet. Handelt es sich um einen realen Notfall, wähle 112 (Euronotruf).");
  675. //Command-Gruppen einbauen: allgemein, gildenpvp, worldedit,
  676. //Alle Befehle durchgehen
  677. for(i = 0; i <= list.getSize(command_list) - 1; i++) {
  678. list.sort(command_list);
  679. command = list.getIndex(command_list, i);
  680. //Auf Permission überprüfen
  681. if(perm.has(player, command)) {
  682. msg(player, " /", command);
  683. }
  684. }
  685. goto("wait");
  686. @cli
  687. if(size != 1) {
  688. player.speak(player, "§6Commands", "§r/cli <radius>");
  689. goto("wait");
  690. }
  691. radius = list.getIndex(args, 0);
  692. if(!isDouble(radius)) {
  693. player.speak(player, "§6Commands", "§rZahl erwartet");
  694. goto("wait");
  695. }
  696. if(radius < 0) {
  697. player.speak(player, "§6Commands", "§rPositive Zahl erwartet");
  698. goto("wait");
  699. }
  700. entity.removeAll("net.minecraft.entity.item.EntityItem", entity.getLocation(player), radius);
  701. player.speak(player, "§6Commands", "§rItems entfernt");
  702. goto("wait");
  703. @plant
  704. if(size != 1) {
  705. player.speak(player, "§6Commands", "§r/plant <radius>");
  706. goto("wait");
  707. }
  708. radius = list.getIndex(args, 0);
  709. if(!isDouble(radius)) {
  710. player.speak(player, "§6Commands", "§rZahl erwartet");
  711. goto("wait");
  712. }
  713. if(radius < 0) {
  714. player.speak(player, "§6Commands", "§rPositive Zahl erwartet");
  715. goto("wait");
  716. }
  717. player_loc = entity.getLocation(player);
  718. world = world.get(loc.getCoord(player_loc, "w"));
  719. bx = loc.getCoord(player_loc, "bx");
  720. by = loc.getCoord(player_loc, "by");
  721. bz = loc.getCoord(player_loc, "bz");
  722. center_loc = loc.new(world, bx, by, bz);
  723. list.new(loc_list);
  724. for(x = radius * -1; x <= radius; x++) {
  725. for(z = radius * -1; z <= radius; z++) {
  726. for(y = radius * -1; y <= radius; y++) {
  727. //length = math.root(math.abs(math.root(math.abs(math.pow(x, 2)) + math.pow(math.abs(math.pow(z, 2)), 2), 2) + math.abs(math.pow(y, 2))), 2);
  728. length = math.hypot(x, math.hypot(y, z));
  729. if(length <= radius) {
  730. mod_loc = loc.mod(center_loc, x, y, z);
  731. if(block.getType(mod_loc) == farmland_item_type) {
  732. list.add(loc_list, mod_loc);
  733. }
  734. }
  735. }
  736. }
  737. }
  738. for(i = 0; i <= list.getSize(loc_list) - 1; i++) {
  739. loc = loc.mod(list.getIndex(loc_list, i), 0, 1, 0);
  740. block.set2(loc, "minecraft:wheat", 7);
  741. }
  742. player.speak(player, "§6Commands", "§rFeld bepflanzt");
  743. goto("wait");
  744. @grow
  745. if(size != 1) {
  746. player.speak(player, "§6Commands", "§r/grow <radius>");
  747. goto("wait");
  748. }
  749. radius = list.getIndex(args, 0);
  750. if(!isDouble(radius)) {
  751. player.speak(player, "§6Commands", "§rZahl erwartet");
  752. goto("wait");
  753. }
  754. if(radius < 0) {
  755. player.speak(player, "§6Commands", "§rPositive Zahl erwartet");
  756. goto("wait");
  757. }
  758. player_loc = entity.getLocation(player);
  759. world = world.get(loc.getCoord(player_loc, "w"));
  760. bx = loc.getCoord(player_loc, "bx");
  761. by = loc.getCoord(player_loc, "by");
  762. bz = loc.getCoord(player_loc, "bz");
  763. center_loc = loc.new(world, bx, by, bz);
  764. list.new(loc_list);
  765. for(x = radius * -1; x <= radius; x++) {
  766. for(z = radius * -1; z <= radius; z++) {
  767. for(y = radius * -1; y <= radius; y++) {
  768. //length = math.root(math.abs(math.root(math.abs(x^2) + math.abs(z^2), 2)^2 + math.abs(y^2)), 2);
  769. length = math.hypot(x, math.hypot(y, z));
  770. if(length <= radius) {
  771. mod_loc = loc.mod(center_loc, x, y, z);
  772. if(block.getType(mod_loc) == wheat_item_type) {
  773. list.add(loc_list, mod_loc);
  774. }
  775. }
  776. }
  777. }
  778. }
  779. for(i = 0; i <= list.getSize(loc_list) - 1; i++) {
  780. loc = list.getIndex(loc_list, i);
  781. block.set2(loc, "minecraft:wheat", 7);
  782. }
  783. player.speak(player, "§6Commands", "§rFeld bepflanzt");
  784. goto("wait");
  785. @start
  786. if(size != 1) {
  787. @starthelp
  788. player.speak(player, "§6Commands", "/start ...");
  789. msg(player, " - chat");
  790. msg(player, " - commands");
  791. msg(player, " - friends");
  792. msg(player, " - games");
  793. msg(player, " - gilden");
  794. msg(player, " - mails");
  795. msg(player, " - perms");
  796. msg(player, " - skills");
  797. msg(player, " - stats");
  798. goto("wait");
  799. }
  800. arg0 = list.getIndex(args, 0);
  801. if(arg0 == "commands") {
  802. script = script.get("scripts/system/commands.txt");
  803. script.start("system/commands", "utils/u_general", "utils/u_ranks", "utils/u_plots", "utils/u_perms");
  804. script.term(script);
  805. }
  806. elseif(arg0 == "games") {
  807. try {
  808. script.term(script.get("scripts/global/gamecenter.txt"));
  809. } catch {
  810. nothing();
  811. }
  812. script.start("global/gamecenter", "minigames/gamescore");
  813. }
  814. elseif(arg0 == "friends") {
  815. try {
  816. script.term(script.get("scripts/global/friends.txt"));
  817. } catch {
  818. nothing();
  819. }
  820. script.start("global/friends", "utils/u_general", "utils/u_mail", "utils/u_friend");
  821. }
  822. elseif(arg0 == "chat") {
  823. try {
  824. script.term(script.get("scripts/system/chat.txt"));
  825. } catch {
  826. nothing();
  827. }
  828. script.start("system/chat", "utils/u_ranks");
  829. }
  830. elseif(arg0 == "perms") {
  831. script.start("system/perms", "utils/u_perms");
  832. }
  833. elseif(arg0 == "stats") {
  834. try {
  835. script.term(script.get("scripts/global/ranklist.txt"));
  836. } catch {
  837. nothing();
  838. }
  839. script.start("global/ranklist", "minigames/gamescore");
  840. }
  841. elseif(arg0 == "skills") {
  842. try {
  843. script.term(script.get("scripts/system/skills.txt"));
  844. } catch {
  845. nothing();
  846. }
  847. script.start("system/skills", "utils/u_skills", "utils/u_jobs", "utils/u_gpvp", "utils/u_general", "utils/u_plots");
  848. }
  849. elseif(arg0 == "mails") {
  850. try {
  851. script.term(script.get("scripts/global/mailsystem.txt"));
  852. } catch {
  853. nothing();
  854. }
  855. script.start("global/mailsystem", "utils/u_general", "utils/u_mail");
  856. }
  857. elseif(arg0 == "gilden") {
  858. try {
  859. script.term(script.get("scripts/gildenpvp/gpvp.txt"));
  860. } catch {
  861. nothing();
  862. }
  863. script.start("gildenpvp/gpvp", "utils/u_gpvp", "utils/u_general", "utils/u_mail", "utils/u_friend", "utils/u_jobs", "utils/u_plots");
  864. } else {
  865. goto("starthelp");
  866. }
  867. goto("wait");
  868. @senditem
  869. if(size != 1) {
  870. player.speak(player, "§6Commands", "/senditem <player>");
  871. goto("wait");
  872. }
  873. item = entity.getEquip(player, "hand");
  874. if(item.getType(item) == airitem) {
  875. player.speak(player, "§6Commands", "§rDu musst ein Item in der Hand halten");
  876. goto("wait");
  877. }
  878. p_name = list.getIndex(args, 0);
  879. p_uuid = player.getUuid(p_name);
  880. if(p_uuid == null) {
  881. player.speak(player, "§6Commands", "§rDieser Spieler war noch nie online");
  882. goto("wait");
  883. }
  884. p = read.player(p_name);
  885. if(p == null) {
  886. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  887. goto("wait");
  888. }
  889. safeGiveItemPlayer(p, item);
  890. player.removeItem(player, item);
  891. goto("wait");
  892. @iteminfo
  893. item = entity.getEquip(player, "hand");
  894. if(item.getType(item) == airitem) {
  895. player.speak(player, "§6Commands", "§rDu musst ein Item in der Hand halten");
  896. goto("wait");
  897. }
  898. msg(player, text.copyText("§cKlick hier zum Kopieren", text.item(item)));
  899. goto("wait");
  900. @top
  901. player_loc = entity.getLocation(player);
  902. y = 255;
  903. while(block.getType(player_loc) == airitem) {
  904. loc.setY(player_loc, y);
  905. y -= 1;
  906. }
  907. entity.teleport(player, loc.mod(player_loc, 0, 1, 0));
  908. goto("wait");
  909. @games
  910. world = loc.getWorld(gamesspawn);
  911. if(world == null) {
  912. player.speak(player, "§6Commands", "Diese Welt ist nicht geladen.");
  913. goto("wait");
  914. }
  915. setBackPos(player);
  916. entity.teleport(player, gamesspawn);
  917. goto("wait");
  918. @bug
  919. player.speak(player, "§6Commands", "§rBug gefunden? Melde ihn an marvinius mit §b/mail marvinius <nachricht>");
  920. goto("wait");
  921. @report
  922. player.speak(player, "§6Commands", "§rDu möchtest jemanden melden?");
  923. msg(player, " - §b/ticket <nachricht>");
  924. msg(player, " - §b/mail marvinius <nachricht>");
  925. goto("wait");
  926. @playtime
  927. if(size > 1) {
  928. player.speak(player, "§6Commands", "/playtime [player]");
  929. goto("wait");
  930. }
  931. if(size == 0) {
  932. p_id = player.getId(player);
  933. pname = player_name;
  934. } else {
  935. pname = list.getIndex(args, 0);
  936. p_uuid = player.getUuid(pname);
  937. if(p_uuid == null) {
  938. player.speak(player, "§dPlots", "§rDieser Spieler war noch nie online");
  939. goto("wait");
  940. }
  941. p_id = player.getId(p_uuid);
  942. }
  943. //Online seit
  944. since_minutes = 0;
  945. if(read.player(pname) != null) {
  946. onlineSinceStatement = databank.prepare("SELECT join_time FROM playtime WHERE player_id = ? AND leave_time IS NULL;");
  947. databank.setInt(onlineSinceStatement, 1, p_id);
  948. result = databank.execute(onlineSinceStatement);
  949. while(databank.next(result)) {
  950. since_minutes = (time.getMillis() - databank.getLong(result, 1)) / 1000 / 60;
  951. since_hours = math.roundDown(since_minutes / 60);
  952. mod_minutes = since_minutes % 60;
  953. }
  954. databank.close(result);
  955. databank.close(onlineSinceStatement);
  956. msg(player, concat("§aOnline seit: §r", text.number(since_hours), " Stunden ", text.number(mod_minutes), " Minuten"));
  957. } else {
  958. msg(player, "§6Status: ", "§cOffline");
  959. }
  960. //Spielzeit gesamt
  961. playtimeStatement = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE player_id = ?;");
  962. databank.setInt(playtimeStatement, 1, p_id);
  963. result = databank.execute(playtimeStatement);
  964. while(databank.next(result)) {
  965. minutes = databank.getInt(result, 1) / 1000 / 60 + since_minutes;
  966. hours = text.number(math.roundDown(minutes / 60));
  967. minutes = text.number(minutes % 60);
  968. msg(player, concat("§6Spielzeit gesamt: §r", hours, " Stunden ", minutes, " Minuten"));
  969. }
  970. databank.close(result);
  971. databank.close(playtimeStatement);
  972. //Spielzeit heute
  973. time.new(calendar, time.getMillis());
  974. time.nextDay(calendar);
  975. midnight = time.from(calendar) - 86400000; //24 Stunden von nächstem Mitternacht abziehen
  976. sincePlaytimeStatement = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE player_id = ? AND join_time > ?;");
  977. databank.setInt(sincePlaytimeStatement, 1, p_id);
  978. databank.setLong(sincePlaytimeStatement, 2, midnight);
  979. result = databank.execute(sincePlaytimeStatement);
  980. while(databank.next(result)) {
  981. minutes = databank.getInt(result, 1) / 1000 / 60 + since_minutes;
  982. hours = text.number(math.roundDown(minutes / 60));
  983. minutes = text.number(minutes % 60);
  984. msg(player, concat("§6Spielzeit heute: §r", hours, " Stunden ", minutes, " Minuten"));
  985. }
  986. databank.close(result);
  987. databank.close(sincePlaytimeStatement);
  988. //Spielzeit 30 Tage
  989. oneMonthAgo = time.getMillis() - 2592000000; //30 Tage von jetzt an
  990. sincePlaytimeStatement = databank.prepare("SELECT SUM(leave_time - join_time) FROM playtime WHERE player_id = ? AND join_time > ?;");
  991. databank.setInt(sincePlaytimeStatement, 1, p_id);
  992. databank.setLong(sincePlaytimeStatement, 2, oneMonthAgo);
  993. result = databank.execute(sincePlaytimeStatement);
  994. while(databank.next(result)) {
  995. minutes = databank.getInt(result, 1) / 1000 / 60 + since_minutes;
  996. hours = text.number(math.roundDown(minutes / 60));
  997. minutes = text.number(minutes % 60);
  998. msg(player, concat("§6Spielzeit 30 Tage: §r", hours, " Stunden ", minutes, " Minuten"));
  999. }
  1000. databank.close(result);
  1001. databank.close(sincePlaytimeStatement);
  1002. goto("wait");
  1003. @datatools
  1004. if(size == 0) {
  1005. player.speak(player, "§vDataTools", "§r/datatools ...");
  1006. msg(player, "§v - print-nbt ", "Prints NBT of an entity");
  1007. msg(player, "§v - flag <flag> ", "Setzt eine Flag zu einem ItemStack");
  1008. msg(player, "§v - attribute <attribut> <slot> <double> <op> ", "Fügt ein Attribut zu einem ItemStack hinzu");
  1009. msg(player, "§v - hide-entity ", "Macht ein Entity unsichtbar");
  1010. msg(player, "§v - show-entity ", "Macht ein Entity sichtbar");
  1011. msg(player, "§v - name-entity <name> ", "Setzt den Namen des Entities");
  1012. msg(player, "§v - name-item <name> ", "Setzt den Itemnamen");
  1013. msg(player, "§v - lore-item <line> <lore> ", "Setzt die Itemlore");
  1014. msg(player, "§v - magic <def> ", "Setzt die magische Resistenz von Rüstung");
  1015. goto("wait");
  1016. }
  1017. arg0 = list.getIndex(args, 0);
  1018. if(arg0 == "print-nbt") {
  1019. templist = entity.near(player, 3);
  1020. if(list.getSize(templist) == 0) {
  1021. player.speak(player, "§vDataTools", "Zu weit weg vom Entity.");
  1022. goto("wait");
  1023. }
  1024. entity = list.getIndex(templist, 0);
  1025. msg(player, getSpacer());
  1026. player.speak(player, "§vDataTools", "NBT-Daten ", entity.getName(entity));
  1027. nbt = text.entity(entity);
  1028. nbt = text.replace(nbt, "}", "§c} §r");
  1029. nbt = text.replace(nbt, "{", "§c{ §r");
  1030. nbt = text.replace(nbt, "]", "§c] §r");
  1031. nbt = text.replace(nbt, "[", "§c] §r");
  1032. nbt = text.replace(nbt, ",", "§6} §r");
  1033. nbt = text.replace(nbt, ":", "§8:");
  1034. nbt = text.replace(nbt, "0", "§50");
  1035. nbt = text.replace(nbt, "1", "§51");
  1036. nbt = text.replace(nbt, "2", "§52");
  1037. nbt = text.replace(nbt, "3", "§53");
  1038. nbt = text.replace(nbt, "4", "§54");
  1039. nbt = text.replace(nbt, "5", "§55");
  1040. nbt = text.replace(nbt, "6", "§56");
  1041. nbt = text.replace(nbt, "7", "§57");
  1042. nbt = text.replace(nbt, "8", "§58");
  1043. nbt = text.replace(nbt, "9", "§59");
  1044. msg(player, nbt);
  1045. /*nbt = text.replace(nbt, "{", "Ɛ");
  1046. nbt = text.replace(nbt, "}", "Ƒ");
  1047. nbt = text.replace(nbt, "[", "ƒ");
  1048. nbt = text.replace(nbt, "]", "Ɠ");
  1049. nbt = text.replace(nbt, "(", "ƕ");
  1050. nbt = text.replace(nbt, ")", "Ɩ");
  1051. nbt = text.replace(nbt, " ", "%20");
  1052. nbt = text.replace(nbt, "\", "Ɩ");
  1053. //nbt = text.replace(nbt, "", "Ɩ");
  1054. nbt = text.replace(nbt, "\\", "");*/
  1055. msg(player, text.copytext("Hier drücken zum Kopieren.", concat("http://minecraft.hammerle.me/showtext.php/?text=", nbt)));
  1056. goto("wait");
  1057. }
  1058. if(arg0 == "flag") {
  1059. if(size < 2) {
  1060. player.speak(player, "§vDataTools", "§r/datatools flag <flag>");
  1061. goto("wait");
  1062. }
  1063. item = entity.getEquip(player, "hand");
  1064. if(item.getType(item) == airitem) {
  1065. player.speak(player, "§vDataTools", "§rDu musst ein Item in der Hand halten.");
  1066. goto("wait");
  1067. }
  1068. flag = text.concatList(args, " ", 1, list.getSize(args) - 1);
  1069. try {
  1070. item.addFlag(item, flag);
  1071. player.speak(player, "§vDataTools", "Flag hinzugefügt.");
  1072. } catch {
  1073. player.speak(player, "§vDataTools", "Keine gültige Flag.");
  1074. msg("dev", "HIDE_ENCHANTS, HIDE_ATTRIBUTES, HIDE_UNBREAKABLE, HIDE_DESTROYS, HIDE_PLACED_ON, HIDE_POTION_EFFECTS");
  1075. }
  1076. goto("wait");
  1077. }
  1078. if(arg0 == "attribute") {
  1079. if(size < 2) {
  1080. player.speak(player, "§vDataTools", "§r/datatools attribute <attribut> <slot> <double> <op>");
  1081. goto("wait");
  1082. }
  1083. item = entity.getEquip(player, "hand");
  1084. if(item.getType(item) == airitem) {
  1085. player.speak(player, "§vDataTools", "§rDu musst ein Item in der Hand halten.");
  1086. goto("wait");
  1087. }
  1088. double = list.getIndex(args, 3);
  1089. if(!isDouble(double)) {
  1090. player.speak(player, "§vDataTools", "Zahl erwartet.");
  1091. goto("wait");
  1092. }
  1093. if(double < 0) {
  1094. player.speak(player, "§vDataTools", "Positive Zahl erwartet.");
  1095. goto("wait");
  1096. }
  1097. attribut = list.getIndex(args, 1);
  1098. slot = list.getIndex(args, 2);
  1099. operation = list.getIndex(args, 4);
  1100. try {
  1101. item.addAttribute(item, attribut, slot, double, operation);
  1102. player.speak(player, "§vDatatools", "Das Attribut wurde hinzugefügt.");
  1103. } catch {
  1104. player.speak(player, "§vDataTools", "Ein angegebener Enum existiert nicht.");
  1105. msg("dev", "ARMOR, ARMOR_TOUGHNESS, ATTACK_DAMAGE, KNOCKBACK_RESISTANCE, MAX_HEALTH, MOVEMENT_SPEED, ATTACK_SPEED, LUCK");
  1106. msg("dev", "mainhand, offhand, head, chest, legs, feet");
  1107. msg("dev", "ADD, MUL, MUL_CHANGED");
  1108. }
  1109. goto("wait");
  1110. }
  1111. if(arg0 == "magic") {
  1112. if(size < 2) {
  1113. player.speak(player, "§vDataTools", "§r/datatools magic <def>");
  1114. goto("wait");
  1115. }
  1116. item = entity.getEquip(player, "hand");
  1117. if(item.getType(item) == airitem) {
  1118. player.speak(player, "§vDataTools", "§rDu musst ein Item in der Hand halten.");
  1119. goto("wait");
  1120. }
  1121. double = list.getIndex(args, 1);
  1122. if(!isDouble(double)) {
  1123. player.speak(player, "§vDataTools", "Zahl erwartet.");
  1124. goto("wait");
  1125. }
  1126. if(double < 0) {
  1127. player.speak(player, "§vDataTools", "Positive Zahl erwartet.");
  1128. goto("wait");
  1129. }
  1130. try {
  1131. item.setMagic(item, double);
  1132. player.speak(player, "§vDataTools", "Magische Verteidigung hinzugefügt.");
  1133. } catch {
  1134. player.speak(player, "§vDataTools", "Das Item muss eine Rüstung sein.");
  1135. }
  1136. goto("wait");
  1137. }
  1138. if(arg0 == "name-item") {
  1139. if(size < 2) {
  1140. player.speak(player, "§vDataTools", "§r/datatools name-item <name>");
  1141. goto("wait");
  1142. }
  1143. item = entity.getEquip(player, "hand");
  1144. if(item.getType(item) == airitem) {
  1145. player.speak(player, "§vDataTools", "§rDu musst ein Item in der Hand halten.");
  1146. goto("wait");
  1147. }
  1148. name = text.concatList(args, " ", 1, list.getSize(args) - 1);
  1149. item.setName(item, name);
  1150. player.speak(player, "§vDataTools", "Das Item trägt nun den Namen ", name, "§r.");
  1151. goto("wait");
  1152. }
  1153. if(arg0 == "lore-item") {
  1154. if(size < 3) {
  1155. player.speak(player, "§vDataTools", "§r/datatools lore-item <line> <lore>");
  1156. goto("wait");
  1157. }
  1158. item = entity.getEquip(player, "hand");
  1159. if(item.getType(item) == airitem) {
  1160. player.speak(player, "§vDataTools", "§rDu musst ein Item in der Hand halten.");
  1161. goto("wait");
  1162. }
  1163. line = list.getIndex(args, 1);
  1164. if(!isDouble(line)) {
  1165. player.speak(player, "§vDataTools", "Zahl erwartet.");
  1166. goto("wait");
  1167. }
  1168. if(line < 0) {
  1169. player.speak(player, "§vDataTools", "Positive Zahl erwartet.");
  1170. goto("wait");
  1171. }
  1172. lore = text.concatList(args, " ", 2, list.getSize(args) - 1);
  1173. item.addLore(item, line, lore);
  1174. player.speak(player, "§vDataTools", "Die neue Lore wurde hinzugefügt.");
  1175. goto("wait");
  1176. }
  1177. if(arg0 == "name-entity") {
  1178. if(size < 2) {
  1179. player.speak(player, "§vDataTools", "§r/datatools name-entity <name>");
  1180. goto("wait");
  1181. }
  1182. templist = entity.near(player, 3);
  1183. if(list.getSize(templist) == 0) {
  1184. player.speak(player, "§vDataTools", "Zu weit weg vom Entity.");
  1185. goto("wait");
  1186. }
  1187. entity = list.getIndex(templist, 0);
  1188. name = text.concatList(args, " ", 1, list.getSize(args) - 1);
  1189. name = text.replace(name, "&", "§");
  1190. entity.setName(entity, name);
  1191. player.speak(player, "§vDataTools", "Das Entity trägt nun den Namen ", name, "§r.");
  1192. goto("wait");
  1193. }
  1194. if(arg0 == "hide-entity") {
  1195. if(size != 1) {
  1196. player.speak(player, "§vDataTools", "§r/datatools hide-entity");
  1197. goto("wait");
  1198. }
  1199. templist = entity.near(player, 3);
  1200. if(list.getSize(templist) == 0) {
  1201. player.speak(player, "§vDataTools", "Zu weit weg vom Entity.");
  1202. goto("wait");
  1203. }
  1204. entity = list.getIndex(templist, 0);
  1205. entity.setInvisible(entity, true);
  1206. player.speak(player, "§vDataTools", "Das Entity ist nun unsichtbar.");
  1207. goto("wait");
  1208. }
  1209. if(arg0 == "show-entity") {
  1210. if(size != 1) {
  1211. player.speak(player, "§vDataTools", "§r/datatools show-entity");
  1212. goto("wait");
  1213. }
  1214. templist = entity.near(player, 3);
  1215. if(list.getSize(templist) == 0) {
  1216. player.speak(player, "§vDataTools", "Zu weit weg vom Entity.");
  1217. goto("wait");
  1218. }
  1219. entity = list.getIndex(templist, 0);
  1220. entity.setInvisible(entity, false);
  1221. player.speak(player, "§vDataTools", "Das Entity ist nun sichtbar.");
  1222. goto("wait");
  1223. }
  1224. goto("wait");
  1225. @human
  1226. if(size == 0) {
  1227. player.speak(player, "§vDataTools §r/human ...");
  1228. msg(player, concat("§v - spawn §rSpawnt einen Human"));
  1229. msg(player, concat("§v - set <name> §rSetzt den Skin"));
  1230. msg(player, concat("§v - kill §rTötet einen Human"));
  1231. msg(player, concat("§v - size <scale> §rSetzt die Größenskalierung"));
  1232. msg(player, concat("§v - steve §rSchaltet auf Steve Skin"));
  1233. msg(player, concat("§v - alex §rSchaltet auf Alex Skin"));
  1234. goto("wait");
  1235. }
  1236. arg0 = list.getIndex(args, 0);
  1237. if(arg0 == "spawn") {
  1238. human.spawn(entity.getLocation(player));
  1239. player.speak(player, "§vDataTools", "Human gespawnt.");
  1240. goto("wait");
  1241. }
  1242. templist = entity.near(player, 3);
  1243. if(list.getSize(templist) == 0) {
  1244. player.speak(player, "§vDataTools", "Zu weit weg vom Human.");
  1245. goto("wait");
  1246. }
  1247. human = list.getIndex(templist, 0);
  1248. if(arg0 == "set") {
  1249. arg1 = list.getIndex(args, 1);
  1250. uuid = player.getUuid(arg1);
  1251. if(uuid == null) {
  1252. uuid = arg1;
  1253. }
  1254. human.setSkin(human, uuid);
  1255. player.speak(player, "§vDataTools", "Skin gesetzt.");
  1256. goto("wait");
  1257. }
  1258. if(arg0 == "kill") {
  1259. entity.remove(human);
  1260. player.speak(player, "§vDataTools", "Human getötet.");
  1261. goto("wait");
  1262. }
  1263. if(arg0 == "size") {
  1264. scale = list.getIndex(args, 1);
  1265. if(!isDouble(scale)) {
  1266. player.speak(player, "§vDataTools", "Zahl erwartet.");
  1267. goto("wait");
  1268. }
  1269. human.setScale(human, scale);
  1270. player.speak(player, "§vDataTools", "Größe verändert.");
  1271. goto("wait");
  1272. }
  1273. if(arg0 == "steve") {
  1274. human.setSlim(human, false);
  1275. player.speak(player, "§vDataTools", "Skin-Format geändert.");
  1276. goto("wait");
  1277. }
  1278. if(arg0 == "alex") {
  1279. human.setSlim(human, true);
  1280. player.speak(player, "§vDataTools", "Skin-Format geändert.");
  1281. goto("wait");
  1282. }
  1283. goto("wait");
  1284. @ass
  1285. if(size != 2) {
  1286. player.speak(player, "§6Commands", "§r/ass ...");
  1287. msg(player, " - set <name>");
  1288. msg(player, " - remove <radius>");
  1289. goto("wait");
  1290. }
  1291. arg0 = list.getIndex(args, 0);
  1292. if(arg0 == "set") {
  1293. name = text.replace(text.concatList(args, " ", 1, size - 1), "&", "§");
  1294. read.spawnmob(entity.getLocation(player), concat("{id:'minecraft:armor_stand',CustomName:'", name, "',CustomNameVisible:true,Invisible:true,NoGravity:true}"));
  1295. goto("wait");
  1296. }
  1297. if(arg0 == "remove") {
  1298. radius = list.getIndex(args, 1);
  1299. if(!isDouble(radius)) {
  1300. player.speak(player, "§6Commands", "Zahl erwartet.");
  1301. goto("wait");
  1302. }
  1303. if(radius < 0 || radius > 5) {
  1304. player.speak(player, "§6Commands", "§rRadius: 0-5");
  1305. goto("wait");
  1306. }
  1307. entity.removeAll("net.minecraft.entity.item.EntityArmorStand", entity.getLocation(player), radius);
  1308. player.speak(player, "§6Commands", "§rArmorStandSigns entfernt");
  1309. }
  1310. goto("wait");
  1311. @coords
  1312. target = player.getTarget(player, 5, false, false);
  1313. targettype = block.getType(target);
  1314. if(targettype == airitem) {
  1315. player.speak(player, "§6Commands", "Du musst auf einen Block gerichtet sein.");
  1316. goto("wait");
  1317. }
  1318. msg(player, getSpacer());
  1319. x = text.Number(loc.getX(target));
  1320. y = text.Number(loc.getY(target));
  1321. z = text.Number(loc.getZ(target));
  1322. msg(player, "§6Welt: §r", world.getName(loc.getWorld(target)));
  1323. msg(player, "§6Koordinaten: §r", x, " / ", y, " / ", z);
  1324. msg(player, "§6Block: §r", targettype);
  1325. goto("wait");
  1326. @sign
  1327. if(size == 0) {
  1328. player.speak(player, "§6Commands", "/sign <1-4> [text]");
  1329. goto("wait");
  1330. }
  1331. target = player.getTarget(player, 5, false, false);
  1332. targettype = block.getType(target);
  1333. if(!(targettype == "minecraft:oak_sign" || targettype == "minecraft:oak_wall_sign" || targettype == "minecraft:spruce_sign" || targettype == "minecraft:spruce_wall_sign" || targettype == "minecraft:birch_sign" || targettype == "minecraft:birch_wall_sign" || targettype == "minecraft:jungle_sign" || targettype == "minecraft:jungle_wall_sign" || targettype == "minecraft:acacia_sign" || targettype == "minecraft:acacia_wall_sign" || targettype == "minecraft:dark_oak_sign" || targettype == "minecraft:dark_oak_wall_sign")) {
  1334. player.speak(player, "§6Commands", "Du bist nicht auf ein Schild gerichtet.");
  1335. goto("wait");
  1336. }
  1337. line = list.getIndex(args, 0);
  1338. if(!isDouble(line)) {
  1339. player.speak(player, "§6Commands", "Zahl erwartet");
  1340. goto("wait");
  1341. }
  1342. if(!(line == 1 || line == 2 || line == 3 || line == 4)) {
  1343. player.speak(player, "§6Commands", "Du musst eine Zahl von 1 bis 4 eingeben.");
  1344. goto("wait");
  1345. }
  1346. if(size == 1) {
  1347. text = "";
  1348. } else {
  1349. text = text.concatList(args, " ", 1, size - 1);
  1350. }
  1351. block.setSign(target, line - 1, text);
  1352. goto("wait");
  1353. @skull
  1354. if(size != 1) {
  1355. player.speak(player, "§6Commands", "/skull <player>");
  1356. goto("wait");
  1357. }
  1358. name = list.getIndex(args, 0);
  1359. uuid = player.getUuid(name);
  1360. if(uuid == null) {
  1361. player.speak(player, "§6Commands", "Dieser Spieler war noch nie online.");
  1362. goto("wait");
  1363. }
  1364. player.giveItem(player, player.getHead(uuid));
  1365. goto("wait");
  1366. @head
  1367. if(size == 0) {
  1368. player.speak(player, "§6Commands", "§r/head <name>");
  1369. goto("wait");
  1370. }
  1371. if(size == 1) {
  1372. kopfname = list.getIndex(args, 0);
  1373. player.giveItem(player, read.item(concat("{id:'minecraft:skull',Count:1b,tag:{SkullOwner:'", kopfname, "'},Damage:3s}")));
  1374. }
  1375. goto("wait");
  1376. @inv
  1377. if(size != 1) {
  1378. player.speak(player, "§6Commands", "/inv ignore");
  1379. goto("wait");
  1380. }
  1381. if(!perm.has(player, "inv.ignore")) {
  1382. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1383. goto("wait");
  1384. }
  1385. ignore = ggv(player, "invignore");
  1386. if(ignore == null) {
  1387. ignore = false;
  1388. }
  1389. if(!ignore) {
  1390. sgv(player, "invignore", true);
  1391. player.speak(player, "§6Commands", "Bei Weltwechsel behältst du dein Inventar.");
  1392. } else {
  1393. sgv(player, "invignore", false);
  1394. player.speak(player, "§6Commands", "Bei Weltwechsel verändert sich dein Inventar.");
  1395. }
  1396. goto("wait");
  1397. @marco
  1398. msg(player, "polo");
  1399. goto("wait");
  1400. @ping
  1401. msg(player, "pong");
  1402. goto("wait");
  1403. @elytra
  1404. entity.setEquip(player, "chest", read.item("minecraft:elytra"));
  1405. player.speak(player, "§6Commands", "§rElytra? Done");
  1406. goto("wait");
  1407. @rocket
  1408. player.giveItem(player, read.item("{id:'minecraft:fireworks',Count:3b,tag:{Fireworks:{Flight:3b}},Damage:0s}"));
  1409. goto("wait");
  1410. @plot
  1411. if(size == 0) {
  1412. @plothelp
  1413. player.speak(player, "§dPlots", "/plot ...");
  1414. msg(player, "§d - info §rGibt Infos über die aktuelle Position");
  1415. msg(player, "§d - pos1/pos2 §rMarkiert Eckpunkte");
  1416. if(perm.has(player, "plot.create")) {
  1417. msg(player, "§d - create §rErstellt ein Plot (0 - 255)");
  1418. msg(player, "§d - create3D §rErstellt ein Plot");
  1419. }
  1420. msg(player, "§d - remove [id] §rEntfernt ein Plot");
  1421. msg(player, "§d - expand <anzahl> [id] §rErweitert das Grundstück in Blickrichtung");
  1422. msg(player, "§d - name [id] <name> §rGibt einem Plot einen Namen");
  1423. msg(player, "§d - share <player> [id] §rFügt einen Spieler hinzu");
  1424. msg(player, "§d - kick <player> [id] §rEntfernt einen Spieler");
  1425. if(perm.has(player, "plot.moreinfo")) {
  1426. msg(player, "§d - moreinfo [id] §rGibt viele detaillierte Infos aus");
  1427. msg(player, "§d - listall §rListet alle Plots auf");
  1428. }
  1429. goto("wait");
  1430. }
  1431. arg0 = text.toLowerCase(list.getIndex(args, 0));
  1432. if(arg0 == "remove" || arg0 == "r" || arg0 == "delete") {
  1433. if(!perm.has(player, "plot.create")) {
  1434. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1435. goto("wait");
  1436. }
  1437. if(size > 2) {
  1438. player.speak(player, "§6Commands", "/plot remove [id]");
  1439. goto("wait");
  1440. }
  1441. if(size == 2) {
  1442. plot_id = list.getIndex(args, 1);
  1443. if(!isDouble(plot_id)) {
  1444. player.speak(player, "§dPlots", "Zahl erwartet.");
  1445. goto("wait");
  1446. }
  1447. if(!doesPlotExist(plot_id)) {
  1448. player.speak(player, "§dPlots", "Das Plot mit der ID ", text.number(plot_id), " existiert nicht.");
  1449. goto("wait");
  1450. }
  1451. } else {
  1452. location = entity.getLocation(player);
  1453. amount = getPlotAmount(location);
  1454. if(amount == 0) {
  1455. player.speak(player, "§dPlots", "Du befindest dich auf keinem Plot");
  1456. goto("wait");
  1457. }
  1458. if(amount > 1) {
  1459. player.speak(player, "§dPlots", "Mehrere Plots vorhanden. Verwende /plot remove <id>");
  1460. goto("wait");
  1461. }
  1462. plot_id = getPlotId(location);
  1463. }
  1464. removePlot(plot_id);
  1465. player.speak(player, "§dPlots", "Das Plot mit der ID ", text.number(plot_id), " wurde entfernt.");
  1466. goto("wait");
  1467. }
  1468. if(arg0 == "expand") {
  1469. if(!perm.has(player, "plot.expand")) {
  1470. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1471. goto("wait");
  1472. }
  1473. if(size < 2 || size > 3) {
  1474. player.speak(player, "§6Commands", "/plot expand <anzahl> [id]");
  1475. goto("wait");
  1476. }
  1477. anzahl = list.getIndex(args, 1);
  1478. if(!isDouble(anzahl)) {
  1479. player.speak(player, "§dPlots", "Zahl erwartet.");
  1480. goto("wait");
  1481. }
  1482. if(anzahl < 0) {
  1483. player.speak(player, "§dPlots", "Positive Zahl erwartet.");
  1484. goto("wait");
  1485. }
  1486. player_loc = entity.getLocation(player);
  1487. yaw = loc.getYaw(player_loc);
  1488. direction = getDirection(yaw);
  1489. if(direction == null) {
  1490. player.speak(player, "§dPlots", "Blickrichtung zu ungenau");
  1491. goto("wait");
  1492. }
  1493. if(size == 3) {
  1494. plot_id = list.getIndex(args, 2);
  1495. if(!isDouble(plot_id)) {
  1496. player.speak(player, "§dPlots", "Zahl erwartet.");
  1497. goto("wait");
  1498. }
  1499. if(!doesPlotExist(plot_id)) {
  1500. player.speak(player, "§dPlots", "Das Plot mit der ID ", text.number(plot_id), " existiert nicht.");
  1501. goto("wait");
  1502. }
  1503. } else {
  1504. location = entity.getLocation(player);
  1505. amount = getPlotAmount(location);
  1506. if(amount == 0) {
  1507. player.speak(player, "§dPlots", "Du befindest dich auf keinem Plot");
  1508. goto("wait");
  1509. }
  1510. if(amount > 1) {
  1511. player.speak(player, "§dPlots", "Mehrere Plots vorhanden. Verwende /plot expand <anzahl> <id>");
  1512. goto("wait");
  1513. }
  1514. plot_id = getPlotId(location);
  1515. }
  1516. plotMoreInfoStatement = databank.prepare("SELECT * FROM plots WHERE id = ?;");
  1517. databank.setInt(plotMoreInfoStatement, 1, plot_id);
  1518. result = databank.execute(plotMoreInfoStatement);
  1519. databank.next(result);
  1520. world = world.get(databank.getString(result, 8));
  1521. x1 = databank.getInt(result, 2);
  1522. y1 = databank.getInt(result, 3);
  1523. z1 = databank.getInt(result, 4);
  1524. x2 = databank.getInt(result, 5);
  1525. y2 = databank.getInt(result, 6);
  1526. z2 = databank.getInt(result, 7);
  1527. if(direction == "east") {
  1528. x2 += anzahl;
  1529. } elseif(direction == "south") {
  1530. z2 += anzahl;
  1531. } elseif(direction == "west") {
  1532. x1 -= anzahl;
  1533. } elseif(direction == "north") {
  1534. z1 -= anzahl;
  1535. }
  1536. gs_edge1 = loc.new(world, x1, y1, z1);
  1537. gs_edge2 = loc.new(world, x2, y2, z2);
  1538. databank.close(result);
  1539. databank.close(plotMoreInfoStatement);
  1540. changePlotEdges(plot_id, gs_edge1, gs_edge2);
  1541. player.speak(player, "§dPlots", "Das Plot wurde erweitert.");
  1542. goto("wait");
  1543. }
  1544. if(arg0 == "share") {
  1545. if(!perm.has(player, "plot.share")) {
  1546. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1547. goto("wait");
  1548. }
  1549. if(size < 2 || size > 3) {
  1550. player.speak(player, "§6Commands", "/plot share <name> [id]");
  1551. goto("wait");
  1552. }
  1553. p_name = list.getIndex(args, 1);
  1554. p_uuid = player.getUuid(p_name);
  1555. if(p_uuid == null) {
  1556. player.speak(player, "§dPlots", "§rDieser Spieler war noch nie online");
  1557. goto("wait");
  1558. }
  1559. p_id = player.getId(p_uuid);
  1560. if(size == 3) {
  1561. plot_id = list.getIndex(args, 2);
  1562. if(!isDouble(plot_id)) {
  1563. player.speak(player, "§dPlots", "Zahl erwartet.");
  1564. goto("wait");
  1565. }
  1566. if(!doesPlotExist(plot_id)) {
  1567. player.speak(player, "§dPlots", "Das Plot mit der ID ", text.number(plot_id), " existiert nicht.");
  1568. goto("wait");
  1569. }
  1570. } else {
  1571. location = entity.getLocation(player);
  1572. amount = getPlotAmount(location);
  1573. if(amount == 0) {
  1574. player.speak(player, "§dPlots", "Du befindest dich auf keinem Plot");
  1575. goto("wait");
  1576. }
  1577. if(amount > 1) {
  1578. player.speak(player, "§dPlots", "Mehrere Plots vorhanden. Verwende /plot share <name> <id>");
  1579. goto("wait");
  1580. }
  1581. plot_id = getPlotId(location);
  1582. }
  1583. addPlotPlayer(plot_id, p_id);
  1584. player.speak(player, "§dPlots", "Der Spieler ", p_name, " wurde zum Plot hinzugefügt.");
  1585. goto("wait");
  1586. }
  1587. if(arg0 == "kick") {
  1588. if(!perm.has(player, "plot.share")) {
  1589. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1590. goto("wait");
  1591. }
  1592. if(size < 2 || size > 3) {
  1593. player.speak(player, "§6Commands", "/plot kick <name> [id]");
  1594. goto("wait");
  1595. }
  1596. p_name = list.getIndex(args, 1);
  1597. p_uuid = player.getUuid(p_name);
  1598. if(p_uuid == null) {
  1599. player.speak(player, "§dPlots", "§rDieser Spieler war noch nie online");
  1600. goto("wait");
  1601. }
  1602. p_id = player.getId(p_uuid);
  1603. if(size == 3) {
  1604. plot_id = list.getIndex(args, 2);
  1605. if(!isDouble(plot_id)) {
  1606. player.speak(player, "§dPlots", "Zahl erwartet.");
  1607. goto("wait");
  1608. }
  1609. if(!doesPlotExist(plot_id)) {
  1610. player.speak(player, "§dPlots", "Das Plot mit der ID ", text.number(plot_id), " existiert nicht.");
  1611. goto("wait");
  1612. }
  1613. } else {
  1614. location = entity.getLocation(player);
  1615. amount = getPlotAmount(location);
  1616. if(amount == 0) {
  1617. player.speak(player, "§dPlots", "Du befindest dich auf keinem Plot");
  1618. goto("wait");
  1619. }
  1620. if(amount > 1) {
  1621. player.speak(player, "§dPlots", "Mehrere Plots vorhanden. Verwende /plot kick <name> <id>");
  1622. goto("wait");
  1623. }
  1624. plot_id = getPlotId(location);
  1625. }
  1626. removePlotPlayer(plot_id, p_id);
  1627. player.speak(player, "§dPlots", "Der Spieler ", p_name, " wurde vom Plot entfernt.");
  1628. goto("wait");
  1629. }
  1630. if(arg0 == "name") {
  1631. if(!perm.has(player, "plot.name")) {
  1632. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1633. goto("wait");
  1634. }
  1635. if(size < 2) {
  1636. player.speak(player, "§6Commands", "/plot name [id] <name>");
  1637. goto("wait");
  1638. }
  1639. plot_id = list.getIndex(args, 1);
  1640. if(isDouble(plot_id)) {
  1641. if(plot_id > 0) {
  1642. doesPlotExistStatement = databank.prepare("SELECT id FROM plots WHERE id = ?;");
  1643. databank.setInt(doesPlotExistStatement, 1, plot_id);
  1644. result = databank.execute(doesPlotExistStatement);
  1645. if(!databank.next(result)) {
  1646. //Plot-ID nicht vorhanden
  1647. player.speak(player, "§dPlots", "ID nicht gefunden.");
  1648. databank.close(result);
  1649. databank.close(doesPlotExistStatement);
  1650. goto("wait");
  1651. }
  1652. databank.close(result);
  1653. databank.close(doesPlotExistStatement);
  1654. }
  1655. name = text.concatList(args, " ", 2, size - 1);
  1656. } else {
  1657. list = plot.getIds(entity.getLocation(player));
  1658. listsize = list.getSize(list);
  1659. if(listsize == 0) {
  1660. player.speak(player, "§dPlots", "ID nicht gefunden.");
  1661. goto("wait");
  1662. }
  1663. if(listsize > 1) {
  1664. player.speak(player, "§dPlots", "Mehrere Plots vorhanden. Verwende /plot name <id> <name>");
  1665. goto("wait");
  1666. }
  1667. plot_id = list.getIndex(list, 0);
  1668. name = text.concatList(args, " ", 1, size - 1);
  1669. }
  1670. setPlotName(plot_id, name);
  1671. player.speak(player, "§dPlots", "Plot wurde zu ", name, " umbenannt.");
  1672. goto("wait");
  1673. }
  1674. if(arg0 == "create" || arg0 == "c" || arg0 == "add" || arg0 == "a") {
  1675. if(!perm.has(player, "plot.create")) {
  1676. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1677. goto("wait");
  1678. }
  1679. player_id = player.getId(player);
  1680. loc1 = map.get(plotpos1, player_id);
  1681. loc2 = map.get(plotpos2, player_id);
  1682. if(loc1 == null || loc2 == null) {
  1683. player.speak(player, "§dPlots", "Keine Eckpunkte gesetzt.");
  1684. goto("wait");
  1685. }
  1686. if(loc.getWorld(loc1) != loc.getWorld(loc2)) {
  1687. player.speak(player, "§dPlots", "Eckpunkte haben unterschiedliche Welten");
  1688. goto("wait");
  1689. }
  1690. loc.setY(loc1, 0);
  1691. loc.setY(loc2, 255);
  1692. addPlot(loc1, loc2, player_name);
  1693. player.speak(player, "§dPlots", "Plot erstellt.");
  1694. goto("wait");
  1695. }
  1696. if(arg0 == "create3D" || arg0 == "add3D") {
  1697. if(!perm.has(player, "plot.create")) {
  1698. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1699. goto("wait");
  1700. }
  1701. player_id = player.getId(player);
  1702. loc1 = map.get(plotpos1, player_id);
  1703. loc2 = map.get(plotpos2, player_id);
  1704. if(loc1 == null || loc2 == null) {
  1705. player.speak(player, "§dPlots", "Keine Eckpunkte gesetzt.");
  1706. goto("wait");
  1707. }
  1708. if(loc.getWorld(loc1) != loc.getWorld(loc2)) {
  1709. player.speak(player, "§dPlots", "Eckpunkte haben unterschiedliche Welten");
  1710. goto("wait");
  1711. }
  1712. addPlot(loc1, loc2, player_name);
  1713. player.speak(player, "§dPlots", "3DPlot erstellt.");
  1714. goto("wait");
  1715. }
  1716. if(arg0 == "pos1" || arg0 == "pos2") {
  1717. loc = entity.getLocation(player);
  1718. x = loc.getCoord(loc, "bx");
  1719. y = loc.getCoord(loc, "by");
  1720. z = loc.getCoord(loc, "bz");
  1721. world = loc.getWorld(loc);
  1722. loc = loc.new(world, x, y, z);
  1723. player_id = player.getId(player);
  1724. if(arg0 == "pos1") {
  1725. map.add(plotpos1, player_id, loc);
  1726. pos = "Pos1";
  1727. }
  1728. elseif(arg0 == "pos2") {
  1729. map.add(plotpos2, player_id, loc);
  1730. pos = "Pos2";
  1731. }
  1732. player.speak(player, "§dPlots", pos, " (", text.number(x), "/", text.number(y), "/", text.number(z), ") gesetzt");
  1733. goto("wait");
  1734. }
  1735. if(arg0 == "listall") {
  1736. if(!perm.has(player, "plot.moreinfo")) {
  1737. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1738. goto("wait");
  1739. }
  1740. if(size != 1) {
  1741. player.speak(player, "§6Commands", "/plot listall");
  1742. goto("wait");
  1743. }
  1744. player.speak(player, "§6Commands", "Alle Plots mit Ownern");
  1745. listAllPlotsStatement = databank.prepare("SELECT id, name FROM plots;");
  1746. result = databank.execute(listAllPlotsStatement);
  1747. while(databank.next(result)) {
  1748. plot_id = databank.getInt(result, 1);
  1749. plot_name = databank.getString(result, 2);
  1750. getPlotOwnersStatement = databank.prepare("SELECT player_id FROM plot_grant WHERE plot_id = ?;");
  1751. databank.setInt(getPlotOwnersStatement, 1, plot_id);
  1752. result2 = databank.execute(getPlotOwnersStatement);
  1753. owners = "";
  1754. while(databank.next(result2)) {
  1755. owners = concat(owners, "/", player.getNameFromId(databank.getInt(result2, 1)));
  1756. }
  1757. databank.close(result2);
  1758. databank.close(getPlotOwnersStatement);
  1759. msg(player, concat("§v", text.number(plot_id), " §6", plot_name, " §r", owners));
  1760. }
  1761. databank.close(result);
  1762. databank.close(listAllPlotsStatement);
  1763. goto("wait");
  1764. }
  1765. if(arg0 == "moreinfo" || arg0 == "mi") {
  1766. if(!perm.has(player, "plot.moreinfo")) {
  1767. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1768. goto("wait");
  1769. }
  1770. if(size > 2) {
  1771. player.speak(player, "§6Commands", "/plot moreinfo [id]");
  1772. goto("wait");
  1773. }
  1774. if(size == 2) {
  1775. plot_id = list.getIndex(args, 1);
  1776. if(!isDouble(plot_id)) {
  1777. player.speak(player, "§dPlots", "Zahl erwartet.");
  1778. goto("wait");
  1779. }
  1780. if(!doesPlotExist(plot_id)) {
  1781. player.speak(player, "§dPlots", "Das Plot mit der ID ", text.number(plot_id), " existiert nicht.");
  1782. goto("wait");
  1783. }
  1784. } else {
  1785. location = entity.getLocation(player);
  1786. amount = getPlotAmount(location);
  1787. if(amount == 0) {
  1788. player.speak(player, "§dPlots", "Du befindest dich auf keinem Plot");
  1789. goto("wait");
  1790. }
  1791. if(amount > 1) {
  1792. player.speak(player, "§dPlots", "Mehrere Plots vorhanden. Verwende /plot moreinfo <id>");
  1793. goto("wait");
  1794. }
  1795. plot_id = getPlotId(location);
  1796. }
  1797. plotInfoStatement = databank.prepare("SELECT player_id FROM plot_grant WHERE plot_id = ?;");
  1798. databank.setInt(plotInfoStatement, 1, plot_id);
  1799. result = databank.execute(plotInfoStatement);
  1800. owners = "";
  1801. while(databank.next(result)) {
  1802. owners = concat(owners, "/", player.getNameFromId(databank.getInt(result, 1)));
  1803. }
  1804. databank.close(result);
  1805. databank.close(plotInfoStatement);
  1806. player.speak(player, "§dPlots", concat("#", text.number(plot_id), " §6", getPlotName(plot_id), " §r", owners));
  1807. plotMoreInfoStatement = databank.prepare("SELECT * FROM plots WHERE id = ?;");
  1808. databank.setInt(plotMoreInfoStatement, 1, plot_id);
  1809. result = databank.execute(plotMoreInfoStatement);
  1810. databank.next(result);
  1811. msg(player, " World: ", databank.getString(result, 8));
  1812. msg(player, " Pos1: ", databank.getInt(result, 2), " / ", databank.getInt(result, 3), " / ", databank.getInt(result, 4));
  1813. msg(player, " Pos2: ", databank.getInt(result, 5), " / ", databank.getInt(result, 6), " / ", databank.getInt(result, 7));
  1814. databank.close(result);
  1815. databank.close(plotMoreInfoStatement);
  1816. goto("wait");
  1817. }
  1818. if(arg0 == "info" || arg0 == "i") {
  1819. list = plot.getIds(entity.getLocation(player));
  1820. listsize = list.getSize(list);
  1821. if(listsize == 0) {
  1822. player.speak(player, "§dPlots", "Keine Plots vorhanden.");
  1823. goto("wait");
  1824. }
  1825. player.speak(player, "§dPlots", "Du befindest dich auf folgenden Plots:");
  1826. for(i = 0; i <= listsize - 1; i++) {
  1827. plotid = list.getIndex(list, i);
  1828. plotInfoStatement = databank.prepare("SELECT player_id FROM plot_grant WHERE plot_id = ?;");
  1829. databank.setInt(plotInfoStatement, 1, plotid);
  1830. result = databank.execute(plotInfoStatement);
  1831. owners = "";
  1832. while(databank.next(result)) {
  1833. owners = concat(owners, "/", player.getNameFromId(databank.getInt(result, 1)));
  1834. }
  1835. databank.close(result);
  1836. databank.close(plotInfoStatement);
  1837. msg(player, concat(" - #", text.number(plotid), " §6", getPlotName(plotid), " §r", owners));
  1838. }
  1839. goto("wait");
  1840. }
  1841. goto("plothelp");
  1842. @speed
  1843. if(size < 1 || size > 2) {
  1844. player.speak(player, "§6Commands", "/speed <1-10> [player]");
  1845. goto("wait");
  1846. }
  1847. speed = list.getIndex(args, 0);
  1848. if(!isDouble(speed)) {
  1849. player.speak(player, "§6Commands", "Zahl erwartet.");
  1850. goto("wait");
  1851. }
  1852. if(speed < 1 || speed > 10) {
  1853. player.speak(player, "§6Commands", "/speed <1-10> [player]");
  1854. goto("wait");
  1855. }
  1856. if(size == 2) {
  1857. if(!perm.has(player, "speed.other")) {
  1858. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1859. goto("wait");
  1860. }
  1861. affectedname = list.getIndex(args, 1);
  1862. affectedplayer = read.player(affectedname);
  1863. if(affectedplayer == null) {
  1864. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  1865. goto("wait");
  1866. }
  1867. }
  1868. player.setspeed(affectedplayer, speed / 20);
  1869. player.speak(affectedplayer, "§6Commands", "Dein Speed beträgt nun ", text.number(speed), ".");
  1870. if(affectedplayer != player) {
  1871. player.speak(player, "§6Commands", "Der Speed von ", affectedname, " wurde auf ", text.number(speed), " gesetzt.");
  1872. }
  1873. goto("wait");
  1874. @mayo
  1875. msg(player, "Nein ", player_name, ", Mayonnaise ist kein Instrument.");
  1876. goto("wait");
  1877. @butcher
  1878. msg(player, "Butcher blockiert");
  1879. goto("wait");
  1880. @enderchest
  1881. if(size < 1 || size > 2) {
  1882. player.speak(player, "§6Commands", "/enderchest [player] <from-player>");
  1883. goto("wait");
  1884. }
  1885. if(size == 1) {
  1886. from_name = list.getIndex(args, 0);
  1887. }
  1888. elseif(size == 2) {
  1889. affectedname = list.getIndex(args, 0);
  1890. from_name = list.getIndex(args, 1);
  1891. affectedplayer = read.player(affectedname);
  1892. if(affectedplayer == null) {
  1893. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  1894. goto("wait");
  1895. }
  1896. }
  1897. from_player = read.player(from_name);
  1898. if(from_player == null) {
  1899. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  1900. goto("wait");
  1901. }
  1902. player.openEnderchest(affectedplayer, from_player);
  1903. goto("wait");
  1904. @gamemode
  1905. if(size < 1 || size > 2) {
  1906. player.speak(player, "§6Commands", "/gamemode <mode> [player]");
  1907. goto("wait");
  1908. }
  1909. if(size == 2) {
  1910. if(!perm.has(player, "gamemode.other")) {
  1911. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  1912. goto("wait");
  1913. }
  1914. affectedname = list.getIndex(args, 1);
  1915. affectedplayer = read.player(affectedname);
  1916. if(affectedplayer == null) {
  1917. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  1918. goto("wait");
  1919. }
  1920. }
  1921. mode = list.getIndex(args, 0);
  1922. if(isDouble(mode)) {
  1923. mode = text.number(mode);
  1924. } else {
  1925. mode = text.toLowerCase(mode);
  1926. }
  1927. if(mode == "s" || mode == "0" || mode == "survival") {
  1928. mode = "survival";
  1929. } elseif(mode == "c" || mode == "1" || mode == "creative") {
  1930. mode = "creative";
  1931. } elseif(mode == "a" || mode == "2" || mode == "adventure") {
  1932. mode = "adventure";
  1933. } elseif(mode == "w" || mode == "3" || mode == "spectator") {
  1934. mode = "spectator";
  1935. } else {
  1936. player.speak(player, "§6Commands", "Gamemode nicht bekannt.");
  1937. goto("wait");
  1938. }
  1939. player.setGamemode(affectedplayer, mode);
  1940. if(affectedplayer != player) {
  1941. player.speak(player, "§6Commands", "Der Gamemode von ", affectedname, " wurde auf ", mode, " gesetzt.");
  1942. }
  1943. player.speak(affectedplayer, "§6Commands", "Dein Gamemode wurde auf ", mode, " gesetzt.");
  1944. goto("wait");
  1945. @listhomes
  1946. if(size > 1) {
  1947. player.speak(player, "§6Commands", "/listhomes [player]");
  1948. goto("wait");
  1949. }
  1950. affecteduuid = player.getUuid(affectedname);
  1951. if(size == 1) {
  1952. affectedname = list.getIndex(args, 0);
  1953. affecteduuid = player.getUuid(affectedname);
  1954. if(affecteduuid == null) {
  1955. player.speak(player, "§6Commands", "Dieser Spieler war noch nie online.");
  1956. goto("wait");
  1957. }
  1958. }
  1959. id = player.getId(affecteduuid);
  1960. msg(player, "Homes von ", affectedname, ":");
  1961. getHomeStatement = databank.prepare("SELECT seckeyname, value FROM scriptdualmaps WHERE map = 'homes' AND keyname = ?;");
  1962. databank.setString(getHomeStatement, 1, id);
  1963. result = databank.execute(getHomeStatement);
  1964. while(databank.next(result)) {
  1965. msg(player, " - ", databank.getString(result, 1));
  1966. }
  1967. databank.close(result);
  1968. databank.close(getHomeStatement);
  1969. goto("wait");
  1970. @delhome
  1971. if(size != 1) {
  1972. player.speak(player, "§6Commands", "/delhome <name>");
  1973. goto("wait");
  1974. }
  1975. id = player.getId(player);
  1976. name = list.getIndex(args, 0);
  1977. if(gdmap.get("homes", id, name) == null) {
  1978. player.speak(player, "§6Commands", "Der Home ", name, " existiert nicht.");
  1979. goto("wait");
  1980. }
  1981. gdmap.remove("homes", id, name);
  1982. player.speak(player, "§6Commands", "Der Home ", name, " wurde entfernt");
  1983. goto("wait");
  1984. @sethome
  1985. if(size != 1) {
  1986. player.speak(player, "§6Commands", "/sethome <name>");
  1987. goto("wait");
  1988. }
  1989. id = player.getId(player);
  1990. location = entity.getLocation(player);
  1991. if(!perm.has(player, "isMod")) {
  1992. if(set.contains(nohomet, loc.getWorld(location))) {
  1993. player.speak(player, "§6Commands", "In dieser Welt sind keine Homes erlaubt.");
  1994. goto("wait");
  1995. }
  1996. }
  1997. name = list.getIndex(args, 0);
  1998. if(!text.onlyletters(name)) {
  1999. player.speak(player, "§6Commands", "Nur Buchstaben als Namen erlaubt.");
  2000. goto("wait");
  2001. }
  2002. if(gdmap.get("homes", id, name) != null) {
  2003. player.speak(player, "§6Commands", "Der Home ", name, " existiert bereits.");
  2004. goto("wait");
  2005. }
  2006. gdmap.add("homes", id, name, text.location(location));
  2007. player.speak(player, "§6Commands", "Der Home ", name, " wurde gesetzt.");
  2008. goto("wait");
  2009. @home
  2010. if(size < 1 || size > 2) {
  2011. player.speak(player, "§6Commands", "/home <name> [player]");
  2012. goto("wait");
  2013. }
  2014. if(size == 2) {
  2015. affectedname = list.getIndex(args, 1);
  2016. }
  2017. name = list.getIndex(args, 0);
  2018. affecteduuid = player.getUuid(affectedname);
  2019. if(affecteduuid == null) {
  2020. player.speak(player, "§6Commands", "Der Spieler war noch nie online.");
  2021. goto("wait");
  2022. }
  2023. id = player.getID(affecteduuid);
  2024. location = gdmap.get("homes", id, name);
  2025. if(location == null) {
  2026. player.speak(player, "§6Commands", "Dieser Home existiert nicht.");
  2027. goto("wait");
  2028. }
  2029. location = read.location(location);
  2030. world = loc.getWorld(location);
  2031. if(world == null) {
  2032. player.speak(player, "§6Commands", "Diese Welt ist nicht geladen.");
  2033. goto("wait");
  2034. }
  2035. setBackPos(player);
  2036. checkInvChange(player, location);
  2037. entity.teleport(player, location);
  2038. goto("wait");
  2039. @teleport
  2040. if(size < 1 || size > 2) {
  2041. player.speak(player, "§6Commands", "/teleport [player] <to-player>");
  2042. goto("wait");
  2043. }
  2044. if(size == 1) {
  2045. to_name = list.getIndex(args, 0);
  2046. }
  2047. elseif(size == 2) {
  2048. if(!perm.has(player, "teleport.other")) {
  2049. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  2050. goto("wait");
  2051. }
  2052. affectedname = list.getIndex(args, 0);
  2053. affectedplayer = read.player(affectedname);
  2054. //Damit der ganze Spielername und nicht nur der eingegebene angezeigt wird
  2055. affectedname = player.getName(affectedplayer);
  2056. to_name = list.getIndex(args, 1);
  2057. if(affectedplayer == null) {
  2058. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2059. goto("wait");
  2060. }
  2061. }
  2062. to_player = read.player(to_name);
  2063. if(to_player == null) {
  2064. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2065. goto("wait");
  2066. }
  2067. //Damit der ganze Spielername und nicht nur der eingegebene angezeigt wird
  2068. to_name = player.getName(to_player);
  2069. if(player != affectedplayer) {
  2070. player.speak(player, "§6Commands", affectedname, " wurde zu ", to_name, " teleportiert");
  2071. }
  2072. player.speak(affectedplayer, "§6Commands", "Du wurdest zu ", to_name, " teleportiert");
  2073. setBackPos(affectedplayer);
  2074. location = entity.getLocation(to_player);
  2075. checkInvChange(affectedplayer, location);
  2076. entity.teleport(affectedplayer, location);
  2077. goto("wait");
  2078. @say
  2079. if(size == 0) {
  2080. player.speak(player, "§6Commands", "/say <text>");
  2081. goto("wait");
  2082. }
  2083. message = concatList(args, " ", 0, size - 1);
  2084. msg(player, "[§cServer§r] ", text.replace(message, "&", "§"));
  2085. goto("wait");
  2086. @warp
  2087. if(size < 1 || size > 2) {
  2088. player.speak(player, "§6Commands", "/warp <warpname> [player]");
  2089. warps_list = getWarpsList();
  2090. for(i = 0; i < list.getSize(warps_list); i++) {
  2091. msg(player, " - ", list.getIndex(warps_list, i));
  2092. }
  2093. goto("wait");
  2094. }
  2095. warpname = text.toLowerCase(list.getIndex(args, 0));
  2096. warploc = gmap.get("warps", warpname);
  2097. if(warploc == null) {
  2098. player.speak(player, "§6Commands", "Der Warp existiert nicht.");
  2099. goto("wait");
  2100. }
  2101. if(size == 2) {
  2102. if(!perm.has(player, "warp.other")) {
  2103. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  2104. goto("wait");
  2105. }
  2106. affectedname = list.getIndex(args, 1);
  2107. affectedplayer = read.player(affectedname);
  2108. if(affectedplayer == null) {
  2109. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2110. goto("wait");
  2111. }
  2112. if(player != affectedplayer) {
  2113. player.speak(player, "§6Commands", affectedname, " wurde zum Warp ", warpname, " teleportiert.");
  2114. }
  2115. }
  2116. warploc = read.location(warploc);
  2117. world = loc.getWorld(warploc);
  2118. if(world == null) {
  2119. player.speak(player, "§6Commands", "Diese Welt ist nicht geladen.");
  2120. goto("wait");
  2121. }
  2122. entity.teleport(affectedplayer, warploc);
  2123. player.speak(affectedplayer, "§6Commands", "Du wurdest zum Warp ", warpname, " teleportiert.");
  2124. goto("wait");
  2125. @delwarp
  2126. if(size != 1) {
  2127. player.speak(player, "§6Commands", "/delwarp <warpname>");
  2128. goto("wait");
  2129. }
  2130. warpname = text.toLowerCase(list.getIndex(args, 0));
  2131. if(gmap.get("warps", warpname) == null) {
  2132. player.speak(player, "§6Commands", "Der Warp existiert nicht.");
  2133. goto("wait");
  2134. }
  2135. gmap.remove("warps", warpname);
  2136. player.speak(player, "§6Commands", "Der Warp ", warpname, " wurde entfernt.");
  2137. goto("wait");
  2138. @setwarp
  2139. if(size != 1) {
  2140. player.speak(player, "§6Commands", "/setwarp <warpname>");
  2141. goto("wait");
  2142. }
  2143. warpname = text.toLowerCase(list.getIndex(args, 0));
  2144. if(!text.onlyletters(warpname)) {
  2145. player.speak(player, "§6Commands", "Nur Buchstaben als Namen erlaubt.");
  2146. goto("wait");
  2147. }
  2148. if(gmap.get("warps", warpname) != null) {
  2149. player.speak(player, "§6Commands", "Der Warp existiert bereits.");
  2150. goto("wait");
  2151. }
  2152. gmap.add("warps", warpname, text.location(entity.getLocation(player)));
  2153. player.speak(player, "§6Commands", "Der Warp wurde erstellt.");
  2154. goto("wait");
  2155. @showtables
  2156. if(size != 0) {
  2157. player.speak(player, "§6Commands", "/showtables");
  2158. goto("wait");
  2159. }
  2160. msg(player, getSpacer());
  2161. showTablesStatement = databank.prepare("SHOW TABLES");
  2162. result = databank.execute(showTablesStatement);
  2163. while(databank.next(result)) {
  2164. msg(player, databank.getString(result, 1));
  2165. }
  2166. databank.close(result);
  2167. databank.close(showTablesStatement);
  2168. goto("wait");
  2169. @showfields
  2170. if(size != 1) {
  2171. player.speak(player, "§6Commands", "/showfields <table>");
  2172. goto("wait");
  2173. }
  2174. table = list.getIndex(args, 0);
  2175. set.clear(fields);
  2176. showTablesStatement = databank.prepare("SHOW TABLES");
  2177. result = databank.execute(showTablesStatement);
  2178. while(databank.next(result)) {
  2179. set.add(fields, databank.getString(result, 1));
  2180. }
  2181. databank.close(result);
  2182. databank.close(showTablesStatement);
  2183. if(!set.contains(fields, table)) {
  2184. player.speak(player, "§6Commands", "Kein existierendes Table");
  2185. goto("wait");
  2186. }
  2187. msg(player, getSpacer());
  2188. showFieldsStament = databank.prepare(concat("SHOW FIELDS FROM ", table, ";"));
  2189. result = databank.execute(showFieldsStament);
  2190. while(databank.next(result)) {
  2191. msg(player, databank.getString(result, 1));
  2192. }
  2193. databank.close(result);
  2194. databank.close(showFieldsStament);
  2195. goto("wait");
  2196. @seen
  2197. if(size != 1) {
  2198. player.speak(player, "§6Commands", "/seen <player>");
  2199. goto("wait");
  2200. }
  2201. seen_name = list.getIndex(args, 0);
  2202. seen_uuid = player.getUuid(seen_name);
  2203. if(seen_uuid == null) {
  2204. player.speak(player, "§6Commands", "Dieser Spieler war noch nie online.");
  2205. goto("wait");
  2206. }
  2207. if(read.player(seen_name) != null) {
  2208. player.speak(player, "§6Commands", "Dieser Spieler ist gerade online.");
  2209. goto("wait");
  2210. }
  2211. seenStatement = databank.prepare("SELECT logouttime FROM logoutdata WHERE player_id = ?;");
  2212. databank.setInt(seenStatement, 1, player.getId(seen_uuid));
  2213. result = databank.execute(seenStatement);
  2214. varset = false;
  2215. while(databank.next(result)) {
  2216. time = time.new(calendar, databank.getLong(result, 1));
  2217. dateformat = concat(text.number(time.getDay(calendar)), ".", text.number(time.getMonth(calendar)), ".", text.number(time.getYear(calendar)));
  2218. clockformat = concat(text.number(time.getHour(calendar)), ":", text.number(time.getMinute(calendar)));
  2219. player.speak(player, "§6Commands", seen_name, " war zuletzt am ", dateformat, " um ", clockformat, " online.");
  2220. varset = true;
  2221. }
  2222. databank.close(result);
  2223. databank.close(seenStatement);
  2224. if(!varset) {
  2225. player.speak(player, "§6Commands", "Keine Daten vorhanden.");
  2226. goto("wait");
  2227. }
  2228. goto("wait");
  2229. @lastseen
  2230. if(size != 1) {
  2231. player.speak(player, "§6Commands", "/lastseen <amount>");
  2232. goto("wait");
  2233. }
  2234. amount = list.getIndex(args, 0);
  2235. if(!isDouble(amount)) {
  2236. player.speak(player, "§6Commands", "Zahl erwartet.");
  2237. goto("wait");
  2238. }
  2239. if(amount <= 0) {
  2240. player.speak(player, "§6Commands", "Zahl größer 0 erwartet.");
  2241. goto("wait");
  2242. }
  2243. player.speak(player, "§6Commands", "Zuletzt waren online:");
  2244. lastseenStatement = databank.prepare("SELECT player_id, logouttime FROM logoutdata ORDER BY logouttime DESC LIMIT ?;");
  2245. databank.setInt(lastseenStatement, 1, amount);
  2246. result = databank.execute(lastseenStatement);
  2247. while(databank.next(result)) {
  2248. id = databank.getInt(result, 1);
  2249. time = time.new(calendar, databank.getLong(result, 2));
  2250. year = text.number(time.getYear(calendar));
  2251. month = text.number(time.getMonth(calendar));
  2252. day = text.number(time.getDay(calendar));
  2253. minute = text.number(time.getMinute(calendar));
  2254. hour = text.number(time.getHour(calendar));
  2255. month = correctTimeFormat(month);
  2256. day = correctTimeFormat(day);
  2257. hour = correctTimeFormat(hour);
  2258. minute = correctTimeFormat(minute);
  2259. dateformat = concat(day, ".", month, ".", year);
  2260. clockformat = concat(hour, ":", minute);
  2261. msg(player, concat(" - §a", player.getNameFromId(id), "§r am §v", dateformat, "§r um §v", clockformat, " Uhr"));
  2262. }
  2263. databank.close(result);
  2264. databank.close(lastseenStatement);
  2265. goto("wait");
  2266. @feed
  2267. if(size > 1) {
  2268. player.speak(player, "§6Commands", "/feed [player]");
  2269. goto("wait");
  2270. }
  2271. if(size == 1) {
  2272. affectedname = list.getIndex(args, 0);
  2273. affectedplayer = read.player(affectedname);
  2274. if(affectedplayer == null) {
  2275. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2276. goto("wait");
  2277. }
  2278. if(player != affectedplayer) {
  2279. player.speak(player, "§6Commands", "Der Hunger von ", affectedname, " wurde gestillt.");
  2280. }
  2281. }
  2282. player.setHunger(affectedplayer, 20);
  2283. player.setSaturation(affectedplayer, 5);
  2284. player.speak(affectedplayer, "§6Commands", "Dein Hunger wurde gestillt.");
  2285. goto("wait");
  2286. @fly
  2287. if(size > 2) {
  2288. player.speak(player, "§6Commands", "/fly [player] [on/off]");
  2289. goto("wait");
  2290. }
  2291. if(size >= 1) {
  2292. if(!perm.has(player, "fly.other")) {
  2293. player.speak(player, "§6Perms", "Du hast keine Permission dafür.");
  2294. goto("wait");
  2295. }
  2296. affectedname = list.getIndex(args, 0);
  2297. affectedplayer = read.player(affectedname);
  2298. if(affectedplayer == null) {
  2299. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2300. goto("wait");
  2301. }
  2302. }
  2303. if(size == 2) {
  2304. boolean = list.getIndex(args, 1);
  2305. if(boolean == "on") {
  2306. fly = true;
  2307. } elseif(boolean == "off") {
  2308. fly = false;
  2309. } else {
  2310. player.speak(player, "§6Commands", "/fly [player] [on/off]");
  2311. goto("wait");
  2312. }
  2313. } else {
  2314. if(player.hasFly(affectedplayer)) {
  2315. fly = false;
  2316. } else {
  2317. fly = true;
  2318. }
  2319. }
  2320. player.setFly(affectedplayer, fly);
  2321. if(fly) {
  2322. player.speak(affectedplayer, "§6Commands", "Du kannst nun fliegen.");
  2323. if(player != affectedplayer) {
  2324. player.speak(player, "§6Commands", affectedname, " kann nun fliegen");
  2325. }
  2326. } else {
  2327. player.speak(affectedplayer, "§6Commands", "Du kannst nicht mehr fliegen.");
  2328. if(player != affectedplayer) {
  2329. player.speak(player, "§6Commands", affectedname, " kann nun nicht mehr fliegen.");
  2330. }
  2331. }
  2332. goto("wait");
  2333. @tppos
  2334. if(size < 3 || size > 5) {
  2335. player.speak(player, "§6Commands", "/tppos <x> <y> <z> [world] [player]");
  2336. goto("wait");
  2337. }
  2338. x = list.getIndex(args, 0);
  2339. y = list.getIndex(args, 1);
  2340. z = list.getIndex(args, 2);
  2341. if(!isDouble(x) || !isDouble(y) || !isDouble(z)) {
  2342. player.speak(player, "§6Commands", "x/y/z müssen Zahlen sein.");
  2343. goto("wait");
  2344. }
  2345. if(size >= 4) {
  2346. worldname = list.getIndex(args, 3);
  2347. world = world.get(worldname);
  2348. if(world == null) {
  2349. player.speak(player, "§6Commands", "Diese Welt ist nicht geladen.");
  2350. goto("wait");
  2351. }
  2352. } else {
  2353. world = loc.getWorld(entity.getLocation(player));
  2354. }
  2355. location = loc.new(world, x, y, z);
  2356. if(size == 5) {
  2357. affectedname = list.getIndex(args, 4);
  2358. affectedplayer = read.player(affectedname);
  2359. if(affectedplayer == null) {
  2360. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2361. goto("wait");
  2362. }
  2363. if(player != affectedplayer) {
  2364. player.speak(player, "§6Commands", affectedname, " wurde teleportiert.");
  2365. }
  2366. }
  2367. setBackPos(affectedplayer);
  2368. checkInvChange(affectedplayer, location);
  2369. entity.teleport(affectedplayer, location);
  2370. goto("wait");
  2371. @back
  2372. if(size > 0) {
  2373. player.speak(player, "§6Commands", "/back");
  2374. goto("wait");
  2375. }
  2376. location = ggv(affectedplayer, "backpos");
  2377. if(location == null) {
  2378. player.speak(player, "§6Commands", "Keine Back-Location vorhanden.");
  2379. goto("wait");
  2380. }
  2381. location = read.location(location);
  2382. world = loc.getWorld(location);
  2383. if(world == null) {
  2384. player.speak(player, "§6Commands", "Diese Welt ist nicht geladen.");
  2385. goto("wait");
  2386. }
  2387. setBackPos(affectedplayer);
  2388. checkInvChange(affectedplayer, location);
  2389. entity.teleport(affectedplayer, location);
  2390. goto("wait");
  2391. @color
  2392. if(size > 0) {
  2393. player.speak(player, "§6Commands", "/color");
  2394. goto("wait");
  2395. }
  2396. msg(player, "Verfügbare Farbcodes:");
  2397. msg(player, " §0&0 §1&1 §2&2 §3&3 §4&4 §5&5 §6&6 §7&7");
  2398. msg(player, " §8&8 §9&9 §a&a §b&b §c&c §d&d §e&e §f&f");
  2399. msg(player, " §g&g §i&i §p&p §s&s §u&u §w&w §y&y");
  2400. msg(player, " §h&h §j&j §q&q §t&t §v&v §x&x §z&z");
  2401. msg(player, "Sonstiges:");
  2402. msg(player, " &l §l(fett)");
  2403. msg(player, " &m §m(durchgestrichen)");
  2404. msg(player, " &n §n(unterstrichen)");
  2405. msg(player, " &o §o(kursiv)");
  2406. msg(player, " &k §kwusigusi");
  2407. goto("wait");
  2408. @setgamesspawn
  2409. if(size > 0) {
  2410. player.speak(player, "§6Commands", "/setgamesspawn");
  2411. goto("wait");
  2412. }
  2413. gamesspawn = text.location(entity.getLocation(player));
  2414. sgv("SERVER", "gamesspawn", gamesspawn);
  2415. player.speak(player, "§6Commands", "Der neue Games-Spawn wurde gesetzt.");
  2416. goto("wait");
  2417. @setspawn
  2418. if(size > 0) {
  2419. player.speak(player, "§6Commands", "/setspawn");
  2420. goto("wait");
  2421. }
  2422. serverspawn = text.location(entity.getLocation(player));
  2423. sgv("SERVER", "serverspawn", serverspawn);
  2424. player.speak(player, "§6Commands", "Der neue Spawn wurde gesetzt.");
  2425. goto("wait");
  2426. @spawn
  2427. if(size > 1) {
  2428. player.speak(player, "§6Commands", "/spawn [player]");
  2429. goto("wait");
  2430. }
  2431. if(size == 1) {
  2432. affectedname = list.getIndex(args, 0);
  2433. affectedplayer = read.player(affectedname);
  2434. if(affectedplayer == null) {
  2435. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2436. goto("wait");
  2437. }
  2438. }
  2439. if(perm.has(affectedplayer, "isMod") || perm.has(affectedplayer, "canTP")) { //Mods und TP haben kein /spawn, wenn sie in einer Quest sind
  2440. if(player.hasScript(affectedplayer)) {
  2441. if(size == 1) {
  2442. msg(player, "§rDer Spieler ist an ein Script gebunden");
  2443. } else {
  2444. msg(player, "§rDu bist an ein Script gebunden.");
  2445. }
  2446. cancel = true;
  2447. goto("wait");
  2448. }
  2449. }
  2450. if(size == 1) {
  2451. if(player != affectedplayer) {
  2452. player.speak(player, "§6Commands", affectedname, " wurde zum Spawn teleportiert.");
  2453. }
  2454. }
  2455. serverspawn = read.location(ggv("SERVER", "serverspawn"));
  2456. setBackPos(affectedplayer);
  2457. checkInvChange(affectedplayer, serverspawn);
  2458. entity.teleport(affectedplayer, serverspawn);
  2459. player.speak(affectedplayer, "§6Commands", "Du wurdest zum Spawn teleportiert.");
  2460. goto("wait");
  2461. @heal
  2462. if(size > 1) {
  2463. player.speak(player, "§6Commands", "/heal [player]");
  2464. goto("wait");
  2465. }
  2466. if(size == 1) {
  2467. affectedname = list.getIndex(args, 0);
  2468. affectedplayer = read.player(affectedname);
  2469. if(affectedplayer == null) {
  2470. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2471. goto("wait");
  2472. }
  2473. if(player != affectedplayer) {
  2474. player.speak(player, "§6Commands", affectedname, " wurde geheilt.");
  2475. }
  2476. }
  2477. entity.setHealth(affectedplayer, 20);
  2478. player.speak(affectedplayer, "§6Commands", "Du wurdest geheilt.");
  2479. goto("wait");
  2480. @invsee
  2481. if(size != 1) {
  2482. player.speak(player, "§6Commands", "/invsee <player>");
  2483. goto("wait");
  2484. }
  2485. p_name = list.getIndex(args, 0);
  2486. p_uuid = player.getUuid(p_name);
  2487. if(p_uuid == null) {
  2488. player.speak(player, "§6Commands", "§rDieser Spieler war noch nie online");
  2489. goto("wait");
  2490. }
  2491. p = read.player(p_name);
  2492. if(p == null) {
  2493. player.speak(player, "§6Commands", "Dieser Spieler ist nicht online.");
  2494. goto("wait");
  2495. }
  2496. inventar = inv.new("222222222222222222222222222222222222", concat("Inventar von ", p_name));
  2497. map.add(invseeids, player.getId(player), inv.getId(inventar));
  2498. for(slot = 0; slot <= 35; slot++) {
  2499. item = player.getInvSlot(p, slot);
  2500. inv.setItem(inventar, slot, item);
  2501. }
  2502. inv.open(inventar, player);
  2503. goto("wait");
  2504. @boost
  2505. entity.throw(player, 0, 5, 0);
  2506. goto("wait");
  2507. @memory
  2508. player.speak(player, "§6Commands", "RAM-Belegung: ", text.number(usedMemory()), " / ", text.number(math.round(allocatedMemory())), " MB");
  2509. goto("wait");
  2510. @world
  2511. if(size > 0 && size < 4) {
  2512. arg0 = list.getIndex(args, 0);
  2513. if(arg0 == "info") {
  2514. msg(player, "WIP");
  2515. goto("wait");
  2516. } elseif(arg0 == "tp") {
  2517. if(size > 1 || size < 4) {
  2518. if(size >= 2) {
  2519. worldname = list.getIndex(args, 1);
  2520. world = world.get(worldname);
  2521. if(world == null) {
  2522. player.speak(player, "§tWorld", "Diese Welt ist nicht geladen.");
  2523. goto("wait");
  2524. }
  2525. }
  2526. if(size == 3) {
  2527. affectedname = list.getIndex(args, 2);
  2528. affectedplayer = read.player(affectedname);
  2529. if(affectedplayer == null) {
  2530. player.speak(player, "§tWorld", "Dieser Spieler ist nicht online.");
  2531. goto("wait");
  2532. }
  2533. if(player != affectedplayer) {
  2534. player.speak(player, "§tWorld", affectedname, " wurde zum Spawn der Welt ", worldname, " teleportiert");
  2535. }
  2536. }
  2537. worldspawn = world.getSpawn(world);
  2538. setBackPos(affectedplayer);
  2539. checkInvChange(affectedplayer, worldspawn);
  2540. entity.teleport(affectedplayer, worldspawn);
  2541. goto("wait");
  2542. }
  2543. } elseif(arg0 == "listall") {
  2544. if(size == 1) {
  2545. player.speak(player, "§tWorld", "Folgende Welten können geladen werden:");
  2546. path = file.new(".");
  2547. path_list = file.getList(path);
  2548. for(i = 0; i <= list.getSize(path_list) - 1; i++) {
  2549. path_element = list.getIndex(path_list, i);
  2550. if(file.isDirectory(path_element)) {
  2551. try {
  2552. directory_list = file.getList(path_element);
  2553. } catch {
  2554. break;
  2555. }
  2556. for(h = 0; h <= list.getSize(directory_list) - 1; h++) {
  2557. directory_element = list.getIndex(directory_list, h);
  2558. if(file.isFile(directory_element)) {
  2559. if(file.exists(file.new(concat(path_element, "/level.dat")))) {
  2560. msg(player, " - ", file.getName(path_element));
  2561. break;
  2562. }
  2563. }
  2564. }
  2565. }
  2566. }
  2567. msg(player, getSpacer());
  2568. goto("wait");
  2569. }
  2570. } elseif(arg0 == "list") {
  2571. if(size == 1) {
  2572. player.speak(player, "§tWorld", "Folgende Welten sind geladen:");
  2573. worldlist = world.getAll();
  2574. for(i = 0; i <= list.getSize(worldlist) - 1; i++) {
  2575. msg(player, " - ", world.getName(list.getIndex(worldlist, i)));
  2576. }
  2577. msg(player, getSpacer());
  2578. goto("wait");
  2579. }
  2580. } elseif(arg0 == "load") {
  2581. if(size == 2) {
  2582. worldname = list.getIndex(args, 1);
  2583. world = world.get(worldname);
  2584. if(world != null) {
  2585. player.speak(player, "§tWorld", "Diese Welt ist bereits geladen.");
  2586. goto("wait");
  2587. }
  2588. if(!world.load(worldname)) {
  2589. player.speak(player, "§tWorld", "Die Welt ", worldname, " wurde nicht gefunden.");
  2590. goto("wait");
  2591. }
  2592. player.speak(player, "§tWorld", "Die Welt wurde geladen.");
  2593. goto("wait");
  2594. }
  2595. } elseif(arg0 == "unload") {
  2596. if(size == 2) {
  2597. worldname = list.getIndex(args, 1);
  2598. world = world.get(worldname);
  2599. if(world == null) {
  2600. player.speak(player, "§tWorld", "Diese Welt ist nicht geladen.");
  2601. goto("wait");
  2602. }
  2603. if(!world.unload(worldname)) {
  2604. player.speak(player, "§tWorld", "Diese Welt kann nicht entfernt werden.");
  2605. goto("wait");
  2606. }
  2607. player.speak(player, "§tWorld", "Die Welt wurde entfernt.");
  2608. goto("wait");
  2609. }
  2610. } elseif(arg0 == "setspawn") {
  2611. if(size == 1) {
  2612. location = entity.getLocation(player);
  2613. world.setSpawn(location);
  2614. player.speak(player, "§tWorld", "Der Spawn der Welt ", world.getName(loc.getWorld(location)), " wurde neu gesetzt.");
  2615. goto("wait");
  2616. }
  2617. } elseif(arg0 == "diffi") {
  2618. msg(player, "WIP");
  2619. goto("wait");
  2620. }
  2621. }
  2622. player.speak(player, "§tWorld", "/world ...");
  2623. msg(player, "§t - info <world> §rGibt Infos über die Welt");
  2624. msg(player, "§t - tp <world> [player] §rBringt den Spieler in eine andere Welt");
  2625. msg(player, "§t - list §rZeigt alle geladenen Welten");
  2626. msg(player, "§t - listall §rZeigt alle Welten");
  2627. msg(player, "§t - load <world> §rLädt eine Welt");
  2628. msg(player, "§t - unload <world> §rEntfernt die Welt aus dem Speicher");
  2629. msg(player, "§t - setspawn §rSetzt den Welten-Spawn");
  2630. msg(player, "§t - diffi <world> <diffi> §rSetzt die Schwierigkeit");
  2631. goto("wait");
  2632. function checkInvChange(player, location) {
  2633. if(event == "portal") {
  2634. from_world = world.get(from);
  2635. to_world = world.get(to);
  2636. } else {
  2637. from_world = loc.getWorld(entity.getLocation(player));
  2638. to_world = loc.getWorld(location);
  2639. }
  2640. //Wenn ignore aktiviert --> kein Wechsel
  2641. ignore = ggv(player, "invignore");
  2642. if(ignore == null) {
  2643. ignore = false;
  2644. }
  2645. if(!ignore) {
  2646. //Wenn in selber Welt --> kein Wechsel
  2647. if(from_world != to_world) {
  2648. //Wenn beide Welten in derselben Liste sind --> kein Wechsel
  2649. if(!(list.contains($sameinvworlds, world.getName(from_world)) && list.contains($sameinvworlds, world.getName(to_world)))) {
  2650. savePlayerInventory(player, from_world);
  2651. loadPlayerInventory(player, to_world);
  2652. }
  2653. }
  2654. }
  2655. return;
  2656. }
  2657. function savePlayerInventory(player, world) {
  2658. world_name = world.getName(world);
  2659. if(list.contains($sameinvworlds, world_name)) {
  2660. pfad = "scripts/configs/default";
  2661. } else {
  2662. pfad = concat("scripts/configs/", world_name);
  2663. }
  2664. config = config.new(pfad, player.getId(player));
  2665. //Allgemeine Daten
  2666. config.set(config, "health", entity.getHealth(player));
  2667. config.set(config, "hunger", player.getHunger(player));
  2668. config.set(config, "saturation", player.getSaturation(player));
  2669. //Gamemode
  2670. if(player.isCreative(player)) {
  2671. gm = "creative";
  2672. } elseif(player.isSurvival(player)) {
  2673. if(player.isAdventure(player)) {
  2674. gm = "adventure";
  2675. } else {
  2676. gm = "survival";
  2677. }
  2678. } elseif(player.isSpectator(player)) {
  2679. gm = "spectator";
  2680. }
  2681. config.set(config, "gm", gm);
  2682. //Inventare
  2683. for(i = 0; i <= 35; i++) {
  2684. config.set(config, concat("slot-", i), text.item(player.getInvSlot(player, i)));
  2685. }
  2686. for(i = 0; i <= 26; i++) {
  2687. config.set(config, concat("eslot-", i), text.item(player.getEnderSlot(player, i)));
  2688. }
  2689. config.set(config, "head", text.item(entity.getEquip(player, "head")));
  2690. config.set(config, "chest", text.item(entity.getEquip(player, "chest")));
  2691. config.set(config, "legs", text.item(entity.getEquip(player, "legs")));
  2692. config.set(config, "feet", text.item(entity.getEquip(player, "feet")));
  2693. entity.clearEffects(player);
  2694. config.save(config);
  2695. return;
  2696. }
  2697. function loadPlayerInventory(player, world) {
  2698. world_name = world.getName(world);
  2699. if(list.contains($sameinvworlds, world_name)) {
  2700. pfad = "scripts/configs/default";
  2701. } else {
  2702. pfad = concat("scripts/configs/", world_name);
  2703. }
  2704. config = config.new(pfad, player.getId(player));
  2705. if(!config.exists(config)) {
  2706. return;
  2707. }
  2708. config.load(config);
  2709. //Allgemeine Daten
  2710. entity.setHealth(player, config.getDouble(config, "health", 1));
  2711. player.setHunger(player, config.getDouble(config, "hunger", 1));
  2712. player.setSaturation(player, config.getDouble(config, "saturation", 1));
  2713. //Gamemode
  2714. player.setGamemode(player, config.getString(config, "gm", "minecraft:wool"));
  2715. //Inventare
  2716. for(i = 0; i <= 35; i++) {
  2717. player.setInvSlot(player, i, read.item(config.getString(config, concat("slot-", i), "minecraft:wool")));
  2718. }
  2719. for(i = 0; i <= 26; i++) {
  2720. player.setEnderSlot(player, i, read.item(config.getString(config, concat("eslot-", i), "minecraft:wool")));
  2721. }
  2722. entity.setEquip(player, "head", read.item(config.getString(config, "head", "minecraft:wool")));
  2723. entity.setEquip(player, "chest", read.item(config.getString(config, "chest", "minecraft:wool")));
  2724. entity.setEquip(player, "legs", read.item(config.getString(config, "legs", "minecraft:wool")));
  2725. entity.setEquip(player, "feet", read.item(config.getString(config, "feet", "minecraft:wool")));
  2726. return;
  2727. }
  2728. function registerTipp(tipp_key, tipp_value) {
  2729. registerTippStatement = databank.prepare("INSERT INTO tipps (tipp_key, tipp_value) VALUES (?,?)");
  2730. databank.setString(registerTippStatement, 1, tipp_key);
  2731. databank.setString(registerTippStatement, 2, tipp_value);
  2732. databank.workerExecute(registerTippStatement);
  2733. return;
  2734. }
  2735. function getTippValue(tipp_key) {
  2736. tipp_value = null;
  2737. getTippStatement = databank.prepare("SELECT tipp_value FROM tipps WHERE tipp_key = ?;");
  2738. databank.setString(getTippStatement, 1, tipp_key);
  2739. result = databank.execute(getTippStatement);
  2740. while(databank.next(result)) {
  2741. tipp_value = databank.getString(result, 1);
  2742. }
  2743. databank.close(result);
  2744. databank.close(getTippStatement);
  2745. return tipp_value;
  2746. }
  2747. function getWarpsList() {
  2748. warps_list = list.new();
  2749. getWarpsListStatement = databank.prepare("SELECT keyname FROM scriptmaps WHERE map = ?;");
  2750. databank.setString(getWarpsListStatement, 1, "warps");
  2751. result = databank.execute(getWarpsListStatement);
  2752. while(databank.next(result)) {
  2753. list.add(warps_list, databank.getString(result, 1));
  2754. }
  2755. databank.close(result);
  2756. databank.close(getWarpsListStatement);
  2757. return warps_list;
  2758. }