The next update will be available on Friday, October 31, towards the evening (GMT+1)				
		
		 
				
				
	
	
		
																				
				- 
					
						
							
							
							
								
								
								
									ich kenne die Plugins nicht aber es ist wichtig dass jedes Plugin in einem eigenen Ordner liegt. 
 
 Beispiel: 
 
 Hauptordner
 - plugin Ordner
 -- Plugin 1 Ordner
 -- Plugin 2 Ordner
 -- Plugin 3 Ordner
 -- usw
 
 
 Also die Plugin X Ordner müssen in dem plugin Ordner liegen. 
 
 
 
- 
					
						
							
							
							
								
								
								
									finde ich gut, bin mal gespannt was da noch bei kommt.  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ok, das habe ich nun geschafft.
 Jetzt wird es richtig verwirrend...
 
 
 Wenn ich nun /tmn update Hallo und Willkommen auf dem Server von Kadaboom.de eingebe bekomme ich als Bestätigung das der Text gespeichert wurde.
 Mache ich nun /tmn seen sehe ich auch den neuen Text im Chat stehen.
 
 
 Logge ich mich aber neu ein steht wieder der alte Text da.
 Grund dafür ist das er in der Datenbank nix geändert hat, wo bitte hat er dann den Text bei /tmn seen her, speichert er den irgendwo zwischen?
 
 
 
	
		
		
				package net.risingworld.tmnplugin.WillkommensNachricht;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import net.risingworld.api.Plugin;
 import net.risingworld.api.database.WorldDatabase;
 import net.risingworld.api.events.EventMethod;
 import net.risingworld.api.events.Listener;
 import net.risingworld.api.events.player.PlayerCommandEvent;
 import net.risingworld.api.events.player.PlayerSpawnEvent;
 import net.risingworld.api.objects.Player;
 public class WillkommensNachricht extends Plugin implements Listener {
 		registerEventListener(this);
 	public void PlayerSpawn(PlayerSpawnEvent event){
 		Player player = event.getPlayer();
 			WorldDatabase db = getWorldDatabase();
 				ResultSet result = db.executeQuery("SELECT * FROM `tmn-server-welcome` WHERE `ID` = '1'");
 					player.sendTextMessage(result.getString("Nachricht"));
 	public void onPlayerCommand(PlayerCommandEvent event){
 		Player player = event.getPlayer();
 		String command = event.getCommand();
 		String[] cmd = command.split(" ");
 		if(cmd[0].equals("/tmn")){
 				player.sendTextMessage("[#FF4000]Hilfe: [#18DF5A]/tmn help");
 				player.sendTextMessage("[#FF4000]Anzeigen: [#18DF5A]/tmn seen");
 				player.sendTextMessage("[#FF4000]Update: [#18DF5A]/tmn update <Text>");
 				if(cmd[1].equals("help")){
 						player.sendTextMessage("[#18DF5A]-------[ TMN Willkommens Hilfe ]-------");
 						player.sendTextMessage("[#18DF5A]Schreib [#FF4000]/tmn update <Text> [#18DF5A]um den Willkommenstext zu ändern.");
 						player.sendTextMessage("[#18DF5A]Schreib [#FF4000]/tmn seen [#18DF5A]um dir den Willkommenstext anzeigen zu lassen.");
 						player.sendTextMessage("[#DF3982]Schreib [#FF4000]/tmn help [#DF3982]für die Hilfe");
 				}else if(cmd[1].equals("seen")){
 							WorldDatabase db = getWorldDatabase();
 								ResultSet result = db.executeQuery("SELECT * FROM `tmn-server-welcome` WHERE `ID` = '1'");
 									String welcomeText = result.getString("Nachricht");
 									player.sendTextMessage("[#FF4000]Admin Modus: [#18DF5A]" + welcomeText);
 						player.sendTextMessage("[#DF3982]Du musst [#FF4000]/tmn seen [#DF3982]schreiben.");
 				}else if(cmd[1].equals("update")){
 						String welcomeTextNew = command.substring(12);
 						WorldDatabase db = getWorldDatabase();
 							db.executeUpdate("UPDATE `tmn-server-welcome` SET `Nachricht` = '" + welcomeTextNew + "' WHERE `ID` = '1'");
 							player.sendTextMessage("[#18DF5A]Dein neuer Text wurde gespeichert!");
 						player.sendTextMessage("[#DF3982]Du musst [#FF4000]/tmn update <text> [#DF3982]schreiben.");
 				player.sendTextMessage("[#DF3982]Da du kein Admin bist, hast du keinen Zugriff!");
 
 
 Display More
 
 
 
 
 
	
		
		
				database_mysql_connections=10
 database_mysql_database=Hier könnte deine Werbung stehen!
 database_mysql_password=Hier könnte deine Werbung stehen!
 database_mysql_server_ip=Hier könnte deine Werbung stehen!
 database_mysql_server_port=3306
 database_mysql_user=Hier könnte deine Werbung stehen!
 rcon_password=Hier könnte deine Werbung stehen!
 server_hive_verification=true 
 
 Display More
 
 
 
 
- 
					
						
							
							
							
								
								
								
									natürlich, weil ich ja den cmd2 ausgelesen habe aber den ganzen String gezählt. ich bin so doof. 
 
 Danke dir, Schau ich morgen noch mal drüber. 
 
 
 
- 
					
						
							
							
							
								
								
								
									Also ich stehe gerade etwas auf dem Schlauch. 
 
 Ich möchte via Chat etwas in die Datenbank schreiben.
 Nun muss dafür /tmn update <Text> eingegeben werden.
 Aber ich will ja nicht alles speichern sondern nur den <Text>.
 
 
 Dafür habe ich folgendes geschrieben:
 
 
	
		
		
								}else if(cmd[1].equals("update")){
 						String welcomeTextNew = cmd[2];
 						String welcomeTextNew2 = welcomeTextNew.substring(12);
 						WorldDatabase db = getWorldDatabase();
 							db.executeUpdate("UPDATE `tmn-server-welcome` SET `Nachricht` = '" + welcomeTextNew2 + "' WHERE `ID` = '1'");
 							player.sendTextMessage("[#18DF5A]Dein neuer Text wurde gespeichert!");
 						player.sendTextMessage("[#DF3982]Du musst [#FF4000]/tmn update <text> [#DF3982]schreiben.");
 
 
 Display More
 
 
 Aber er haut mir immer nen Fehler in die Konsole. 
 
 
	
		
		
				java.lang.reflect.InvocationTargetException
 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 	at java.lang.reflect.Method.invoke(Unknown Source)
 	at pluginapi.PluginEventHandler.triggerEvent(SourceFile:166)
 	at E.b.messageReceived(SourceFile:121)
 	at de.jiw.network.kernel.KernelAdapter.dispatch(KernelAdapter.java:188)
 	at de.jiw.network.message.RawPacket.run(RawPacket.java:54)
 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 	at java.lang.Thread.run(Unknown Source)
 Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -7
 	at java.lang.String.substring(Unknown Source)
 	at net.risingworld.tmnplugin.WillkommensNachricht.WillkommensNachricht.onPlayerCommand(WillkommensNachricht.java:95)
 [LUA][Kadaboom Scripte] 10/26/16 20:33:36 TutMeistensNix: /tmn update Hallo und Willkommen auf dem Server von Kadabomm.de 
 
 Display More
 
 Wo liegt mein Fehler?
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		Hier ein Beispiel um eine Tabelle zu erstellen und einen Eintrag einzufügen: 
 
 
	
		
		
				Database db = getMySQLConnection("***", "localhost", 3306, "***", "****");
 //Tabelle "Preise" erstellen (falls nicht existiert)
 db.execute("CREATE TABLE IF NOT EXISTS `Preise` (`ID` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `Itemname` VARCHAR(64), `Price` INTEGER);");
 //Neuen Eintrag in "Preise" eintragen
 db.executeUpdate("INSERT INTO `Preise` (Itemname, Price) VALUES ('pickaxe', '400');");
 //Wenn du iwann das "db" Objekt nicht mehr brauchst, close() aufrufen
 
 
 Display More
 
 
 So, habe mich mal etwas damit beschäftigt und viel gelernt.   
 
 
 Wenn ich das richtig verstanden habe brauche ich gar nicht eine Verbindung mit getMySQLGedönns aufbauen ich kann ja einfach die vorhandene benutzen.
 Sprich, wenn ich WorldDatabase db = getWorldDatabase[b]([/b][b])[/b]; benutze nimmt er doch die Datenbank die der Admin in der server.properties angegeben hat, dabei richtet er sich doch nach dem Wert der unter database_type= angegeben wurde, oder liege ich da ganz falsch?
 
 
 Also ich habe jetzt ne einfache Abfrage die er aus der DB holt wenn ein Spieler joint. 
 
 
	
		
		
							WorldDatabase db = getWorldDatabase();
 				System.out.println("Datenbank verbunden.");
 				ResultSet result = db.executeQuery("SELECT * FROM `tmn-server-welcome` WHERE `ID` = '1'");
 					player.sendTextMessage(result.getString("Nachricht"));
 
 
 Display More
 Diese kann ich aber nicht mit db.close(); dicht machen, dann zeigt mir Eclipse ne Warnung an. 
 
 
 
 Ach, fast vergessen.
 Ich bin hier fast abgedreht weil er immer Fehler bei der Select Abfrage geworfen hat.
 Ganz wichtig sind die Hochkomma Teile, mal müssen diese ` und mal diese ' verwendet werden.... wer kommt den bitte auf so einen Mist? 
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ich danke dir, werde am Wochenende mal genauer drüber schauen. 
 
 
 
- 
					
						
							
							
							
								
								
								
									Das wäre sehr nett von dir. 
 
 Das Gästebuch Plugin ist für mich als nix versteher sehr undurchsichtig. 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ok, danke.
 Schaue ich mir morgen mal an.
 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
	
	
	
	
		So hab mal eine überarbeitete jar hochgeladen.
 In einer Datei Config.txt können 4 verschiedene Parameter übergeben werden: ip, port, channel und message
 die Datei könnte dann beispielsweise so aussehen:
 
 
 
 Dürfte ich den Code sehen um zu schauen wie das geht das man etwas über eine extra Datei einbindet? 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ja, das ist wirklich ein Vorteil. 
 
 Aber ich kann hier ja nicht mal von anderen Scripten abgucken weil man ja keinen Code mehr sieht.
 Und wenn ich mir im Internet Hilfeseiten anschaue wie man den Daten aus einer MySQL Datenbank abruft bekomme ich nur Kopfschmerzen.
 5 Hilfe Seiten und überall steht es anders.
 
 
 Was ich mit https://javadoc.rising-world.net/ rausbekommen habe ist wie man eine Verbindung zu einer MySQL Datenbank aufbaut. 
 
 
	
		
		
				Database db = getMySQLConnection("***", "localhost", 3306, "***", "****");
 			System.out.println("Datenbank verbunden.");
 			System.out.println("Datenbank wurde nicht gefunden!!!");
 
 
 
 Toll, nun habe ich in der Konsole Datenbank verbunden. stehen... 
 
 
 
- 
					
						
							
							
							
								
								
								
									Also irgendwie war es mit Lua viel einfacher... 
 
 Wir lassen es mal lieber die machen die sich damit auskennen, haben ja hier im Forum genug Leute rumlaufen. 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ah, da muss es nun hin. 
 
 Danke dir.   
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Kannst du nicht schlafen?   
 
 
 Im Moment noch nicht.
 Heute Abend werde ich noch mal dran gehen, wenn ich Zeit und etwas Ruhe habe.
 
 
 Es ist schön wenn man nach einigen Versuchen selbst sieht was man verkehrt gemacht hat und kann sich es dann so viel besser merken als wenn man immer gleich die Lösung vor die Nase gesetzt bekommt. 
 
 
 
 Aber ne Frage habe ich wirklich.
 Ich muss ja zb if(cmd[1].equals("tmn")) statt if(cmd[1] == ("tmn")) schreiben.
 So wird die if Schleife ausgeführt wenn der Wert positiv ist, was ist aber wenn ich jetzt genau das Gegenteil vor habe, ich also will das die Schleife ausgeführt wenn der Wert nicht tmn lautet?
 Also if(cmd[1] != ("tmn"))
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Danke dir für die gute Erklärung.   
 
 
 Inzwischen habe ich diese "einfache" Ausgabe hinbekommen.
 Wollte nun ne einfache Ausgabe aus der MySQL Datenbank aber da bekomme ich im Moment nur Fehler.
 Langsam ernährt sich das Eichhörnchen...
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ich habe heute versucht ne Welcome Nachricht zu erstellen die über die Datenbank abgerufen wird aber was soll ich sagen, ich habe keine Ahnung und deswegen wird es wohl etwas dauern bis da mal was kommt. Wenn überhaupt was kommt.   
 
 
 
 
- 
					
						
							
							
							
								
								
								
									https://www.blender.org/ 
 
 Kostenlos aber man muss sich da sehr rein fuchsen. 
 
 Ich selbst mache hier und da auch was mit.
 Dieser Kanal macht sehr gute Tutorials: https://www.youtube.com/channel/UCOOmTjuGS9VwH3rziflB7Xg
 
 
 
 
 Dies habe ich zb gemacht.
  
 
 
 
 
- 
					
						
							
							
							
								
								
								
									Also ich würde sagen es sieht gut aus, habe aber keine Ahnung von Java. 
 
 
 
- 
					
						
							
							
							
								
								
								
									
	
		
		
				public void onCommand(PlayerCommandEvent event){
         Player player = event.getPlayer();
         String command = event.getCommand();
         String[] cmd = command.split(" ");
         //check the command, example: teleport command
         if(cmd[0].equals("/teleport")){
             //check if player provided coordinates
                 float x = Float.parseFloat(cmd[1]);
                 float y = Float.parseFloat(cmd[2]);
                 float z = Float.parseFloat(cmd[3]);
                 player.setPosition(x, y, z);
                 player.sendTextMessage("[FFFF00]Teleported to " + x + ", " + y + ", " + z);
 
 
 Display More
 Du brauchst nur einmal den String Spliten.
 Dann teilt er die Eingabe aus dem Chat auf, Trennung ist dann immer das Leerzeichen
 
 
 Beispiel:
 /rcp info playerinfo [Spielername]
 
 
 /rcp = cmd[0]
 info = cmd[1]
 playerinfo = cmd[2]
 [Spielername] = cmd[3]
 
 
 Nun könntest du zb mit einer If Abfrage den Wert von cmd[1] auslesen und gucken ob der Spieler info oder admin geschrieben hat. 
 
 
 
- 
					
						
							
							
							
								
								
								
									Ok, habe den Fehler gefunden. 
 
 Es ist wichtig das das Plugin noch mal in einem extra Ordner liegt... 
 
 Ich sollte bei dem Motto meines Namens bleiben..... 