Funktionslos registerKeys ||&& setListenForKeyInput im Singelplayer
- noci
- Closed
- Thread is marked as Resolved.
-
-
Also eigentlich sollten Key Eingaben korrekt ausgeführt werden Sofern vorher auf das Spielerobjekt setListenForKeyInput(true) sowie registerKeys(...) aufgerufen wurde (zB im PlayerSpawnEvent). Ich hatte es gerade nochmal getestet und es funktioniert eigentlich Kannst du mir ggf. die entsprechenden Code-Zeilen senden?
-
Also im Multiplayer geht das ja ohne Probleme
OKe, ich habe nachfolgend die onEnable & onPlayerConnectEvent angehängt. In dem letzten Event(251) wir der Key inizialiesiert.
Codetry{ MySqlPort = Integer.parseInt(sysConfig.getValue("MySqlPort")); }catch(NumberFormatException e){ MySqlPort = 0; }if(debug>2){System.out.println("[" + plugin.getDescription("name") + "] "+"Datenbank Auswahl "+"MySqlDatabase["+MySqlDatabase+"] "+"MySqlIP["+MySqlIP+"] "+"MySqlPort["+MySqlPort+"] "+"MySqlUser["+MySqlUser+"] "+"MySqlPW["+MySqlPW+"] ");}if (!MySqlDatabase.equals("")&&!MySqlIP.equals("")&&MySqlPort>0&&!MySqlUser.equals("")&&!MySqlPW.equals("")){+ "HomeID INTEGER "+(SQL.getType()==DatabaseType.MySQL?"AUTO_INCREMENT ":"PRIMARY KEY ")+"NOT NULL, "if (pdir.mkdir()) { if(debug>0){System.out.println("[" + plugin.getDescription("name") + "]"+" Verzeichnis erstellt. "+pdir.getName()+"|");} }sysTemplate = new TeleportationConfig("config", sysTemplateArray, this, debug,spec+tmpl+spec+sysConfig.getValue("Template"));if (pdir.mkdir()) { if(debug>0){System.out.println("[" + plugin.getDescription("name") + "]"+" Verzeichnis erstellt. "+pdir.getName()+"|");} }sysTemplate = new TeleportationConfig("config", sysTemplateArray, this, debug,spec+tmpl+spec+sysConfig.getValue("Template"));if (pdir.mkdir()) { if(debug>0){System.out.println("[" + plugin.getDescription("name") + "]"+" Verzeichnis erstellt. "+pdir.getName()+"|");} }sysTemplate = new TeleportationConfig("config", sysTemplateArray, this, debug,spec+tmpl+spec+sysConfig.getValue("Template"));try{ B = Float.parseFloat(sysTemplate.getValue("HG-rSize")); }catch(NumberFormatException e){ B = 0.5f; }try{ TiteFontSizeRow = Integer.parseInt(sysTemplate.getValue("TiteFontSize")); }catch(NumberFormatException e){ TiteFontSizeRow = 64; }try{ TiteOffToplRow = Float.parseFloat(sysTemplate.getValue("TiteOffTopl")); }catch(NumberFormatException e){ TiteOffToplRow = 0.025f; }if (sysConfig.getValue("Template").toUpperCase().equals("PDA")||sysConfig.getValue("Template").toUpperCase().equals("PAPYRUS")){HG0Image = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/HG.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("HG"));bntHomeImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bnt1.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNT1"));bntNewImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bnt2.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNT2"));bntDelImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bnt3.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNT3"));bntLcdImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bntLcd.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("LCD"));bntUpImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bntUp.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNTup"));bntDownImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bntDown.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNTdown"));bntExitImage = getBild("/resources/"+sysConfig.getValue("Template").toUpperCase()+"/bntExit.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("EXIT"));HG0Image = getBild("/resources/"+DIR+"/HG.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("HG"));bntHomeImage = getBild("/resources/"+DIR+"/bnt1.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNT1"));bntNewImage = getBild("/resources/"+DIR+"/bnt2.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNT2"));bntDelImage = getBild("/resources/"+DIR+"/bnt3.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNT3"));bntLcdImage = getBild("/resources/"+DIR+"/bntLcd.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("LCD"));bntUpImage = getBild("/resources/"+DIR+"/bntUp.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNTup"));bntDownImage = getBild("/resources/"+DIR+"/bntDown.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("BNTdown"));bntExitImage = getBild("/resources/"+DIR+"/bntExit.png" ,tmplRoot+spec+sysConfig.getValue("Template")+spec+sysTemplate.getValue("EXIT"));System.err.println("[" + plugin.getDescription("name") + "-ERR] Das Plugin 'SprachAPI' ist nicht installiert! Bitte installieren!");
wenn du mehr einblick brauchst, kein Problem. Kann dir auch das gesamte Projekt zukommen lassen. -
Ich habe noch mal getestet.
Singelplayer frisch geladen: kein KeyEven.
Gebe ich rp in die Konsole ein ist der KeyEvent wieder da.Ich hoffe das hilft.
###EDIT:
Der Singel Player hatt ja kein onPlayerConnectEvent?
deswegen also den Code in PlayerSpawnEvent? -
Hmm... du hast recht, im Singleplayer wird kein PlayerConnectEvent getriggert Was zwar einerseits logisch ist, andererseits aber auch kontraproduktiv Wir werden das auf jeden Fall mit dem nächsten Update ändern (bei "rp" funktionierts übrigens, weil dort das PlayerConnectEvent zwangsweise manuell getriggert wird)
Als Lösung könntest du entweder tatsächlich das PlayerSpawnEvent verwenden (das ist genauso gut wie das PlayerConnectEvent), oder du lädst deine Welt über den roten LAN Button (bzw. der grüne P2P Button müsste es eigentlich auch tun)
-
-
ein bischen spät in der Diskussion aber ich würde sagen dass es sollte wie es ist bleiben.
Im ConnectEvent der Spieler laded den Welt und andere Server sachen wichtiger als ein Plugin. Wenn ein Plugin zu viel im ConnectEvent macht dann der Spieler braucht zu viel Zeit in der Server einzuloggen.
Ich finde ein plugin sollte im SpawnEvent alles machen nach der Spieler sicher und völlig im Server verbunden ist.
-
Ich hatte den Zusammenhang einfach nur nicht auf dem Schirm.
Am liebsten würde ich schon alles in onEnable definieren, nur ist der jewaliege Player noch nicht da. Ich brauche ja nur einmal ne Initialisierung. PlayerSpawnEvent klingt für mich als würde er auch beim respawn ausgeführt wird. ( keine Ahnung, ob dann Probleme entstehen, wenn z.B. die Bilder erneut initialisiert werden)
Vielleicht macht das Sinn noch ein, zwei Events einzufügt, einen zum Player initialiesieren(Bilder usw )der nicht sichtbar ist(auf blinkende Bilder beim Inizialiesieren) und wenn der Player sich bewegen kann (nach dem Beitreten) z.b. Text einblenden, Area Prüfen, oder sowas.
Weil beide Funktionen PlayerSpawnEvent & PlayerConnectEvent werden ausgeführt, bevor das Spiel Sicht bar ist. Quasi ne Yallmsg sieht man nicht mehr, die ist dann abgelaufen. -
Am liebsten würde ich schon alles in onEnable definieren, nur ist der jewaliege Player noch nicht da. Ich brauche ja nur einmal ne Initialisierung. PlayerSpawnEvent klingt für mich als würde er auch beim respawn ausgeführt wird. ( keine Ahnung, ob dann Probleme entstehen, wenn z.B. die Bilder erneut initialisiert werden)
nein nein PlayerRespawnEvent kommt nach dem tod, PlayerSpawnEvent kommt nur wenn der Spieler erstmal im Welt spawnt
Vielleicht macht das Sinn noch ein, zwei Events einzufügt, einen zum Player initialiesieren(Bilder usw )der nicht sichtbar ist(auf blinkende Bilder beim Inizialiesieren) und wenn der Player sich bewegen kann (nach dem Beitreten) z.b. Text einblenden, Area Prüfen, oder sowas.
Weil beide Funktionen PlayerSpawnEvent & PlayerConnectEvent werden ausgeführt, bevor das Spiel Sicht bar ist. Quasi ne Yallmsg sieht man nicht mehr, die ist dann abgelaufen.PlayerSpawnEvent kommt nach der Spieler den Welt sieht aber während die Umgebung geladet ist. d.h. wenn du player.sendTextMessage() oder player.sendYellMessage() nutzt der spieler sieht das
-
OKe, Danke
Participate now!
Don’t have an account yet? Create a new account now and be part of our community!