Explorar el Código

refactoring gildenpvp

Marvin Löschenkohl hace 5 años
padre
commit
3c8e2c8736
Se han modificado 14 ficheros con 678 adiciones y 562 borrados
  1. 8 0
      benchmark.txt
  2. 186 178
      gildenpvp/gpvp.txt
  3. 2 47
      startscript.txt
  4. 2 2
      system/chat.txt
  5. 28 3
      system/commands.txt
  6. 36 17
      system/damage.txt
  7. 1 1
      system/explosions.txt
  8. 12 10
      system/skills.txt
  9. 37 0
      system/svars.txt
  10. 9 13
      test.txt
  11. 0 8
      test2.txt
  12. 255 262
      utils/u_gpvp.txt
  13. 88 7
      utils/u_jobs.txt
  14. 14 14
      utils/u_skills.txt

+ 8 - 0
benchmark.txt

@@ -0,0 +1,8 @@
+//clearScriptVars();
+player = read.player("kajetanjohannes");
+time = - time.getNanos();
+
+
+
+time += time.getNanos();
+msg("dev", time / 1000000);

+ 186 - 178
gildenpvp/gpvp.txt

@@ -8,7 +8,7 @@
 
 /* Erklärung für Codeverständnis
 
-gilden
+DB-Table gilden
  - gilden_id	GildenID
  - g_type		Unterscheidung Gruppe/Gilde 0/1
  - gold_delay	Anzahl der Tage, seit eine Gilde im Minus ist
@@ -23,7 +23,7 @@ gilden
  - share_xp		<true/false>; Gruppe/Gilde XP-Teilung an/aus
  - share_gold	<true/false>; Gruppe/Gilde Gold-Teilung an/aus
 
-gildenplayer
+DB-Table gildenplayer
  - player_id	PlayerID
  - gilden_id	GildenID
  - gold_atm		Gold, das der Spieler bei sich trägt
@@ -32,6 +32,11 @@ gildenplayer
  - rang			Rang eines Spielers innerhalb der Gilde/Gruppe
  - nick			Nickname eines Spielers in der Gilde
 
+DB-Table guild_reward (monatsübersicht der täglichen belohnungen aller spieler)
+ - player_id
+ - day
+ - opened		1 = kiste(geöffnet), null = nicht geöffnet oder zukunft
+ 
 gvar	gildencounter			<"SERVER"> <id>; forlaufende ID, Anzahl aller Gilden und Gruppen
 map		adcooldown				<player_id>, <time>; 180 Sekunden Cooldown für "ad"-Weltnachrichten
 map		bindingmenus			<player_id>, <inv>; Enthält die Hotkey-Invs zum Skills casten
@@ -51,7 +56,6 @@ list	stealends				<plot_id>; Liste mit Kampfgrundstücken, zur Beendigung der St
 list	warned					<player_id>; Liste mit allen Spielern auf fremden Grundstücken
 list	scheduledtax			<gilden_id>; Verzögerte Abrechnung der Steuer, weil Gilde im Kampf ist
 list	stealers				<array>; Liste mit Arrays mit Infos aller stehlenden Gilden (Name, Location, Stehl-Status)
-gdmap	dailyrewardplayers		<uuid>, <day>, <1/null>; 1 = kiste(geöffnet), null = zukunft/blackconcrete; monatsübersicht der täglichen belohnungen aller spieler
 */
 
 //Databank-Statements
@@ -78,6 +82,7 @@ event.load("player_move");
 event.load("player_login");
 event.load("player_logout");
 event.load("player_pre_respawn");
+event.load("player_post_respawn");
 event.load("player_pickup");
 event.load("portal");
 event.load("inv_close");
@@ -140,6 +145,9 @@ diamond_type = "minecraft:diamond";
 iron_block_type = "minecraft:iron_block";
 stone_button_type = "minecraft:stone_button";
 scroll_type = "km:scroll";
+minecart_type = "minecraft:minecart";
+chest_minecart_type = "minecraft:chest_minecart";
+black_concrete_type = "minecraft:black_concrete";
 scroll = read.item(scroll_type);
 ender_pearl_type = "minecraft:ender_pearl";
 ender_pearl = read.item(ender_pearl_type);
@@ -633,7 +641,7 @@ if(command == "droptables") {
 		goto("wait");
 	}
 	droptables();
-	speakPrefix(player, commandspräfix, "Table GILDEN und GILDENPLAYER gelöscht");
+	speakPrefix(player, commandspräfix, "Datanbank Tables gelöscht");
 	goto("wait");
 }
 if(command == "arte") {
@@ -679,9 +687,9 @@ if(command == "playerinfo") {
 			goto("wait");
 		}
 	}
-	gilden_id = getGuildId(p_name);
-	player_id = player.getId(player.getUuid(p_name));
-	speakPrefix(player, commandspräfix, concat(p_name, " (ID:", text.number(player_id), ")"));
+	P_id = player.getId(player.getUuid(p_name));
+	gilden_id = guild.getIdFromDatabase(p_id);
+	speakPrefix(player, commandspräfix, concat(p_name, " (ID:", text.number(P_id), ")"));
 	if(isGroup(gilden_id)) {
 		msg(player, "Gruppe: ", text.number(gilden_id));
 	} elseif(isGuild(gilden_id)) {
@@ -773,7 +781,7 @@ if(command == "placearte") {
 		speakPrefix(player, chestpräfix, "Du bist nicht auf deinem Gildengebiet");
 		goto("wait");
 	}
-	gilden_id = getGuildId(player);
+	gilden_id = guild.getId(player);
 	if(!isOnGuildPlot(gilden_id, temploc)) {
 		speakPrefix(player, chestpräfix, "Du bist nicht auf deinem Gildengebiet");
 		goto("wait");
@@ -870,7 +878,7 @@ if(command == "group") {
 		msg(player, "§9 - info §rZeigt Infos über deine Gruppe");
 		msg(player, "§9 - leave §rVerlasst die Gruppe");
 		msg(player, "§9 - accept <Spieler-Name> §rAkzeptiert die Einladung einer Gruppe");
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(isLeader(player_name)) {
 			msg(player, "§9 - invite <Name> §rLädt einen Spieler in die Gruppe ein");
 			msg(player, "§9 - kick <Name> §rKickt einen Spieler aus der Gruppe");
@@ -886,7 +894,7 @@ if(command == "group") {
 			speakPrefix(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gruppe");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		toggleGoldOrXp(gilden_id);
 		goto("wait");
 	}
@@ -894,7 +902,7 @@ if(command == "group") {
 		if(size != 1) {
 			speakPrefix(player, commandspräfix, "/group info");
 		} else {
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(!isPlayerInGroup(player)) {
 				speakPrefix(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
 				goto("wait");
@@ -927,7 +935,7 @@ if(command == "group") {
 				speakPrefix(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
 				goto("wait");
 			}
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(!isLeader(player)) {
 				speakPrefix(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gruppe");
 				goto("wait");
@@ -942,7 +950,7 @@ if(command == "group") {
 				speakPrefix(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
 				goto("wait");
 			}
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(!isLeader(player)) {
 				speakPrefix(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gruppe");
 				goto("wait");
@@ -950,7 +958,7 @@ if(command == "group") {
 			templist = getGuildPlayers(gilden_id);
 			for(i = 0; i < list.getSize(templist); i++) {
 				p_id = list.getIndex(templist, i);
-				setGuildId(p_id, 0);
+				guild.setId(p_id, 0);
 			}
 			deleteGuildFromData(gilden_id);
 			speakPrefix(player, gruppepräfix, "§rDu hast die Gruppe aufgelöst");
@@ -967,7 +975,7 @@ if(command == "group") {
 			}
 			//Beim Einladen muss nicht zwingend eine Gruppe bestehen
 			if(isPlayerInGroup(player)) {
-				gilden_id = getGuildId(player);
+				gilden_id = guild.getId(player);
 				if(!isLeader(player)) {
 					speakPrefix(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gruppe");
 					goto("wait");
@@ -1034,7 +1042,7 @@ if(command == "group") {
 				speakPrefix(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
 				goto("wait");
 			}
-			p_id = player.getUuid(p_name);
+			p_id = player.getId(player.getUuid(p_name));
 			player_id = player.getUuid(player_name);
 			if(!hasGroupInvitationFromThisPlayer(player_id, p_id)) {
 				speakPrefix(player, fehlerpräfix, "§rDu hast keine Einladung dieses Spielers");
@@ -1044,7 +1052,8 @@ if(command == "group") {
 				speakPrefix(player, fehlerpräfix, "§rDieser Spieler ist nicht mehr online");
 				goto("wait");
 			}
-			if(!isPlayerInGroup(p_name)) { //Überprüfung ob Einlader in Gruppe. Wenn Nein: Gruppe erstellen
+			p = read.player(p_name);
+			if(!isPlayerInGroup(p)) { //Überprüfung ob Einlader in Gruppe. Wenn Nein: Gruppe erstellen
 				//Gruppe erstellen
 				gilden_id = getNewGuildId();
 				g_type = 0;
@@ -1062,11 +1071,12 @@ if(command == "group") {
 				addNewGuild(gilden_id, g_type, gold_delay, gold, gilden_name, block_world, block_x, block_y, block_z, safetime, plot_id, share_xp, share_gold, elo);
 				
 				//Einlader zur Gruppe hinzufügen
-				setGuildId(p_id, gilden_id);
+				guild.setId(p_id, gilden_id);
 				setLeader(p_id);
 			} else {
 				//Gruppe existiert
-				gilden_id = getGuildId(p_name);
+				P_id = player.getId(player.getUuid(p_name));
+				gilden_id = guild.getIdFromDatabase(p_id);
 				if(getGuildSize(gilden_id) >= 7) {
 					speakPrefix(player, fehlerpräfix, "§rEine Gruppe ist auf sieben Spieler begrenzt");
 					goto("wait");
@@ -1075,7 +1085,7 @@ if(command == "group") {
 			//Spieler hinzufügen
 			list.add(list, player);
 			setMember(player_id);
-			setGuildId(player, gilden_id);
+			guild.setId(player, gilden_id);
 			speakPrefix(player, gruppepräfix, "§rEinladung angenommen");
 			sendmessage(p_name, gruppepräfix, concat("§7", player_name, " §rhat die Einladung angenommen"), true);
 		}
@@ -1085,12 +1095,12 @@ if(command == "group") {
 		if(size != 1) {
 			speakPrefix(player, commandspräfix, "/group leave");
 		} else {
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(!isPlayerInGroup(player)) {
 				speakPrefix(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
 				goto("wait");
 			}
-			setGuildId(player, 0);
+			guild.setId(player, 0);
 			removeRang(player);
 			speakPrefix(player, gruppepräfix, "§rDu hast die Gruppe verlassen");
 			checkGroupSize(gilden_id);
@@ -1105,7 +1115,7 @@ if(command == "group") {
 				speakPrefix(player, fehlerpräfix, "§rDu befindest dich in keiner Gruppe");
 				goto("wait");
 			}
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(!isLeader(player)) {
 				speakPrefix(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gruppe");
 				goto("wait");
@@ -1116,11 +1126,11 @@ if(command == "group") {
 				goto("wait");
 			}
 			p_id = player.getId(player.getUuid(p_name));
-			if(!checkIfSameGuild(p_name, player_name)) {
+			if(!guild.isSame(p_name, player_name)) {
 				speakPrefix(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gruppe");
 				goto("wait");
 			}
-			setGuildId(p_id, 0);
+			guild.setId(p_id, 0);
 			removeRang(p_id);
 			speakPrefix(player, gruppepräfix, "§rSpieler aus der Gruppe entfernt");
 			sendmessage(p_name, gruppepräfix, concat("§rDu bist aus der Gruppe entfernt worden"), false);
@@ -1263,7 +1273,7 @@ if(command == "gilde") {
 			goto("wait");
 		}
 		if(isPlayerInGuild(player)) {
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			gildenkonto = getGuildGold(gilden_id);
 			if(gildenkonto < 1000) {
 				speakPrefix(player, fehlerpräfix, concat("§rDeine Gilde hat nur ", text.number(gildenkonto), " von 1000 Gold"));
@@ -1310,7 +1320,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDu bist nicht der Leiter der Gilde");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(checkIfGuildInFight(gilden_id)) {
 			speakPrefix(player, fehlerpräfix, "§rDeine Gilde befindet sich im Kampf");
 			cancel = true;
@@ -1412,7 +1422,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "home") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -1478,10 +1488,6 @@ if(command == "gilde") {
 			displayxp(p, level, xp);
 			setManaMax(p, calcManaMax(class, level));
 			displaymana(p);
-			if(isPlayerInGuild(p)) {
-				gilden_id = getGuildId(p);
-				gilden_tag = getGuildTag(gilden_id);
-			}
 			setHeadName(p);
 		}
 		speakPrefix(player, commandspräfix, "§rÄnderungen durchgeführt");
@@ -1512,7 +1518,7 @@ if(command == "gilde") {
 			p = read.player(p_name);
 			p_name = player.getName(p);
 		}
-		setGoldAtm(p_name, gold);
+		setGoldAtm(p, gold);
 		if(p != null) {
 			displaygold(p, gold);
 		}
@@ -1534,14 +1540,14 @@ if(command == "gilde") {
 			goto("wait");
 		}
 		if(size == 3) {
-			player_name = list.getIndex(args, 2);
-			if(!checkIfEverOnline(player_name)) {
+			p_name = list.getIndex(args, 2);
+			if(!checkIfEverOnline(p_name)) {
 				speakPrefix(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
 				goto("wait");
 			}
 		}
-		setGoldBank(player_name, gold);
-		speakPrefix(player, gildepräfix, concat("Gold für ", player_name, " auf ", text.number(gold), " gesetzt"));
+		setGoldBank(p_name, gold);
+		speakPrefix(player, gildepräfix, concat("Gold für ", p_name, " auf ", text.number(gold), " gesetzt"));
 		goto("wait");
 	}
 	if(arg0 == "ad") {
@@ -1574,7 +1580,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "mail") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isLeaderOrOfficer(player)) {
 			speakPrefix(player, fehlerpräfix, "§rNur für Gildenleiter bzw. Offiziere");
 			goto("wait");
@@ -1583,7 +1589,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "msg") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		nachricht = concat("§e", player_name, "§r ", text.concatList(args, " ", 1, size - 1));
 		sendGuildMessage(gilden_id, gildepräfix, nachricht, false);
 		goto("wait");
@@ -1605,7 +1611,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDu befindest dich auf keinem Gildengebiet");
 			goto("wait");
 		}
-		own_gilden_id = getGuildId(player);
+		own_gilden_id = guild.getId(player);
 		if(gilden_id == own_gilden_id) {
 			speakPrefix(player, fehlerpräfix, "§rDu kannst dich nicht selbst angreifen");
 			goto("wait");
@@ -1691,7 +1697,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "steal") {
-		own_gilden_id = getGuildId(player);
+		own_gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -1748,7 +1754,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDu bist kein Leiter oder Offizier deiner Gilde");
 			goto("wait");
 		}
-		own_gilden_id = getGuildId(player);
+		own_gilden_id = guild.getId(player);
 		gildenkonto = getGuildGold(own_gilden_id);
 		if(gildenkonto < 100) {
 			speakPrefix(player, fehlerpräfix, concat("§rDeine Gilde hat nur ", text.number(gildenkonto), " von 100 Gold"));
@@ -1763,7 +1769,7 @@ if(command == "gilde") {
 		counter = 0;
 		for(i = 0; i < list.getSize(world_list); i++) {
 			p = list.getIndex(world_list, i);
-			g_id = getGuildId(p);
+			g_id = guild.getId(p);
 			if(g_id != own_gilden_id) {
 				ploc = entity.getLocation(p);
 				list = plot.get(ploc);
@@ -1788,7 +1794,7 @@ if(command == "gilde") {
 			speakPrefix(player, commandspräfix, "/g nick <player> <nickname>");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		p_name = list.getIndex(args, 1);
 		nickname = text.concatList(args, " ", 2, size - 1);
 		if(!checkIfEverOnline(p_name)) {
@@ -1799,7 +1805,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rNur für Gildenleiter bzw. Offiziere");
 			goto("wait");
 		}
-		if(!checkIfSameGuild(p_name, player_name)) {
+		if(!guild.isSame(p_name, player_name)) {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
 			goto("wait");
 		}
@@ -1817,7 +1823,7 @@ if(command == "gilde") {
 				speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 				goto("wait");
 			}
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			gilden_name = getGuildName(gilden_id);
 		}
 		if(size == 2) {
@@ -2066,7 +2072,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "gold" || arg0 == "xp") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		toggleGoldOrXp(gilden_id);
 		goto("wait");
 	}
@@ -2098,13 +2104,13 @@ if(command == "gilde") {
 		displaymana(player);
 		fillStacksBar(player, class);
 		speakPrefix(player, gildepräfix, concat("Du bist nun ", class));
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		gilden_tag = getGuildTag(gilden_id);
 		setHeadName(player);
 		goto("wait");
 	}
 	if(arg0 == "leave") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -2140,12 +2146,12 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isLeaderOrOfficer(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist kein Leiter oder Offizier deiner Gilde");
 			goto("wait");
 		}
-		if(!checkIfSameGuild(p_name, player_name)) {
+		if(!guild.isSame(p_name, player_name)) {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
 			goto("wait");
 		}
@@ -2172,7 +2178,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "disband") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -2193,7 +2199,7 @@ if(command == "gilde") {
 		goto("wait");
 	}
 	if(arg0 == "disband2") {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -2271,7 +2277,6 @@ if(command == "gilde") {
 		msg("dev", "§7Debug: ", text.number(list_size), " Gilden entfernt");
 		//Datenbank leeren
 		dropTables();
-		gdmap.removeAll("dailyrewardplayers");
 		dgv("SERVER", "gildencounter");
 		dgv("SERVER", "artedaycounter");
 		dgv("SERVER", "arte_yet_loc");
@@ -2360,7 +2365,7 @@ if(command == "gilde") {
 			speakPrefix(player, commandspräfix, "/g invite <name>");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		player_id = player.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
@@ -2446,13 +2451,8 @@ if(command == "gilde") {
 		addPlotPlayer(plot, player_name);
 		
 		//Rang und Gildenid setzen
-		setGuildId(player, gilden_id);
+		guild.setId(player, gilden_id);
 		setMember(player);
-		class = guild.getClass(player);
-		if(class != "none") {
-			level = guild.getLevel(player);
-		}
-		gilden_tag = getGuildTag(gilden_id);
 		setHeadName(player);
 		nachricht = concat("§7", concat(player_name, "§r ist der Gilde beigetreten"));
 		sendGuildMessage(gilden_id, gildepräfix, nachricht, false);
@@ -2468,7 +2468,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		player_loc = entity.getLocation(player);
 		if(!isOnGuildPlot(gilden_id, player_loc)) {
 			speakPrefix(player, fehlerpräfix, "Dafür musst du dich am Gildengebiet befinden");
@@ -2504,7 +2504,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
 		}
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(isMember(player_name)) {
 			speakPrefix(player, fehlerpräfix, "§rNur der Leiter, die Offiziere und der Adel können Gold vom Gildenkonto abheben");
 			goto("wait");
@@ -2547,7 +2547,7 @@ if(command == "gilde") {
 			goto("wait");
 		}
 		p_name = list.getIndex(args, 1);
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -2560,7 +2560,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
 			goto("wait");
 		}
-		if(!checkIfSameGuild(p_name, player_name)) {
+		if(!guild.isSame(p_name, player_name)) {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
 			goto("wait");
 		}
@@ -2586,7 +2586,7 @@ if(command == "gilde") {
 			goto("wait");
 		}
 		p_name = list.getIndex(args, 1);
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(!isPlayerInGuild(player)) {
 			speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 			goto("wait");
@@ -2607,7 +2607,7 @@ if(command == "gilde") {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler war noch nie online");
 			goto("wait");
 		}
-		if(!checkIfSameGuild(p_name, player_name)) {
+		if(!guild.isSame(p_name, player_name)) {
 			speakPrefix(player, fehlerpräfix, "§rDieser Spieler ist nicht in deiner Gilde");
 			goto("wait");
 		}
@@ -2791,18 +2791,16 @@ if(block_type == chest_type) {
 	//Daily Reward
 	if(block_loc == dailyreward_chest_loc) {
 		cancel = true;
-		uuid = player.getUuid(player);
+		list = guild.getRewardList(player);
 		for(i = 0; i < daysofmonth; i++) { //inv befüllen
-			temp = gdmap.get("dailyrewardplayers", uuid, i + 1);
-			if(temp == null) {
-				if(i + 1 < actualday) {
-					inv.setItem(dailyrewardinv, i, read.item("minecraft:black_concrete", 1, concat("§rTag ", text.number(i + 1))));
-				} else {
-					inv.setItem(dailyrewardinv, i, read.item("minecraft:chest_minecart", 1, concat("§rTag ", text.number(i + 1))));
-				}
+			if(list.contains(list, i)) {
+				type = minecart_type;
+			} elseif(i + 1 >= actualday) {
+				type = chest_minecart_type;
 			} else {
-				inv.setItem(dailyrewardinv, i, read.item("minecraft:minecart", 1, concat("§rTag ", text.number(i + 1))));
+				type = black_concrete_type;
 			}
+			inv.setItem(dailyrewardinv, i, read.item(type, 1,  concat("§rTag ", text.number(i + 1))));
 		}
 		inv.open(dailyrewardinv, player, monthname);
 		goto("wait");
@@ -2816,7 +2814,7 @@ if(block_type == chest_type) {
 			speakPrefix(player, chestpräfix, "Du bist nicht auf deinem Gildengebiet");
 			goto("wait");
 		}
-		own_gilden_id = getGuildId(player);
+		own_gilden_id = guild.getId(player);
 		if(!isOnGuildPlot(own_gilden_id, block_loc)) {
 			speakPrefix(player, chestpräfix, "Du bist nicht auf deinem Gildengebiet");
 			goto("wait");
@@ -2849,7 +2847,7 @@ if(block_type == chest_type) {
 	if(item_type == "minecraft:shears") {
 		chestloc2 = block_loc;
 		chestloc1 = block.getSecChest(chestloc2);
-		own_gilden_id = getGuildId(player);
+		own_gilden_id = guild.getId(player);
 		if(map.contains(chest_guild, chestloc2)) {
 			cancel = true;
 			gilden_id = map.get(chest_guild, chestloc2);
@@ -2911,7 +2909,7 @@ if(block_type == chest_type) {
 				goto("wait");
 			}
 			//Ist der Spieler in derselben Gilde?
-			if(checkIfSameGuild(player_name, player.getName(uuid))) {
+			if(guild.isSame(player_name, player.getName(uuid))) {
 				//Ist der Spieler der Gildenleiter?
 				if(isLeader(player)) {
 					if(chestloc1 != null) {
@@ -2928,7 +2926,7 @@ if(block_type == chest_type) {
 		goto("wait");
 	}
 	//Kistensicherungen kontrollieren
-	own_gilden_id = getGuildId(player);
+	own_gilden_id = guild.getId(player);
 	if(map.contains(chest_guild, block_loc)) {
 		gilden_id = map.get(chest_guild, block_loc);
 		if(gilden_id != own_gilden_id) {
@@ -3111,7 +3109,7 @@ if(item.getType(entity.getEquip(player, "hand")) == diamond_pickaxe_type) {
 				}
 			} else {
 				//Wenn Artefakt in einem Gildengebiet ist
-				own_gilden_id = getGuildId(player);
+				own_gilden_id = guild.getId(player);
 				list = plot.get(entity.getLocation(player));
 				if(list.getSize(list) == 0) {
 					msg(player, "Melde an marvinius: Artefakt steht auf keinem Grundstück");
@@ -3222,68 +3220,70 @@ if(set.contains(forbiddenblocks, block_loc)) {
 	goto("wait");
 }
 //Kistensicherungen
-own_gilden_id = getGuildId(player);
-if(map.contains(chest_guild, block_loc)) {
-	cancel = true;
-	gilden_id = map.get(chest_guild, block_loc);
-	if(gilden_id != own_gilden_id) {
-		speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Gildenschloss der Gilde ", getGuildName(gilden_id), " versehen!"));
-		goto("wait");
-	}
-	if(isLeaderOrOfficer(player)) {
-		player.removeItem(player, item);
-		speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
-	}
-	goto("wait");
-}
-if(map.contains(chest_officer, block_loc)) {
-	cancel = true;
-	gilden_id = map.get(chest_officer, block_loc);
-	if(gilden_id != own_gilden_id) {
-		speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Offiziersschloss der Gilde ", getGuildName(gilden_id), " versehen!"));
+if(block_type == chest_type) {
+	own_gilden_id = guild.getId(player);
+	if(map.contains(chest_guild, block_loc)) {
+		cancel = true;
+		gilden_id = map.get(chest_guild, block_loc);
+		if(gilden_id != own_gilden_id) {
+			speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Gildenschloss der Gilde ", getGuildName(gilden_id), " versehen!"));
+			goto("wait");
+		}
+		if(isLeaderOrOfficer(player)) {
+			player.removeItem(player, item);
+			speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
+		}
 		goto("wait");
 	}
-	if(isLeaderOrOfficer(player)) {
-		speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
-	}
-	goto("wait");
-}
-if(map.contains(chest_adel, block_loc)) {
-	cancel = true;
-	gilden_id = map.get(chest_adel, block_loc);
-	if(gilden_id != own_gilden_id) {
-		speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Adelsschloss der Gilde ", getGuildName(gilden_id), " versehen!"));
+	if(map.contains(chest_officer, block_loc)) {
+		cancel = true;
+		gilden_id = map.get(chest_officer, block_loc);
+		if(gilden_id != own_gilden_id) {
+			speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Offiziersschloss der Gilde ", getGuildName(gilden_id), " versehen!"));
+			goto("wait");
+		}
+		if(isLeaderOrOfficer(player)) {
+			speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
+		}
 		goto("wait");
 	}
-	if(isLeaderOrOfficer(player)) {
-		speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
-	}
-	goto("wait");
-}
-if(map.contains(chest_privat, block_loc)) {
-	cancel = true;
-	uuid = map.get(chest_privat, block_loc);
-	//Gehört dem Spieler die Kiste?
-	if(uuid == player.getUuid(player)) {
-		speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
+	if(map.contains(chest_adel, block_loc)) {
+		cancel = true;
+		gilden_id = map.get(chest_adel, block_loc);
+		if(gilden_id != own_gilden_id) {
+			speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Adelsschloss der Gilde ", getGuildName(gilden_id), " versehen!"));
+			goto("wait");
+		}
+		if(isLeaderOrOfficer(player)) {
+			speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
+		}
 		goto("wait");
 	}
-	//Ist der Spieler in derselben Gilde?
-	if(checkIfSameGuild(player_name, player.getName(uuid))) {
-		//Ist der Spieler der Gildenleiter?
-		if(isLeader(player)) {
+	if(map.contains(chest_privat, block_loc)) {
+		cancel = true;
+		uuid = map.get(chest_privat, block_loc);
+		//Gehört dem Spieler die Kiste?
+		if(uuid == player.getUuid(player)) {
 			speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
 			goto("wait");
 		}
+		//Ist der Spieler in derselben Gilde?
+		if(guild.isSame(player_name, player.getName(uuid))) {
+			//Ist der Spieler der Gildenleiter?
+			if(isLeader(player)) {
+				speakPrefix(player, chestpräfix, "Entferne die Sicherung zuerst mit einer Schere");
+				goto("wait");
+			}
+		}
+		speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Privatschloss von ", player.getName(uuid), " versehen!"));
+		goto("wait");
 	}
-	speakPrefix(player, chestpräfix, concat("Die Kiste ist mit einem Privatschloss von ", player.getName(uuid), " versehen!"));
-	goto("wait");
 }
 //Absicherung, damit angreifende Teamler während eines Kampfes auch am fremden GS nichts abbauen können
 if(plot_id != null) {
 	gfights = getScriptVar("gfights");
 	if(list.contains(gfights, plot_id)) {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		if(checkIfAttacker(gilden_id)) {
 			speakPrefix(player, fehlerpräfix, "§rGildenkampf im Gange. Blöcke nicht abbaubar");
 			cancel = true;
@@ -3352,12 +3352,11 @@ if(inv_id == bankinvid) { //Bankmenü
 }
 if(inv_id == dailyrewardinvid) { //Daily Reward
 	if(inv_slot + 1 == actualday) {
-		uuid = player.getUuid(player);
-		if(gdmap.get("dailyrewardplayers", uuid, actualday) == 1) {
+		if(guild.hasRewardOpened(player, actualday)) {
 			speakPrefix(player, "§6Belohnung", "§rTägliche Belohnung bereits abgeholt");
 			goto("wait");
 		}
-		gdmap.add("dailyrewardplayers", uuid, actualday, 1);
+		guild.openedReward(player, actualday);
 		text = map.get(rewardstext, dailyrewardlist);
 		if(text == "Diamanten") {
 			speakPrefix(player, "§6Belohnung", concat("§rDu bekommst ", text.number(item.getAmount(dailyreward)), " ", text));
@@ -3375,6 +3374,7 @@ if(inv_id == dailyrewardinvid) { //Daily Reward
 			speakPrefix(player, "§6Belohnung", concat("§rDu bekommst ", text.number(dailyreward), " ", text));
 		}
 		inv.setItem(inv, inv_slot, read.item("minecraft:minecart", 1, item.getName(item)));
+		inv.update(player);
 	}
 	goto("wait");
 }
@@ -3547,7 +3547,12 @@ if(inv_name == "Slots") {
 goto("wait");
 
 @entity_click
+if(hand == "OFF_HAND") {
+	goto("wait");
+}
 entity_name = entity.getName(entity);
+first_new_line = text.indexOf(entity_name, "\n", 0);
+entity_name = removeFormat(text.subString(entity_name, first_new_line + 1, text.length(entity_name)));
 if(entity_name == "Tutorial") {
 	msg(player, "§rHallo, ich werde vllt ein Tutorial sein");
 	goto("wait");
@@ -3556,7 +3561,7 @@ if(entity_name == "PvE") {
 	inv.open(pvequests, player, "§rPvE Quests");
 	goto("wait");
 }
-class = removeFormat(entity_name);
+class = entity_name;
 classes = getScriptVar("gpvp_classes");
 if(list.contains(classes, class)) {
 	msg(player, concat("§rKlasse ", entity_name, " §rwählen? "), text.click("§r[§aJa§r]", concat("/gilde class ", class)));
@@ -3606,13 +3611,12 @@ if(arte_loc_type == "player") {
 }
 goto("wait");
 
-@player_pre_respawn
-player.setSpawn(player, gildenspawnloc);
+@player_post_respawn
 class = guild.getClass(player);
 if(class != "none") {
 	level = guild.getLevel(player);
 	mana = 0;
-	gilden_id = getGuildId(player);
+	gilden_id = guild.getId(player);
 	if(isGuild(gilden_id)) {
 		elo = getGuildElo(gilden_id);
 		gold = getGuildGold(gilden_id);
@@ -3624,10 +3628,14 @@ if(class != "none") {
 	setManaAtm(player, mana);
 	displaymana(player);
 }
-displayHealth(player, 20, getMaxHealth(class, level));
 gold = getGoldAtm(player);
 setGoldAtm(player, 0);
 displaygold(player, 0);
+displayHealth(player);
+goto("wait");
+
+@player_pre_respawn
+player.setSpawn(player, gildenspawnloc);
 goto("wait");
 
 @entity_join
@@ -3676,7 +3684,7 @@ if(item.getType(item) == scroll_type) {
 		speakPrefix(player, fehlerpräfix, "§rDu bist in keiner Gilde");
 		goto("wait");
 	}
-	gilden_id = getGuildId(player);
+	gilden_id = guild.getId(player);
 	addGuildElo(gilden_id, 100);
 	player.removeItem(player, scroll);
 	speakPrefix(player, gildepräfix, "+100 Gildeneinfluss");
@@ -3715,7 +3723,7 @@ if(removeFormat(item.getName(item)) == "Golddrop") {
 		lore_list = item.getLore(item);
 		if(list.getSize(lore_list) != 0) {
 			gold = read.number(list.getIndex(lore_list, 0));
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(getGuildType(gilden_id) != null) {
 				if(getShareGold(gilden_id) == 1) {
 					addSharedGold(gilden_id, gold);
@@ -3746,7 +3754,7 @@ if(isPlayer(killer)) {
 		xp = math.round(xp / 10);
 		gold = math.random(1, 14);
 		gold /= 10;
-		gilden_id = getGuildId(killer);
+		gilden_id = guild.getId(killer);
 		if(getGuildType(gilden_id) != null) {
 			if(getShareXp(gilden_id) == 1) {
 				addSharedXp(gilden_id, xp);
@@ -3951,7 +3959,7 @@ if(block_type == guild_block_type) {
 	
 	//Leiter festlegen
 	setLeader(player);
-	setGuildId(player, gilden_id);
+	guild.setId(player, gilden_id);
 	class = guild.getClass(player);
 	if(class != "none") {
 		level = guild.getLevel(player);
@@ -3998,7 +4006,7 @@ if(block_type == chest_type) {
 	chestloc2 = block_loc;
 	chestloc1 = block.getSecChest(chestloc2);
 	if(chestloc1 != null) {
-		own_gilden_id = getGuildId(player);
+		own_gilden_id = guild.getId(player);
 		if(map.contains(chest_guild, chestloc1)) {
 			gilden_id = map.get(chest_guild, chestloc1);
 			if(gilden_id != own_gilden_id) {
@@ -4048,7 +4056,7 @@ if(block_type == chest_type) {
 				goto("wait");
 			}
 			//Ist der Spieler in derselben Gilde?
-			if(checkIfSameGuild(player_name, player.getName(uuid))) {
+			if(guild.isSame(player_name, player.getName(uuid))) {
 				//Ist der Spieler der Gildenleiter?
 				if(isLeader(player)) {
 					lockPrivatChest(chestloc2, player.getUuid(player));
@@ -4096,7 +4104,7 @@ for(i = 0; i < list.getSize(world_list); i++) {
 	p = list.getIndex(world_list, i);
 	p_id = player.getId(p);
 	p_name = player.getName(p);
-	gilden_id = getGuildId(p);
+	gilden_id = guild.getId(p);
 	list = plot.get(entity.getLocation(p));
 	if(list.getSize(list) > 0) { //Wenn der Spieler auf einem Grundstück ist...
 		plot = list.getIndex(list, 0);
@@ -4145,7 +4153,7 @@ if(list.getSize(list) > 0) { //Wenn der Spieler auf einem Grundstück ist...
 				goto("wait");
 			}
 		} else {
-			own_gilden_id = getGuildId(p);
+			own_gilden_id = guild.getId(p);
 			own_plot_id = getGuildPlotId(own_gilden_id);
 			if(plot_id != own_plot_id) { //Wenn das GS nicht das eigene ist, bekommt man den Withereffekt.
 				entity.addEffect(p, "wither", 200, 5);
@@ -4271,7 +4279,7 @@ if(now_day != actualday) {
 	if(actualday == 1) {
 		//nächster Monat
 		gosub("init_daily_reward");
-		gdmap.removeAll("dailyrewardplayers");
+		guild.clearRewards();
 	}
 	gosub("setreward");
 }
@@ -4412,25 +4420,25 @@ function unlockPrivatChest(location) {
 }
 
 function lockChestDB_1(gilden_id, type, location) {
-	lockChestDB_1Statement = databank.prepare("INSERT INTO gilden_chests_1 (gilden_id, block_world, block_x, block_y, block_z, type) VALUES (?, ?, ?, ?, ?, ?);");
-	databank.setInt(lockChestDB_1Statement, 1, gilden_id);
-	databank.setString(lockChestDB_1Statement, 2, world.getName(loc.getWorld(location)));
-	databank.setInt(lockChestDB_1Statement, 3, loc.getX(location));
-	databank.setInt(lockChestDB_1Statement, 4, loc.getY(location));
-	databank.setInt(lockChestDB_1Statement, 5, loc.getZ(location));
-	databank.setString(lockChestDB_1Statement, 6, type);
-	databank.workerExecute(lockChestDB_1Statement);
+	stmt = databank.prepare("INSERT INTO gilden_chests_1 (gilden_id, block_world, block_x, block_y, block_z, type) VALUES (?, ?, ?, ?, ?, ?);");
+	databank.setInt(stmt, 1, gilden_id);
+	databank.setString(stmt, 2, world.getName(loc.getWorld(location)));
+	databank.setInt(stmt, 3, loc.getX(location));
+	databank.setInt(stmt, 4, loc.getY(location));
+	databank.setInt(stmt, 5, loc.getZ(location));
+	databank.setString(stmt, 6, type);
+	databank.workerExecute(stmt);
 	return;
 }
 
 function lockChestDB_2(uuid, location) {
-	lockChestDB_2Statement = databank.prepare("INSERT INTO gilden_chests_2 (player_id, block_world, block_x, block_y, block_z) VALUES (?, ?, ?, ?, ?);");
-	databank.setInt(lockChestDB_2Statement, 1, player.getId(uuid));
-	databank.setString(lockChestDB_2Statement, 2, world.getName(loc.getWorld(location)));
-	databank.setInt(lockChestDB_2Statement, 3, loc.getX(location));
-	databank.setInt(lockChestDB_2Statement, 4, loc.getY(location));
-	databank.setInt(lockChestDB_2Statement, 5, loc.getZ(location));
-	databank.workerExecute(lockChestDB_2Statement);
+	stmt = databank.prepare("INSERT INTO gilden_chests_2 (player_id, block_world, block_x, block_y, block_z) VALUES (?, ?, ?, ?, ?);");
+	databank.setInt(stmt, 1, player.getId(uuid));
+	databank.setString(stmt, 2, world.getName(loc.getWorld(location)));
+	databank.setInt(stmt, 3, loc.getX(location));
+	databank.setInt(stmt, 4, loc.getY(location));
+	databank.setInt(stmt, 5, loc.getZ(location));
+	databank.workerExecute(stmt);
 	return;
 }
 
@@ -4439,12 +4447,12 @@ function unlockChestDB_1(location) {
 	x = loc.getX(location);
 	y = loc.getY(location);
 	z = loc.getZ(location);
-	unlockChestDB_1Statement = databank.prepare("DELETE FROM gilden_chests_1 WHERE block_world = ? AND block_x = ? AND block_y = ? AND block_z = ?;");
-	databank.setString(unlockChestDB_1Statement, 1, world_name);
-	databank.setInt(unlockChestDB_1Statement, 2, x);
-	databank.setInt(unlockChestDB_1Statement, 3, y);
-	databank.setInt(unlockChestDB_1Statement, 4, z);
-	databank.workerExecute(unlockChestDB_1Statement);
+	stmt = databank.prepare("DELETE FROM gilden_chests_1 WHERE block_world = ? AND block_x = ? AND block_y = ? AND block_z = ?;");
+	databank.setString(stmt, 1, world_name);
+	databank.setInt(stmt, 2, x);
+	databank.setInt(stmt, 3, y);
+	databank.setInt(stmt, 4, z);
+	databank.workerExecute(stmt);
 	return;
 }
 
@@ -4453,18 +4461,18 @@ function unlockChestDB_2(location) {
 	x = loc.getX(location);
 	y = loc.getY(location);
 	z = loc.getZ(location);
-	unlockChestDB_2Statement = databank.prepare("DELETE FROM gilden_chests_2 WHERE block_world = ? AND block_x = ? AND block_y = ? AND block_z = ?;");
-	databank.setString(unlockChestDB_2Statement, 1, world_name);
-	databank.setInt(unlockChestDB_2Statement, 2, x);
-	databank.setInt(unlockChestDB_2Statement, 3, y);
-	databank.setInt(unlockChestDB_2Statement, 4, z);
-	databank.workerExecute(unlockChestDB_2Statement);
+	stmt = databank.prepare("DELETE FROM gilden_chests_2 WHERE block_world = ? AND block_x = ? AND block_y = ? AND block_z = ?;");
+	databank.setString(stmt, 1, world_name);
+	databank.setInt(stmt, 2, x);
+	databank.setInt(stmt, 3, y);
+	databank.setInt(stmt, 4, z);
+	databank.workerExecute(stmt);
 	return;
 }
 
 function loadChestDB1() {
-	loadChestDB1Statement = databank.prepare("SELECT gilden_id, block_world, block_x, block_y, block_z, type FROM gilden_chests_1;");
-	result = databank.execute(loadChestDB1Statement);
+	stmt = databank.prepare("SELECT gilden_id, block_world, block_x, block_y, block_z, type FROM gilden_chests_1;");
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		gilden_id = databank.getInt(result, 1);
 		world_name = databank.getString(result, 2);
@@ -4483,13 +4491,13 @@ function loadChestDB1() {
 		}
 	}
 	databank.close(result);
-	databank.close(loadChestDB1Statement);
+	databank.close(stmt);
 	return;
 }
 
 function loadChestDB2() {
-	loadChestDB2Statement = databank.prepare("SELECT player_id, block_world, block_x, block_y, block_z FROM gilden_chests_2;");
-	result = databank.execute(loadChestDB2Statement);
+	stmt = databank.prepare("SELECT player_id, block_world, block_x, block_y, block_z FROM gilden_chests_2;");
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		player_id = databank.getInt(result, 1);
 		world_name = databank.getString(result, 2);
@@ -4502,6 +4510,6 @@ function loadChestDB2() {
 		map.add($chest_privat, location, uuid);
 	}
 	databank.close(result);
-	databank.close(loadChestDB2Statement);
+	databank.close(stmt);
 	return;
 }

+ 2 - 47
startscript.txt

@@ -1,51 +1,6 @@
-//~~~~~~~ Script-Vars ~~~~~~~
-clearscriptvars();
-
-set.new(sameinvworlds);
-set.add(sameinvworlds, "overworld");
-set.add(sameinvworlds, "the_nether");
-set.add(sameinvworlds, "the_end");
-setScriptVar("sameinvworlds", sameinvworlds);
-
-nicknames = map.new();
-setScriptVar("nicknames", nicknames);
-setScriptVar("rmInventories", map.new());
-setScriptVar("air_item_type", "minecraft:air");
-
-last_exe_times = map.new();
-setScriptVar("last_exe_times", last_exe_times);
-
-belagerungsskills_set = set.new();
-set.add(belagerungsskills_set, "Dietrich");
-set.add(belagerungsskills_set, "Explosiver Pfeil");
-set.add(belagerungsskills_set, "Belagerungsleiter");
-set.add(belagerungsskills_set, "Rammbock");
-set.add(belagerungsskills_set, "Obsidianbrecher");
-set.add(belagerungsskills_set, "Phosphorbombe");
-setScriptVar("belagerungsskills_set", belagerungsskills_set);
-
-list.new(gpvp_classes);
-list.add(gpvp_classes, "Jäger");
-list.add(gpvp_classes, "Schurke");
-list.add(gpvp_classes, "Krieger");
-//list.add(gpvp_classes, "Barbar");
-//list.add(gpvp_classes, "Magier");
-//list.add(gpvp_classes, "Mönch");
-setScriptVar("gpvp_classes", gpvp_classes);
-
-map.new(moneynames);
-map.add(moneynames, overworld, "survmoney");
-map.add(moneynames, skyblockworld, "skycoins");
-map.add(moneynames, gpvpworld, "gpvp_gold_bank");
-setScriptVar("moneynames", moneynames);
-
-showcoords_list = list.new();
-setScriptVar("showcoords_list", showcoords_list);
-
-//~~~~~~~ Script-Management ~~~~~~~
-
+script.start("system/svars");
 script.start("system/perms", "utils/u_general");
-script.start("system/chat", "utils/u_gpvp", "utils/u_general");
+script.start("system/chat", "utils/u_gpvp", "utils/u_general", "utils/u_jobs");
 script.start("system/commands", "utils/u_general", "utils/u_plots", "utils/u_gpvp", "utils/u_jobs", "utils/u_survival");
 // system/commands utils/u_general utils/u_plots utils/u_gpvp utils/u_jobs utils/u_survival
 script.start("global/chatbuffer");

+ 2 - 2
system/chat.txt

@@ -37,7 +37,7 @@ map.add(personaljoinmessage, 35, concat(" kämpft jetzt gegen Sudokus")); //SirT
 
 map.new(personalleavemessage);
 map.add(personalleavemessage, 29, concat(" rollt seine Pläne zusammen")); //eropster
-map.add(personalleavemessage, 2, concat(" klopft an den Himmel und horcht auf den Klang")); //marvinius
+map.add(personalleavemessage, 2, concat(" ging wegen zu vielen Bugs")); //marvinius
 map.add(personalleavemessage, 30, concat(" war das Nörgeln zu anstrengend")); //FinbarTheViking
 map.add(personalleavemessage, 1, concat(" kehrt ins Reich der Götter zurück")); //kajetan
 map.add(personalleavemessage, 35, concat(" zieht sich zum Denken zurück")); //SirTerence7
@@ -101,7 +101,7 @@ if(send_personally_messages) {
 	fullname = concat("[§bUser§r] ", removeFormat(nickname));
 }
 if(loc.getWorld(entity.getLocation(player)) == gpvpworld) {
-	gilden_id = getGuildId(player);
+	gilden_id = guild.getId(player);
 	if(isGuild(gilden_id)) {
 		gilden_tag = getGuildTag(gilden_id);
 		fullname = concat("[§6", gilden_tag, "§r] ", fullname);

+ 28 - 3
system/commands.txt

@@ -964,7 +964,7 @@ if(affectedplayer != player) {
 } else {
 	player.speak(affectedplayer, "§6Commands", "Du hast dich getötet.");
 }
-entity.damage(affectedplayer, 100);
+entity.damage(affectedplayer, 1000);
 goto("wait");
 
 @nickname
@@ -1623,7 +1623,7 @@ elseif(arg0 == "chat") {
 	} catch {
 		nothing();
 	}
-	script.start("system/chat", "utils/u_gpvp", "utils/u_general");
+	script.start("system/chat", "utils/u_gpvp", "utils/u_general", "utils/u_jobs");
 }
 elseif(arg0 == "perms") {
 	script.start("system/perms", "utils/u_general");
@@ -2071,6 +2071,30 @@ if(arg0 == "lore-item") {
 	player.speak(player, "§vDataTools", "Die neue Lore wurde hinzugefügt.");
 	goto("wait");
 }
+if(arg0 == "maxhealth") {
+	if(size < 2) {
+		player.speak(player, "§vDataTools", "§r/datatools maxhealth <value>");
+		goto("wait");
+	}
+	value = list.getIndex(args, 1);
+	if(!isDouble(value)) {
+		player.speak(player, "§vDataTools", "Zahl erwartet.");
+		goto("wait");
+	}
+	templist = entity.near(player, 3);
+	if(list.getSize(templist) == 0) {
+		player.speak(player, "§vDataTools", "Zu weit weg vom Entity.");
+		goto("wait");
+	}
+	entity = list.getIndex(templist, 0);
+	if(isPlayer(entity)) {
+		player.speak(player, "§vDataTools", "Auf Spieler nicht anwendbar.");
+		goto("wait");
+	}
+	living.setMaxHealth(entity, value);
+	player.speak(player, "§vDataTools", "Das Entity ", entity.getType(entity), " hat nun Maxhealth: ", entity.getMaxHealth(entity), "§r.");
+	goto("wait");
+}
 if(arg0 == "name-entity") {
 	if(size < 2) {
 		player.speak(player, "§vDataTools", "§r/datatools name-entity <name>");
@@ -2085,7 +2109,7 @@ if(arg0 == "name-entity") {
 	name = text.concatList(args, " ", 1, size - 1);
 	name = text.replace(name, "&", "§");
 	name = text.replace(name, "\\n", "\n");
-	entity.setName(entity, name);
+	entity.setName(entity, name, true);
 	player.speak(player, "§vDataTools", "Das Entity trägt nun den Namen ", name, "§r.");
 	goto("wait");
 }
@@ -4816,6 +4840,7 @@ function setCommandHelps() {
 	addCommandHelpChildLiteral("start", "friends");
 	addCommandHelpChildLiteral("start", "games");
 	addCommandHelpChildLiteral("start", "gilden");
+	addCommandHelpChildLiteral("start", "damage");
 	addCommandHelpChildLiteral("start", "mails");
 	addCommandHelpChildLiteral("start", "money");
 	addCommandHelpChildLiteral("start", "party");

+ 36 - 17
system/damage.txt

@@ -22,7 +22,7 @@ goto("wait");
 
 @entity_join
 if(isLiving(entity) && !isPlayer(entity)) {
-	updateEntityHealth(entity);
+	updateEntityName(entity);
 }
 goto("wait");
 
@@ -38,14 +38,9 @@ if(health <= 0) {
 new_health = health + heal_amount;
 entity.setHealth(living_entity, new_health);
 if(isPlayer(living_entity)) {
-	player = living_entity;
-	class = guild.getClass(player);
-	if(class != "") {
-		level = guild.getLevel(player);
-	}
-	displayHealth(player, entity.getHealth(player), getMaxHealth(class, level));
+	displayHealth(living_entity);
 } else {
-	updateEntityHealth(living_entity);
+	updateEntityName(living_entity);
 }
 goto("wait");
 
@@ -60,24 +55,48 @@ if(isPlayer(living_entity)) {
 	}
 	max_health = getMaxHealth(class, level);
 } else {
-	entity_type = entity.getType(living_entity);
-	max_health = map.getOrDefault(max_health_entities, entity_type, 200);
+	max_health = getGuildMaxHealth(living_entity);
 }
 van_max_health = entity.getMaxHealth(living_entity);
 damage_amount = damage_amount * van_max_health * 10 / max_health;
 
 entity.damageDirect(living_entity, damage_amount, damage_source);
 if(isPlayer(living_entity)) {
-	player = living_entity;
-	displayHealth(player, entity.getHealth(player), max_health);
+	displayHealth(living_entity);
 } else {
-	updateEntityHealth(living_entity);
+	updateEntityName(living_entity);
 }
 goto("wait");
 
-function updateEntityHealth(living_entity) {
+function getGuildMaxHealth(living_entity) {
+	max_health = map.getOrDefault($max_health_entities, entity.getType(living_entity), 200) * living.getMaxHealth(living_entity) / living.getBaseMaxHealth(living_entity);
+	return max_health;
+}
+
+function updateEntityName(living_entity) {
 	entity_type = entity.getType(living_entity);
-	max_health = map.getOrDefault($max_health_entities, entity_type, 200);
-	health = math.round(max_health * (entity.getHealth(living_entity) / entity.getMaxHealth(living_entity)));
-	entity.setName(living_entity, concat(text.number(health), "/", text.number(max_health), " §c❤"), true);
+	if(entity_type == "nobody") {
+		return;
+	}
+
+	entity_name = entity.getName(living_entity);
+	max_health = getGuildMaxHealth(living_entity);
+	health = text.number(math.round(max_health * (entity.getHealth(living_entity) / living.getMaxHealth(living_entity))));
+	max_health = text.number(max_health);
+	
+	heart_index = text.indexOf(entity_name, "❤", 0);
+	if(heart_index == -1) {
+		//Kein Herz gefunden
+		entity.setName(living_entity, concat(health, "/", max_health, " §c❤\n", entity_name), true);
+		return;
+	}
+		
+	next_new_line = text.indexOf(entity_name, "\n", heart_index);
+	if(next_new_line == -1) {
+		//Rechts vom Herz keine New-Line gefunden
+		entity.setName(living_entity, concat(health, "/", max_health, " §c❤"), true);
+		return;
+	}
+	entity_name = text.subString(entity_name, next_new_line + 1, text.length(entity_name));
+	entity.setName(living_entity, concat(health, "/", max_health, " §c❤\n", entity_name), true);
 }

+ 1 - 1
system/explosions.txt

@@ -1,4 +1,4 @@
-event.load("explosion");
+event.load("pre_explosion");
 
 msg("dev", "§bExplosions §rwurde geladen");
 @wait

+ 12 - 10
system/skills.txt

@@ -68,8 +68,9 @@ player_id = player.getId(player);
 //Trittnägel Pre wurde ausgelöst
 if(map.contains(pre_nail_traps, id)) {
 	trap_player_name = map.get(pre_nail_traps, id);
-	trap_gilden_id = getGuildId(trap_player_name);
-	own_gilden_id = getGuildId(player);
+	trap_player_id = player.getId(player.getUuid(trap_player_name));
+	trap_gilden_id = guild.getIdFromDatabase(trap_player_id);
+	own_gilden_id = guild.getId(player);
 	if(trap_gilden_id == own_gilden_id) {
 		cancel = true;
 		goto("wait");
@@ -86,8 +87,9 @@ if(map.contains(pre_nail_traps, id)) {
 //Trittnägel
 if(map.contains(nail_traps, id)) {
 	trap_player_name = map.get(nail_traps, id);
-	trap_gilden_id = getGuildId(trap_player_name);
-	own_gilden_id = getGuildId(player);
+	trap_player_id = player.getId(player.getUuid(trap_player_name));
+	trap_gilden_id = guild.getIdFromDatabase(trap_player_id);
+	own_gilden_id = guild.getId(player);
 	if(trap_gilden_id == own_gilden_id) {
 		cancel = true;
 		goto("wait");
@@ -104,7 +106,7 @@ if(map.contains(nail_traps, id)) {
 //Netzfalle
 if(map.contains(net_traps, id)) {
 	trap_gilden_id = map.get(net_traps, id);
-	own_gilden_id = getGuildId(player);
+	own_gilden_id = guild.getId(player);
 	if(trap_gilden_id == own_gilden_id) {
 		cancel = true;
 		goto("wait");
@@ -131,7 +133,7 @@ if(map.contains(net_traps, id)) {
 //Dornenranken
 if(map.contains(vine_traps, id)) {
 	trap_gilden_id = map.get(vine_traps, id);
-	own_gilden_id = getGuildId(player);
+	own_gilden_id = guild.getId(player);
 	if(trap_gilden_id == own_gilden_id) {
 		cancel = true;
 		goto("wait");
@@ -159,7 +161,7 @@ skill_name = map.get(arrow_to_skill, projectile);
 map.remove(arrow_to_skill, projectile);
 if(entity_hit != null) {
 	if(isPlayer(entity_hit)) {
-		if(checkIfSameGuild(entity_hit, player)) {
+		if(guild.isSame(entity_hit, player)) {
 			goto("wait");
 		}
 		if(data.getTimer(entity_hit, "Blätterkokon") > 0) {
@@ -278,7 +280,7 @@ if(entity.getType(projectile) == "FireballEntity") {
 	list = players.near(loc, 3);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(!checkIfSameGuild(player, p)) {
+		if(!guild.isSame(player, p)) {
 			entityDamage(p, player, 2, true);
 			entity.addEffect(p, "blindness", 80, 1);
 		}
@@ -412,7 +414,7 @@ goto("wait");
 
 @player_is_attacked
 if(player_involved) {
-	if(checkIfSameGuild(player, sec_player)) {
+	if(guild.isSame(player, sec_player)) {
 		cancel = true;
 		goto("wait");
 	}
@@ -472,7 +474,7 @@ if(!damage.isMagic(player_damage_cause)) {
 	}
 }
 if(player_involved) {
-	if(checkIfSameGuild(player, sec_player)) {
+	if(guild.isSame(player, sec_player)) {
 		$cancel = true;
 		return;
 	}

+ 37 - 0
system/svars.txt

@@ -0,0 +1,37 @@
+clearscriptvars();
+
+setScriptVar("nicknames", map.new());
+setScriptVar("rmInventories", map.new());
+setScriptVar("air_item_type", "minecraft:air");
+setScriptVar("last_exe_times", map.new());
+setScriptVar("showcoords_list", list.new());
+
+sameinvworlds = set.new();
+set.add(sameinvworlds, "overworld");
+set.add(sameinvworlds, "the_nether");
+set.add(sameinvworlds, "the_end");
+setScriptVar("sameinvworlds", sameinvworlds);
+
+belagerungsskills_set = set.new();
+set.add(belagerungsskills_set, "Dietrich");
+set.add(belagerungsskills_set, "Explosiver Pfeil");
+set.add(belagerungsskills_set, "Belagerungsleiter");
+set.add(belagerungsskills_set, "Rammbock");
+set.add(belagerungsskills_set, "Obsidianbrecher");
+set.add(belagerungsskills_set, "Phosphorbombe");
+setScriptVar("belagerungsskills_set", belagerungsskills_set);
+
+list.new(gpvp_classes);
+list.add(gpvp_classes, "Jäger");
+list.add(gpvp_classes, "Schurke");
+list.add(gpvp_classes, "Krieger");
+//list.add(gpvp_classes, "Barbar");
+//list.add(gpvp_classes, "Magier");
+//list.add(gpvp_classes, "Mönch");
+setScriptVar("gpvp_classes", gpvp_classes);
+
+moneynames = map.new();
+map.add(moneynames, overworld, "survmoney");
+map.add(moneynames, skyblockworld, "skycoins");
+map.add(moneynames, gpvpworld, "gpvp_gold_bank");
+setScriptVar("moneynames", moneynames);

+ 9 - 13
test.txt

@@ -1,13 +1,9 @@
-error(true);
-event.load("living_hurt");
-
-@loop
-wait();
-
-//armor = entity.getArmor(living_entity);
-//enchant = entity.getEnchantmentModifier(living_entity, damage_source);
-//msg("dev", event, " ", isPlayer(living_entity), " ", armor, " ", enchant);
-//cancel = true;
-//entity.damageDirect(living_entity, damage_amount, damage_source);
-msg("dev", damage_amount);
-goto("loop");
+player_name = "marvinius";
+player = read.player(player_name);
+msg(player_name, "Vorher: ", guild.getId(player));
+guild.setId(player, 1);
+msg(player_name, "Nachher: ", guild.getId(player));
+
+@wait
+wait();
+goto("wait");

+ 0 - 8
test2.txt

@@ -1,8 +0,0 @@
-//clearScriptVars();
-player = read.player("kajetanjohannes");
-time = - time.getNanos();
-class = guild.getClass(player);
-level = guild.getLevel(player);
-getMaxHealth(class, level);
-time += time.getNanos();
-msg("dev", time / 1000000);

+ 255 - 262
utils/u_gpvp.txt

@@ -1,27 +1,35 @@
-function checkIfSameGuild(spieler1, spieler2) {
-	return getGuildId(spieler1) == getGuildId(spieler2);
-}
-
-function getGuildId(spieler) {
-	gilden_id = null;
-	player_id = getPlayerId(spieler);
-	getGuildIdStatement = databank.prepare("SELECT gilden_id FROM gildenplayer WHERE player_id = ?;");
-	databank.setInt(getGuildIdStatement, 1, player_id);
-	result = databank.execute(getGuildIdStatement);
-	while(databank.next(result)) {
-		gilden_id = databank.getInt(result, 1);
+function guild.isSame(spieler1, spieler2) {
+	if(isPlayer(spieler1)) { //player
+		id1 = guild.getId(spieler1);
+	} else { //player_name
+		p = read.player(spieler1);
+		if(p != null) {
+			id1 = guild.getId(p);
+		} else {
+			id1 = guild.getIdFromDatabase(player.getId(player.getUuid(spieler1)));
+		}
 	}
-	databank.close(result);
-	databank.close(getGuildIdStatement);
-	return gilden_id;
+	if(isPlayer(spieler2)) { //player
+		id2 = guild.getId(spieler2);
+	} else { //player_name
+		p = read.player(spieler2);
+		if(p != null) {
+			id2 = guild.getId(p);
+		} else {
+			id2 = guild.getIdFromDatabase(player.getId(player.getUuid(spieler2)));
+		}
+	}
+	return id1 == id2;
 }
 
 function getPlayerId(unknown) { //Wenn die Eingabe ungewiss ist, und man fix eine Player_Id haben möchte
-	if(isDouble(unknown)) { //player_id
+	if(isPlayer(unknown)) { //player
+		player_id = player.getId(unknown);
+	} elseif(isDouble(unknown)) { //player_id
 		player_id = unknown;
 	} elseif(text.class(unknown) == "String") { //player_name
 		player_id = player.getId(player.getUuid(unknown));
-	} else { //player
+	} else { //uuid
 		player_id = player.getId(unknown);
 	}
 	return player_id;
@@ -56,20 +64,13 @@ function getGildenHealth(health, max_health) {
 	return health * max_health / 20;
 }
 
-function displayHealth(player, health, max_health) {
-	if(health > 20) {
-		health = 20;
-	}
+function displayHealth(player) {
+	health = entity.getHealth(player);
 	class = guild.getClass(player);
-	if(class != "none") {
-		level = guild.getLevel(player);
-	}
-	if(isPlayerInGuild(player)) {
-		gilden_id = getGuildId(player);
-		gilden_tag = getGuildTag(gilden_id);
-	}
-	setHeadName(player);
+	level = guild.getLevel(player);
+	max_health = getMaxHealth(class, level);
 	gilden_health = getGildenHealth(health, max_health);
+	setHeadName(player);
 	display.add(player, 43, "#28-1- ", text.number(math.round(gilden_health)), "/", text.number(math.round(max_health)));
 }
 
@@ -86,29 +87,29 @@ function displayxp(player, level, xp) {
 }
 
 function addNewGuild(gilden_id, g_type, gold_delay, gold, name, block_world, block_x, block_y, block_z, safetime, plot_id, share_xp, share_gold, elo, tag) {
-	addGildeStatement = databank.prepare("INSERT INTO gilden (gilden_id, g_type, gold_delay, gold, name, block_world, block_x, block_y, block_z, safetime, plot_id, share_xp, share_gold, elo, tag) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
-	databank.setInt(addGildeStatement, 1, gilden_id);
-	databank.setInt(addGildeStatement, 2, g_type);
-	databank.setInt(addGildeStatement, 3, gold_delay);
-	databank.setInt(addGildeStatement, 4, gold);
-	databank.setString(addGildeStatement, 5, name);
-	databank.setString(addGildeStatement, 6, block_world);
-	databank.setInt(addGildeStatement, 7, block_x);
-	databank.setInt(addGildeStatement, 8, block_y);
-	databank.setInt(addGildeStatement, 9, block_z);
-	databank.setLong(addGildeStatement, 10, safetime);
-	databank.setInt(addGildeStatement, 11, plot_id);
-	databank.setInt(addGildeStatement, 12, share_xp);
-	databank.setInt(addGildeStatement, 13, share_gold);
-	databank.setInt(addGildeStatement, 14, elo);
-	databank.setString(addGildeStatement, 15, tag);
-	databank.workerExecute(addGildeStatement);
+	stmt = databank.prepare("INSERT INTO gilden (gilden_id, g_type, gold_delay, gold, name, block_world, block_x, block_y, block_z, safetime, plot_id, share_xp, share_gold, elo, tag) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
+	databank.setInt(stmt, 1, gilden_id);
+	databank.setInt(stmt, 2, g_type);
+	databank.setInt(stmt, 3, gold_delay);
+	databank.setInt(stmt, 4, gold);
+	databank.setString(stmt, 5, name);
+	databank.setString(stmt, 6, block_world);
+	databank.setInt(stmt, 7, block_x);
+	databank.setInt(stmt, 8, block_y);
+	databank.setInt(stmt, 9, block_z);
+	databank.setLong(stmt, 10, safetime);
+	databank.setInt(stmt, 11, plot_id);
+	databank.setInt(stmt, 12, share_xp);
+	databank.setInt(stmt, 13, share_gold);
+	databank.setInt(stmt, 14, elo);
+	databank.setString(stmt, 15, tag);
+	databank.workerExecute(stmt);
 }
 
 function deleteGuildFromData(gilden_id) {
-	deleteGildeStatement = databank.prepare("DELETE FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(deleteGildeStatement, 1, gilden_id);
-	databank.workerExecute(deleteGildeStatement);
+	stmt = databank.prepare("DELETE FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function deleteGuild(gilden_id) {
@@ -124,24 +125,24 @@ function deleteGuild(gilden_id) {
 }
 
 function setGoldDelay(gilden_id, gold_delay) {
-	setGoldDelayStatement = databank.prepare("UPDATE gilden SET gold_delay = ? WHERE gilden_id = ?;");
-	databank.setInt(setGoldDelayStatement, 1, gold_delay);
-	databank.setInt(setGoldDelayStatement, 2, gilden_id);
-	databank.workerExecute(setGoldDelayStatement);
+	stmt = databank.prepare("UPDATE gilden SET gold_delay = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gold_delay);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildGold(gilden_id, gold) {
-	setGoldStatement = databank.prepare("UPDATE gilden SET gold = ? WHERE gilden_id = ?;");
-	databank.setInt(setGoldStatement, 1, gold);
-	databank.setInt(setGoldStatement, 2, gilden_id);
-	databank.workerExecute(setGoldStatement);
+	stmt = databank.prepare("UPDATE gilden SET gold = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gold);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildName(gilden_id, name) {
-	setNameStatement = databank.prepare("UPDATE gilden SET name = ? WHERE gilden_id = ?;");
-	databank.setString(setNameStatement, 1, name);
-	databank.setInt(setNameStatement, 2, gilden_id);
-	databank.workerExecute(setNameStatement);
+	stmt = databank.prepare("UPDATE gilden SET name = ? WHERE gilden_id = ?;");
+	databank.setString(stmt, 1, name);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function addGuildElo(gilden_id, elo) {
@@ -149,43 +150,43 @@ function addGuildElo(gilden_id, elo) {
 }
 
 function setGuildElo(gilden_id, elo) {
-	setEloStatement = databank.prepare("UPDATE gilden SET elo = ? WHERE gilden_id = ?;");
-	databank.setInt(setEloStatement, 1, elo);
-	databank.setInt(setEloStatement, 2, gilden_id);
-	databank.workerExecute(setEloStatement);
+	stmt = databank.prepare("UPDATE gilden SET elo = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, elo);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildBlockW(gilden_id, location) {
 	world = loc.getWorld(location);
 	block_world = world.getName(world);
-	setBlockWorldStatement = databank.prepare("UPDATE gilden SET block_world = ? WHERE gilden_id = ?;");
-	databank.setString(setBlockWorldStatement, 1, block_world);
-	databank.setInt(setBlockWorldStatement, 2, gilden_id);
-	databank.workerExecute(setBlockWorldStatement);
+	stmt = databank.prepare("UPDATE gilden SET block_world = ? WHERE gilden_id = ?;");
+	databank.setString(stmt, 1, block_world);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildBlockX(gilden_id, location) {
 	block_x = loc.getCoord(location, "bx");
-	setBlockXStatement = databank.prepare("UPDATE gilden SET block_x = ? WHERE gilden_id = ?;");
-	databank.setInt(setBlockXStatement, 1, block_x);
-	databank.setInt(setBlockXStatement, 2, gilden_id);
-	databank.workerExecute(setBlockXStatement);
+	stmt = databank.prepare("UPDATE gilden SET block_x = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, block_x);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildBlockY(gilden_id, location) {
 	block_y = loc.getCoord(location, "by");
-	setBlockYStatement = databank.prepare("UPDATE gilden SET block_y = ? WHERE gilden_id = ?;");
-	databank.setInt(setBlockYStatement, 1, block_y);
-	databank.setInt(setBlockYStatement, 2, gilden_id);
-	databank.workerExecute(setBlockYStatement);
+	stmt = databank.prepare("UPDATE gilden SET block_y = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, block_y);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildBlockZ(gilden_id, location) {
 	block_z = loc.getCoord(location, "bz");
-	setBlockZStatement = databank.prepare("UPDATE gilden SET block_z = ? WHERE gilden_id = ?;");
-	databank.setInt(setBlockZStatement, 1, block_z);
-	databank.setInt(setBlockZStatement, 2, gilden_id);
-	databank.workerExecute(setBlockZStatement);
+	stmt = databank.prepare("UPDATE gilden SET block_z = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, block_z);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setGuildBlock(gilden_id, location) {
@@ -196,123 +197,123 @@ function setGuildBlock(gilden_id, location) {
 }
 
 function setGuildSafetime(gilden_id, safetime) {
-	setSafetimeStatement = databank.prepare("UPDATE gilden SET safetime = ? WHERE gilden_id = ?;");
-	databank.setLong(setSafetimeStatement, 1, safetime);
-	databank.setInt(setSafetimeStatement, 2, gilden_id);
-	databank.workerExecute(setSafetimeStatement);
+	stmt = databank.prepare("UPDATE gilden SET safetime = ? WHERE gilden_id = ?;");
+	databank.setLong(stmt, 1, safetime);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setShareXp(gilden_id, share_xp) {
-	setShareXpStatement = databank.prepare("UPDATE gilden SET share_xp = ? WHERE gilden_id = ?;");
-	databank.setInt(setShareXpStatement, 1, share_xp);
-	databank.setInt(setShareXpStatement, 2, gilden_id);
-	databank.workerExecute(setShareXpStatement);
+	stmt = databank.prepare("UPDATE gilden SET share_xp = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, share_xp);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function setShareGold(gilden_id, share_gold) {
-	setShareGoldStatement = databank.prepare("UPDATE gilden SET share_gold = ? WHERE gilden_id = ?;");
-	databank.setInt(setShareGoldStatement, 1, share_gold);
-	databank.setInt(setShareGoldStatement, 2, gilden_id);
-	databank.workerExecute(setShareGoldStatement);
+	stmt = databank.prepare("UPDATE gilden SET share_gold = ? WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, share_gold);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.workerExecute(stmt);
 }
 
 function getGoldDelay(gilden_id) {
-	getGoldDelayStatement = databank.prepare("SELECT gold_delay FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getGoldDelayStatement, 1, gilden_id);
-	result = databank.execute(getGoldDelayStatement);
+	stmt = databank.prepare("SELECT gold_delay FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		gold_delay = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getGoldDelayStatement);
+	databank.close(stmt);
 	return gold_delay;
 }
 
 function getGuildType(gilden_id) {
 	g_type = null;
-	getGuildTypeStatement = databank.prepare("SELECT g_type FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getGuildTypeStatement, 1, gilden_id);
-	result = databank.execute(getGuildTypeStatement);
+	stmt = databank.prepare("SELECT g_type FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		g_type = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getGuildTypeStatement);
+	databank.close(stmt);
 	return g_type;
 }
 
 function getGuildGold(gilden_id) {
-	getGoldStatement = databank.prepare("SELECT gold FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getGoldStatement, 1, gilden_id);
-	result = databank.execute(getGoldStatement);
+	stmt = databank.prepare("SELECT gold FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		gold = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getGoldStatement);
+	databank.close(stmt);
 	return gold;
 }
 
 function getGuildName(gilden_id) {
 	name = null;
-	getNameStatement = databank.prepare("SELECT name FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getNameStatement, 1, gilden_id);
-	result = databank.execute(getNameStatement);
+	stmt = databank.prepare("SELECT name FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		name = databank.getString(result, 1);
 	}
 	databank.close(result);
-	databank.close(getNameStatement);
+	databank.close(stmt);
 	return name;
 }
 
 function getGuildElo(gilden_id) {
 	elo = null;
-	getEloStatement = databank.prepare("SELECT elo FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getEloStatement, 1, gilden_id);
-	result = databank.execute(getEloStatement);
+	stmt = databank.prepare("SELECT elo FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		elo = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getEloStatement);
+	databank.close(stmt);
 	return elo;
 }
 
 function getGuildTag(gilden_id) {
 	tag = null;
-	getTagStatement = databank.prepare("SELECT tag FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getTagStatement, 1, gilden_id);
-	result = databank.execute(getTagStatement);
+	stmt = databank.prepare("SELECT tag FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		tag = databank.getString(result, 1);
 	}
 	databank.close(result);
-	databank.close(getTagStatement);
+	databank.close(stmt);
 	return tag;
 }
 
 function getAllGuildPlayerIds() {
 	list.new(list);
-	getAllGuildPlayerIdsStatement = databank.prepare("SELECT player_id FROM gildenplayer;");
-	result = databank.execute(getAllGuildPlayerIdsStatement);
+	stmt = databank.prepare("SELECT player_id FROM gildenplayer;");
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		list.add(list, databank.getInt(result, 1));
 	}
 	databank.close(result);
-	databank.close(getAllGuildPlayerIdsStatement);
+	databank.close(stmt);
 	return list;
 }
 
 function getAllGuildIds() {
 	list.new(list);
-	getAllGuildIdsStatement = databank.prepare("SELECT gilden_id FROM gilden;");
-	result = databank.execute(getAllGuildIdsStatement);
+	stmt = databank.prepare("SELECT gilden_id FROM gilden;");
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		list.add(list, databank.getInt(result, 1));
 	}
 	databank.close(result);
-	databank.close(getAllGuildIdsStatement);
+	databank.close(stmt);
 	return list;
 }
 
@@ -328,9 +329,9 @@ function getAllGuildBlocks() {
 
 function getGuildBlock(gilden_id) {
 	location = null;
-	getGuildBlockStatement = databank.prepare("SELECT block_world, block_x, block_y, block_z FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getGuildBlockStatement, 1, gilden_id);
-	result = databank.execute(getGuildBlockStatement);
+	stmt = databank.prepare("SELECT block_world, block_x, block_y, block_z FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		world_name = databank.getString(result, 1);
 		x = databank.getInt(result, 2);
@@ -340,80 +341,80 @@ function getGuildBlock(gilden_id) {
 		location = loc.new(world, x, y, z);
 	}
 	databank.close(result);
-	databank.close(getGuildBlockStatement);
+	databank.close(stmt);
 	return location;
 }
 
 function getGuildBlockW(gilden_id) {
-	getBlockWorldStatement = databank.prepare("SELECT block_world FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getBlockWorldStatement, 1, gilden_id);
-	result = databank.execute(getBlockWorldStatement);
+	stmt = databank.prepare("SELECT block_world FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		block_world = databank.getString(result, 1);
 		world = world.get(block_world);
 	}
 	databank.close(result);
-	databank.close(getBlockWorldStatement);
+	databank.close(stmt);
 	return world;
 }
 
 function getGuildBlockX(gilden_id) {
-	getBlockXStatement = databank.prepare("SELECT block_x FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getBlockXStatement, 1, gilden_id);
-	result = databank.execute(getBlockXStatement);
+	stmt = databank.prepare("SELECT block_x FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		block_x = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getBlockXStatement);
+	databank.close(stmt);
 	return block_x;
 }
 
 function getGuildBlockY(gilden_id) {
-	getBlockYStatement = databank.prepare("SELECT block_y FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getBlockYStatement, 1, gilden_id);
-	result = databank.execute(getBlockYStatement);
+	stmt = databank.prepare("SELECT block_y FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		block_y = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getBlockYStatement);
+	databank.close(stmt);
 	return block_y;
 }
 
 function getGuildBlockZ(gilden_id) {
-	getBlockZStatement = databank.prepare("SELECT block_z FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getBlockZStatement, 1, gilden_id);
-	result = databank.execute(getBlockZStatement);
+	stmt = databank.prepare("SELECT block_z FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		block_z = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getBlockZStatement);
+	databank.close(stmt);
 	return block_z;
 }
 
 function getGuildSafetime(gilden_id) {
-	getSafetimeStatement = databank.prepare("SELECT safetime FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getSafetimeStatement, 1, gilden_id);
-	result = databank.execute(getSafetimeStatement);
+	stmt = databank.prepare("SELECT safetime FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		safetime = databank.getLong(result, 1);
 	}
 	databank.close(result);
-	databank.close(getSafetimeStatement);
+	databank.close(stmt);
 	return safetime;
 }
 
 function getGuildPlotId(gilden_id) {
-	getGuildPlotIdStatement = databank.prepare("SELECT plot_id FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getGuildPlotIdStatement, 1, gilden_id);
-	result = databank.execute(getGuildPlotIdStatement);
+	stmt = databank.prepare("SELECT plot_id FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		plot_id = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getGuildPlotIdStatement);
+	databank.close(stmt);
 	return plot_id;
 }
 
@@ -427,50 +428,50 @@ function getGuildPlot(gilden_id) {
 
 function getGuildIdFromPlotId(plot_id) {
 	gilden_id = null;
-	getGuildIdFromPlotIdStatement = databank.prepare("SELECT gilden_id FROM gilden WHERE plot_id = ?;");
-	databank.setInt(getGuildIdFromPlotIdStatement, 1, plot_id);
-	result = databank.execute(getGuildIdFromPlotIdStatement);
+	stmt = databank.prepare("SELECT gilden_id FROM gilden WHERE plot_id = ?;");
+	databank.setInt(stmt, 1, plot_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		gilden_id = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getGuildIdFromPlotIdStatement);
+	databank.close(stmt);
 	return gilden_id;
 }
 
 function getShareXp(gilden_id) {
-	getShareXpStatement = databank.prepare("SELECT share_xp FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getShareXpStatement, 1, gilden_id);
-	result = databank.execute(getShareXpStatement);
+	stmt = databank.prepare("SELECT share_xp FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		share_xp = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getShareXpStatement);
+	databank.close(stmt);
 	return share_xp;
 }
 
 function getShareGold(gilden_id) {
-	getShareGoldStatement = databank.prepare("SELECT share_gold FROM gilden WHERE gilden_id = ?;");
-	databank.setInt(getShareGoldStatement, 1, gilden_id);
-	result = databank.execute(getShareGoldStatement);
+	stmt = databank.prepare("SELECT share_gold FROM gilden WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		share_gold = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getShareGoldStatement);
+	databank.close(stmt);
 	return share_gold;
 }
 
 function getGuildIdFromName(name) {
-	getIdFromNameStatement = databank.prepare("SELECT gilden_id FROM gilden WHERE name = ?;");
-	databank.setString(getIdFromNameStatement, 1, name);
-	result = databank.execute(getIdFromNameStatement);
+	stmt = databank.prepare("SELECT gilden_id FROM gilden WHERE name = ?;");
+	databank.setString(stmt, 1, name);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		gilden_id = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getIdFromNameStatement);
+	databank.close(stmt);
 	if(gilden_id == "null") {
 		return null;
 	}
@@ -482,28 +483,24 @@ function isExistingGuildName(name) {
 }
 
 function addGuildPlayer(player_id, gilden_id, gold_atm, gold_bank, next_join) {
-	addPlayerStatement = databank.prepare("INSERT INTO gildenplayer (player_id, gilden_id, gold_atm, gold_bank, next_join) VALUES (?, ?, ?, ?, ?);");
-	databank.setInt(addPlayerStatement, 1, player_id);
-	databank.setInt(addPlayerStatement, 2, gilden_id);
-	databank.setInt(addPlayerStatement, 3, gold_atm);
-	databank.setInt(addPlayerStatement, 4, 0); //Deprecated, gold_bank wird in gdmap "money" gespeichert
-	databank.setLong(addPlayerStatement, 5, next_join);
-	databank.workerExecute(addPlayerStatement);
+	stmt = databank.prepare("INSERT INTO gildenplayer (player_id, gilden_id, gold_atm, gold_bank, next_join) VALUES (?, ?, ?, ?, ?);");
+	databank.setInt(stmt, 1, player_id);
+	databank.setInt(stmt, 2, gilden_id);
+	databank.setInt(stmt, 3, gold_atm);
+	databank.setInt(stmt, 4, 0); //Deprecated, gold_bank wird in gdmap "money" gespeichert
+	databank.setLong(stmt, 5, next_join);
+	databank.workerExecute(stmt);
 }
 
 function deleteGuildPlayer(player_id) {
-	deletePlayerStatement = databank.prepare("DELETE FROM gildenplayer WHERE player_id = ?;");
-	databank.setInt(deletePlayerStatement, 1, player_id);
-	databank.workerExecute(deletePlayerStatement);
+	stmt = databank.prepare("DELETE FROM gildenplayer WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	databank.workerExecute(stmt);
 }
 
 function removePlayerFromGuild(spieler, instant_join) {
-	setGuildId(spieler, 0);
-	class = guild.getClass(player);
-	if(class != "none") {
-		level = guild.getLevel(player);
-	}
 	player_id = getPlayerId(spieler);
+	guild.setId(player_id, 0);
 	player_name = player.getNameFromId(player_id);
 	if(isOnline(player_name)) {
 		player = read.player(player_name);
@@ -516,17 +513,6 @@ function removePlayerFromGuild(spieler, instant_join) {
 	}
 }
 
-function setGuildId(spieler, gilden_id) {
-	player_id = getPlayerId(spieler);
-	if(gilden_id == 0) {
-		gilden_id = player_id * -1;
-	}
-	setGuildIdStatement = databank.prepare("UPDATE gildenplayer SET gilden_id = ? WHERE player_id = ?;");
-	databank.setInt(setGuildIdStatement, 1, gilden_id);
-	databank.setInt(setGuildIdStatement, 2, player_id);
-	databank.workerExecute(setGuildIdStatement);
-}
-
 function addGoldAtm(player, gold) {
 	goldnew = getGoldAtm(player) + gold;
 	setGoldAtm(player, goldnew);
@@ -539,33 +525,31 @@ function subGoldAtm(player, gold) {
 	displaygold(player, goldnew);
 }
 
-function setGoldAtm(spieler, gold_atm) {
-	player_id = getPlayerId(spieler);
-	setGoldAtmPlayerStatement = databank.prepare("UPDATE gildenplayer SET gold_atm = ? WHERE player_id = ?;");
-	databank.setInt(setGoldAtmPlayerStatement, 1, gold_atm);
-	databank.setInt(setGoldAtmPlayerStatement, 2, player_id);
-	databank.workerExecute(setGoldAtmPlayerStatement);
+function setGoldAtm(player, gold_atm) {
+	stmt = databank.prepare("UPDATE gildenplayer SET gold_atm = ? WHERE player_id = ?;");
+	databank.setInt(stmt, 1, gold_atm);
+	databank.setInt(stmt, 2, player.getId(player));
+	databank.workerExecute(stmt);
 }
 
 function setGoldBank(spieler, gold_bank) {
-	player_id = getPlayerId(spieler);
-	setMoney(player_id, "gpvp_gold_bank", gold_bank);
+	setMoney(getPlayerId(spieler), "gpvp_gold_bank", gold_bank);
 }
 
 function setNextJoin(spieler, next_join) {
 	player_id = getPlayerId(spieler);
-	setNextJoinPlayerStatement = databank.prepare("UPDATE gildenplayer SET next_join = ? WHERE player_id = ?;");
-	databank.setLong(setNextJoinPlayerStatement, 1, next_join);
-	databank.setInt(setNextJoinPlayerStatement, 2, player_id);
-	databank.workerExecute(setNextJoinPlayerStatement);
+	stmt = databank.prepare("UPDATE gildenplayer SET next_join = ? WHERE player_id = ?;");
+	databank.setLong(stmt, 1, next_join);
+	databank.setInt(stmt, 2, player_id);
+	databank.workerExecute(stmt);
 }
 
 function setRang(spieler, rang) {
 	player_id = getPlayerId(spieler);
-	setRangPlayerStatement = databank.prepare("UPDATE gildenplayer SET rang = ? WHERE player_id = ?;");
-	databank.setString(setRangPlayerStatement, 1, rang);
-	databank.setInt(setRangPlayerStatement, 2, player_id);
-	databank.workerExecute(setRangPlayerStatement);
+	stmt = databank.prepare("UPDATE gildenplayer SET rang = ? WHERE player_id = ?;");
+	databank.setString(stmt, 1, rang);
+	databank.setInt(stmt, 2, player_id);
+	databank.workerExecute(stmt);
 }
 
 function setLeader(spieler) {
@@ -594,22 +578,22 @@ function removeNick(spieler) {
 
 function setNick(spieler, nick) {
 	player_id = getPlayerId(spieler);
-	setNickPlayerStatement = databank.prepare("UPDATE gildenplayer SET nick = ? WHERE player_id = ?;");
-	databank.setString(setNickPlayerStatement, 1, nick);
-	databank.setInt(setNickPlayerStatement, 2, player_id);
-	databank.workerExecute(setNickPlayerStatement);
+	stmt = databank.prepare("UPDATE gildenplayer SET nick = ? WHERE player_id = ?;");
+	databank.setString(stmt, 1, nick);
+	databank.setInt(stmt, 2, player_id);
+	databank.workerExecute(stmt);
 }
 
 function getGoldAtm(spieler) {
 	player_id = getPlayerId(spieler);
-	getGoldAtmPlayerStatement = databank.prepare("SELECT gold_atm FROM gildenplayer WHERE player_id = ?;");
-	databank.setInt(getGoldAtmPlayerStatement, 1, player_id);
-	result = databank.execute(getGoldAtmPlayerStatement);
+	stmt = databank.prepare("SELECT gold_atm FROM gildenplayer WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		gold_atm = databank.getInt(result, 1);
 	}
 	databank.close(result);
-	databank.close(getGoldAtmPlayerStatement);
+	databank.close(stmt);
 	return gold_atm;
 }
 
@@ -621,27 +605,27 @@ function getGoldBank(spieler) {
 
 function getNextJoin(spieler) {
 	player_id = getPlayerId(spieler);
-	getNextJoinPlayerStatement = databank.prepare("SELECT next_join FROM gildenplayer WHERE player_id = ?;");
-	databank.setInt(getNextJoinPlayerStatement, 1, player_id);
-	result = databank.execute(getNextJoinPlayerStatement);
+	stmt = databank.prepare("SELECT next_join FROM gildenplayer WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		next_join = databank.getLong(result, 1);
 	}
 	databank.close(result);
-	databank.close(getNextJoinPlayerStatement);
+	databank.close(stmt);
 	return next_join;
 }
 
 function getRang(spieler) {
 	player_id = getPlayerId(spieler);
-	getRangPlayerStatement = databank.prepare("SELECT rang FROM gildenplayer WHERE player_id = ?;");
-	databank.setInt(getRangPlayerStatement, 1, player_id);
-	result = databank.execute(getRangPlayerStatement);
+	stmt = databank.prepare("SELECT rang FROM gildenplayer WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		rang = databank.getString(result, 1);
 	}
 	databank.close(result);
-	databank.close(getRangPlayerStatement);
+	databank.close(stmt);
 	if(rang == "null") {
 		return null;
 	}
@@ -650,14 +634,14 @@ function getRang(spieler) {
 
 function getNick(spieler) {
 	player_id = getPlayerId(spieler);
-	getNickPlayerStatement = databank.prepare("SELECT nick FROM gildenplayer WHERE player_id = ?;");
-	databank.setInt(getNickPlayerStatement, 1, player_id);
-	result = databank.execute(getNickPlayerStatement);
+	stmt = databank.prepare("SELECT nick FROM gildenplayer WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		nick = databank.getString(result, 1);
 	}
 	databank.close(result);
-	databank.close(getNickPlayerStatement);
+	databank.close(stmt);
 	if(nick == "null") {
 		return null;
 	}
@@ -666,22 +650,22 @@ function getNick(spieler) {
 
 function getGuildPlayers(gilden_id) {
 	list.new(list);
-	getGuildPlayersStatement = databank.prepare("SELECT player_id FROM gildenplayer WHERE gilden_id = ?;");
-	databank.setInt(getGuildPlayersStatement, 1, gilden_id);
-	result = databank.execute(getGuildPlayersStatement);
+	stmt = databank.prepare("SELECT player_id FROM gildenplayer WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		list.add(list, databank.getInt(result, 1));
 	}
 	databank.close(result);
-	databank.close(getGuildPlayersStatement);
+	databank.close(stmt);
 	return list;
 }
 
 function getOnlineGuildPlayerIds(gilden_id) {
 	list.new(list);
-	getOnlineGuildPlayerIdsStatement = databank.prepare("SELECT player_id FROM gildenplayer WHERE gilden_id = ?;");
-	databank.setInt(getOnlineGuildPlayerIdsStatement, 1, gilden_id);
-	result = databank.execute(getOnlineGuildPlayerIdsStatement);
+	stmt = databank.prepare("SELECT player_id FROM gildenplayer WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		player_id = databank.getInt(result, 1);
 		if(read.player(player.getNameFromId(player_id)) != null) {
@@ -689,15 +673,15 @@ function getOnlineGuildPlayerIds(gilden_id) {
 		}
 	}
 	databank.close(result);
-	databank.close(getOnlineGuildPlayerIdsStatement);
+	databank.close(stmt);
 	return list;
 }
 
 function getOnlineGuildPlayers(gilden_id) {
 	list.new(list);
-	getOnlineGuildPlayersStatement = databank.prepare("SELECT player_id FROM gildenplayer WHERE gilden_id = ?;");
-	databank.setInt(getOnlineGuildPlayersStatement, 1, gilden_id);
-	result = databank.execute(getOnlineGuildPlayersStatement);
+	stmt = databank.prepare("SELECT player_id FROM gildenplayer WHERE gilden_id = ?;");
+	databank.setInt(stmt, 1, gilden_id);
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		player_id = databank.getInt(result, 1);
 		p = read.player(player.getNameFromId(player_id));
@@ -706,7 +690,7 @@ function getOnlineGuildPlayers(gilden_id) {
 		}
 	}
 	databank.close(result);
-	databank.close(getOnlineGuildPlayersStatement);
+	databank.close(stmt);
 	return list;
 }
 
@@ -728,7 +712,7 @@ function displayMovePlot(player, move_id) {
 			display.add(player, 39, "§6", gilden_name);
 			elo = getGuildElo(gilden_id);
 			gold = getGuildGold(gilden_id);
-			if(gilden_id == getGuildId(player)) {
+			if(gilden_id == guild.getId(player)) {
 				//Gildenextra: Heimvorteil
 				if(elo >= 1400 && gold >= 10000) {
 					entity.addEffect(player, "haste", 150, 1);
@@ -758,17 +742,17 @@ function isGuild(gilden_id) {
 	return getGuildType(gilden_id) == 1;
 }
 
-function isPlayerInGuild(spieler) {
-	return isGuild(getGuildId(spieler));
+function isPlayerInGuild(player) {
+	return isGuild(guild.getId(player));
 }
 
-function isPlayerInGroup(spieler) {
-	return isGroup(getGuildId(spieler));
+function isPlayerInGroup(player) {
+	return isGroup(guild.getId(player));
 }
 
 function registerGpvpPlayer(player) {
 	player_id = getPlayerId(player);
-	if(!isGuildPlayer(player_id)) {
+	if(!isGuildPlayer(player)) {
 		addGuildPlayer(player_id, player_id * -1, 0, 0, time.getMillis());
 		list = players.toWorldList($gpvpworld);
 		if(list.contains(list, player)) {
@@ -783,7 +767,7 @@ function registerGpvpPlayer(player) {
 				setManaMax(player, calcManaMax(class, level));
 				displaymana(player);
 			}
-			displayHealth(player, entity.getHealth(player), getMaxHealth(class, level));
+			displayHealth(player);
 			fillStacksBar(player, class);
 			stacks.setActive(player, true);
 		}
@@ -794,7 +778,7 @@ function registerGpvpPlayer(player) {
 
 function joinGpvpWorld(player) {
 	displaygold(player, getGoldAtm(player));
-	displayHealth(player, entity.getHealth(player), getMaxHealth(class, level));
+	displayHealth(player);
 	class = guild.getClass(player);
 	if(class != "none") {
 		level = guild.getLevel(player);
@@ -806,7 +790,7 @@ function joinGpvpWorld(player) {
 		displaymana(player);
 	}
 	if(isPlayerInGuild(player)) {
-		gilden_id = getGuildId(player);
+		gilden_id = guild.getId(player);
 		gilden_tag = getGuildTag(gilden_id);
 	}
 	fillStacksBar(player, class);
@@ -827,7 +811,7 @@ function setHeadName(player) {
 	gilden_health = math.round(getGildenHealth(health, max_health));
 	
 	guild_string = "";
-	guild_id = getGuildId(player);
+	guild_id = guild.getId(player);
 	if(guild_id > 0) {
 		guild_tag = getGuildTag(guild_id);
 		guild_string = concat(" [§6", gilden_tag, "§r]");
@@ -835,8 +819,17 @@ function setHeadName(player) {
 	entity.setName(player, concat(text.number(gilden_health), " §c❤\n", level_string, "§r", player_name, guild_string));
 }
 
-function isGuildPlayer(spieler) {
-	return getGuildId(spieler) != null;
+function isGuildPlayer(player) {
+	stmt = databank.prepare("SELECT player_id FROM gildenplayer;");
+	result = databank.execute(stmt);
+	if(databank.next(result)) {
+		databank.close(result);
+		databank.close(stmt);
+		return true;
+	}
+	databank.close(result);
+	databank.close(stmt);
+	return false;
 }
 
 function dropTables() {
@@ -936,7 +929,7 @@ function addXp(player, xp, sendmsg, sharing) {
 	}
 	if(sendmsg) {
 		if(sharing) {
-			gilden_id = getGuildId(player);
+			gilden_id = guild.getId(player);
 			if(isGuild(gilden_id)) {
 				speakPrefix(player, "§aEXP", concat("§rDu hast §a", text.number(xp), " §rEXP erhalten [§6Gilde§r]"));
 			} else {
@@ -958,7 +951,8 @@ function addXp(player, xp, sendmsg, sharing) {
 		displaylevel(player, level);
 		setManaMax(player, calcManaMax(class, level));
 		displaymana(player);
-		displayHealth(player, entity.getHealth(player), getMaxHealth(class, level));
+		displayHealth(player);
+		setHeadName(player);
 		speakPrefix(player, "§aEXP", concat("§rDu hast Level §a", text.number(level), "§r erreicht"));
 		if(level >= 100) {
 			new_xp = 0;
@@ -1120,7 +1114,7 @@ function checkForEnimies(player) {
 	for(i = 0; i < list.getSize(nearplayers); i++) {
 		p = list.getIndex(nearplayers, i);
 		p_name = player.getName(p);
-		if(!checkIfSameGuild(player.getName(player), p_name)) {
+		if(!guild.isSame(player.getName(player), p_name)) {
 			//ja, nicht in selber Gilde/Gruppe
 			return false; //return true; Auskommentiert, um Funktion zu ermöglichen
 		}
@@ -1251,13 +1245,12 @@ function checkIfGuildInFight(gilden_id) {
 	return false;
 }
 
-function checkIfPlayerInFight(spieler) {
-	player_id = getPlayerId(spieler);
+function checkIfPlayerInFight(player) {
 	gfights = getScriptVar("gfights");
 	for(i = 0; i < list.getSize(gfights); i++) {
 		array = list.getIndex(gfights, i);
 		player_set = array[3];
-		if(set.contains(player_set, player_id)) {
+		if(set.contains(player_set, player.getId(player))) {
 			return true;
 		}
 	}
@@ -1517,13 +1510,13 @@ function fillStacksBar(player, class) {
 
 function getGuildPlots() {
 	list.new(plot_list);
-	getGuildPlotStatement = databank.prepare("SELECT plot_id FROM gilden;");
-	result = databank.execute(getGuildPlotStatement);
+	stmt = databank.prepare("SELECT plot_id FROM gilden;");
+	result = databank.execute(stmt);
 	while(databank.next(result)) {
 		list.add(plot_list, databank.getInt(result, 1));
 	}
 	databank.close(result);
-	databank.close(getGuildPlotStatement);
+	databank.close(stmt);
 	return plot_list;
 }
 

+ 88 - 7
utils/u_jobs.txt

@@ -10,17 +10,19 @@ function cache.get(player, index) {
 	return player_cache[index];
 }
 
-function cache.set(player, index, value) {
+function cache.set(spieler, index, value) {
+	if(isPlayer(spieler)) {
+		spieler = player.getUuid(spieler);
+	}
 	map = getScriptVar("guild_player_cache");
 	if(map == null) {
 		map = map.new();
 		setScriptVar("guild_player_cache", map);
 	}
-	uuid = player.getUuid(player);
-	player_cache = map.get(map, uuid);
+	player_cache = map.get(map, spieler);
 	if(player_cache == null) {
-		player_cache = array.new(3);
-		map.add(map, uuid, player_cache);
+		player_cache = array.new(4);
+		map.add(map, spieler, player_cache);
 	}
 	player_cache[index] = value;
 }
@@ -32,6 +34,47 @@ function guild.createTables() {
 	databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS gilden_chests_2 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player_id INT NOT NULL, block_world VARCHAR(20) NOT NULL, block_x INT NOT NULL, block_y INT NOT NULL, block_z INT NOT NULL, FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE CASCADE);"));
 	databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS guild_jobs (player_id INT NOT NULL, name VARCHAR(20) NOT NULL, level INT NOT NULL, xp INT NOT NULL, active TINYINT NOT NULL, PRIMARY KEY(player_id, name), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
 	databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS hotkeys (player_id INT NOT NULL, class_name VARCHAR(20) NOT NULL, key_index INT NOT NULL, skill_name VARCHAR(30) NOT NULL, PRIMARY KEY(player_id, class_name, key_index), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
+	databank.workerExecute(databank.prepare("CREATE TABLE IF NOT EXISTS guild_reward (player_id INT NOT NULL, day INT NOT NULL, opened TINYINT NOT NULL, PRIMARY KEY(player_id, day), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);"));
+}
+
+function guild.clearRewards() {
+	databank.workerExecute(databank.prepare("DELETE FROM guild_reward"));
+}
+
+function guild.openedReward(player, day) {
+	stmt = databank.prepare("INSERT INTO guild_reward (player_id, day, opened) VALUES (?,?,1)");
+	databank.setInt(stmt, 1, player.getId(player));
+	databank.setInt(stmt, 2, day - 1);
+	databank.workerExecute(stmt);
+}
+
+function guild.hasRewardOpened(player, day) {
+	stmt = databank.prepare("SELECT opened FROM guild_reward WHERE player_id = ? AND day = ?");
+	databank.setInt(stmt, 1, player.getId(player));
+	databank.setInt(stmt, 2, day - 1);
+	result = databank.execute(stmt);
+	if(databank.next(result)) {
+		databank.close(result);
+		databank.close(stmt);
+		return true;
+	}
+	databank.close(result);
+	databank.close(stmt);
+	return false;
+}
+
+function guild.getRewardList(player) {
+	list = list.new();
+	stmt = databank.prepare("SELECT day FROM guild_reward WHERE player_id = ? ORDER BY day ASC");
+	databank.setInt(stmt, 1, player.getId(player));
+	result = databank.execute(stmt);
+	while(databank.next(result)) {
+		day = databank.getInt(result, 1);
+		list.add(list, day);
+	}
+	databank.close(result);
+	databank.close(stmt);
+	return list;
 }
 
 function guild.getClass(player) {
@@ -142,6 +185,7 @@ function guild.getXpFromDatabase(player_id) {
 	return xp;
 }
 
+
 function guild.getClassXpFromDatabase(player_id, class_name) {
 	stmt = databank.prepare("SELECT xp FROM guild_jobs WHERE player_id = ? AND name = ?;");
 	databank.setInt(stmt, 1, player_id);
@@ -164,6 +208,44 @@ function guild.setXp(player, xp) {
 	databank.workerExecute(stmt);
 }
 
+function guild.getId(player) {
+	guild_id = cache.get(player, 3);
+	if(guild_id == null) {
+		guild_id = guild.getIdFromDatabase(player.getId(player));
+		cache.set(player, 3, guild_id);
+	}
+	return guild_id;
+}
+
+function guild.getIdFromDatabase(player_id) {
+	stmt = databank.prepare("SELECT gilden_id FROM gildenplayer WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	result = databank.execute(stmt);
+	guild_id = - player_id;
+	while(databank.next(result)) {
+		guild_id = databank.getInt(result, 1);
+	}
+	databank.close(result);
+	databank.close(stmt);
+	return guild_id;
+}
+
+function guild.setId(spieler, guild_id) {
+	if(isPlayer(spieler)) {
+		player_id = player.getId(spieler);
+	} else {
+		player_id = spieler;
+	}
+	if(guild_id == 0) {
+		guild_id = player_id * -1;
+	}
+	cache.set(player.getUuidFromId(player_id), 3, guild_id);
+	stmt = databank.prepare("UPDATE gildenplayer SET gilden_id = ? WHERE player_id = ?;");
+	databank.setInt(stmt, 1, guild_id);
+	databank.setInt(stmt, 2, player_id);
+	databank.workerExecute(stmt);
+}
+
 function guild.hasClass(player, class_name) {
 	stmt = databank.prepare("SELECT player_id FROM guild_jobs WHERE player_id = ? AND name = ?;");
 	databank.setInt(stmt, 1, player.getId(player));
@@ -212,8 +294,7 @@ function canExecuteSkill(player, skill_name) {
 		belagerungsskills_set = getScriptVar("belagerungsskills_set");
 		if(set.contains(belagerungsskills_set, skill_name)) {
 			gfights = getScriptVar("gfights");
-			player_id = player.getId(player);
-			if(!checkIfPlayerInFight(player_id)) {
+			if(!checkIfPlayerInFight(player)) {
 				return 8;
 			}
 		}

+ 14 - 14
utils/u_skills.txt

@@ -55,7 +55,7 @@ function executeSkill(player, skillname) {
 	list = player.near(player, 3);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(!checkIfSameGuild(player, p)) {
+		if(!guild.isSame(player, p)) {
 			status.addTimed(p, 24, 50, skillname);
 			data.set(p, label, 1);
 			entityDamage(p, player, 0.4, false);
@@ -93,7 +93,7 @@ function executeSkill(player, skillname) {
 	list = players.near(loc, 10);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.addEffect(p, "strength", 300, 1);
 			entity.addEffect(p, "fire_resistance", 300, 1);
 		}
@@ -116,7 +116,7 @@ function executeSkill(player, skillname) {
 	list = players.near(loc, 10);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			status.addTimed(p, 31, 200, skillname);
 			data.setTimer(p, label, 200);
 		}
@@ -159,7 +159,7 @@ function executeSkill(player, skillname) {
 	player_loc = entity.getLocation(player);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(!checkIfSameGuild(player, p)) {
+		if(!guild.isSame(player, p)) {
 			entity.teleport(p, player_loc);
 		}
 	}
@@ -426,7 +426,7 @@ function executeSkill(player, skillname) {
 	list = players.near(loc, 10);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.addEffect(p, "fire_resistance", 300, 1);
 		}
 	}
@@ -481,7 +481,7 @@ function executeSkill(player, skillname) {
 	list = player.near(player, 5);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(!checkIfSameGuild(player, p)) {
+		if(!guild.isSame(player, p)) {
 			entity.throw(p, 0, 4, 0);
 		}
 	}
@@ -572,7 +572,7 @@ function executeSkill(player, skillname) {
 	trap_loc = getBlockLocation(entity.getLocation(player));
 	move_id = event.addMoveData(loc.mod(trap_loc, -2, -1, -2), loc.mod(trap_loc, 3, 1, 3), 5, -1);
 	data.setTimer(player, concat("Netzfalle1_", move_id), 600);
-	gilden_id = getGuildId(player);
+	gilden_id = guild.getId(player);
 	map.add($net_traps, move_id, gilden_id);
 	return true;
 	
@@ -596,7 +596,7 @@ function executeSkill(player, skillname) {
 	entity.addEffect(player, "speed", 100, 6);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.addEffect(p, "speed", 100, 6);
 		}
 	}
@@ -634,7 +634,7 @@ function executeSkill(player, skillname) {
 	middle_loc = loc.new($gpvpworld, bx, by, bz);
 	move_id = event.addMoveData(loc.mod(middle_loc, -5, -1, -5), loc.mod(middle_loc, 6, 7, 6), 5, 600);
 	data.setTimer(player, concat("Dornenranken_", move_id), 600);
-	gilden_id = getGuildId(player);
+	gilden_id = guild.getId(player);
 	map.add($vine_traps, move_id, gilden_id);
 	//Ranken setzen
 	counter = 0;
@@ -874,7 +874,7 @@ function executeSkill(player, skillname) {
 	entity.setHealth(player, entity.getHealth(player) + 4);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.setHealth(p, entity.getHealth(p) + 4);
 		}
 	}
@@ -890,7 +890,7 @@ function executeSkill(player, skillname) {
 	entity.addEffect(player, "haste", 100, 2);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.addEffect(p, "speed", 100, 3);
 			entity.addEffect(p, "haste", 100, 2);
 		}
@@ -906,7 +906,7 @@ function executeSkill(player, skillname) {
 	entity.setHealth(player, entity.getHealth(player) + 4);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.setHealth(p, entity.getHealth(p) + 4);
 		} else {
 			entityDamage(p, player, 4, false);
@@ -937,7 +937,7 @@ function executeSkill(player, skillname) {
 	entity.addEffect(player, "jump_boost", 100, 3);
 	for(i = 0; i < list.getSize(list); i++) {
 		p = list.getIndex(list, i);
-		if(checkIfSameGuild(player, p)) {
+		if(guild.isSame(player, p)) {
 			entity.addEffect(p, "jump_boost", 100, 3);
 		}
 	}
@@ -1189,7 +1189,7 @@ function getTarget(player, onlyPlayers, radius) {
 			}
 		}
 	} else {
-		if(checkIfSameGuild(player, ent)) {
+		if(guild.isSame(player, ent)) {
 			player.action(player, "§rSpieler in derselben Gilde");
 			return 6;
 		}