Beiträge von Floppy012

    Sieht verdammt stark danach aus als wäre con in MySQL null. Eine Ursache könnte sein, dass du connect() nicht aufrufst oder, dass connect() nicht verbinden kann, einen Fehler schmeißt und der Programmablauf dadurch nicht unterbrochen wird, weil du die exception abfängst und lediglich den stacktrace ausgibst.


    Am besten, du stellst sicher, dass überhaupt eine DB verbindung aufgebaut ist, bevor du den Server weiter starten lässt:


    Java
    public static void connect() throws SQLException {
    if (!isConnected()) {
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Waterfight?autoReconnect=true", "admin", "4iypBw2FdhPaFLTk");
    System.out.println("MySQL Verbunden!");
    }
    }


    Der Fehler sagt nicht zwangsweise aus, dass das Passwort selber das Problem ist. Eher, dass die Authentifizierung am Server mittels Passwort fehlgeschlagen ist. Das kann unter Anderem eine IP-Restriction als Ursache haben. Je nach dem wie Adminer auf den PG-Container zugreift, lässt er das durch (z.B. via Socket). Schau mal mit Adminer ob admin auf irgend eine IP begrenzt ist (127.0.0.1?). Falls ja, musst du dort die IP von der Bridge die deinen Host mit den Docker containern verbindet eintragen (ist standardmäßig irgendwas im 172er subnetz).

    ImageIO.read kann null zurückgeben (Docs). Dies passiert, da ImageIO nicht weiß, wie es den Datenstream dekodieren soll, da ImageIO sich den MIME Type anscheinend über die URL holt und nicht über Header o.Ä..


    Versuchs mal so im JoinMeCommand:

    Java
    imageToSend = ImageIO.read(new URL("http://cravatar.eu/avatar/" + p.getName() + "/8.png"));


    Zusätzlich solltest du einen null check einbauen, damit solche Exceptions nicht mehr vorkommen.


    Edit:

    Ich bin mir gerade nicht sicher ob BungeeCord commands async ausführt. Falls das nicht der Fall sein sollte, solltest du den Abruf des Bildes asynchron machen, da es ansonsten zu BungeeCord-Seitigen lags kommen könnte (nur BungeeCord kram betreffend).

    Sind denn die Koordinaten richtig? Pack ein paar debug nachrichten rein und schau was er genau macht. Guck in der Client log ob nicht eventuell ein Fehler beim Laden der Skins für die Skulls auftritt.


    Wir können dir schlecht helfen ohne, dass wir Informationen haben was genau passiert und was nicht.

    zuerst die Vm's runterfahren (qm shutdown <vmid>)

    Die VMs und Container brauchst nicht einzeln runterzufahren. Sobald der Host herunterfährt und der Daemon gestoppt wird, bekommen alle VMs und CTs ein shutdown signal. Der Daemon blockiert hierbei so lange das herunterfahren des Hosts, bis die VMs und CTs entweder alle von alleine gestoppt sind oder, falls konfiguriert, die maximale Shutdown-Time überschritten wurde, in diesem Fall würde der Daemon dann die VM killen was zu Datenverlust führen könnte.


    Mein PVE hängt an einer USV und bei einem Stromausfall wird einfach nur ein Shutdown aufm Host ausgeführt und alle Maschinen (Windows und Linux) fahren ordentlich herunter.


    Der Timeout lässt sich über *VM auswählen* -> Options -> Start/Shutdown Order -> Shutdown Timeout konfigurieren

    Ich finde die Idee eigentlich recht gut, jedoch für den Anfang zu groß aufgezogen. Du suchst in vielen Bereichen Leute, die zertifizierte Abschlüsse vorweisen können. Solche Leute findest Du nicht so einfach und erst recht nicht ehrenamtlich. Zusätzlich müssen diese Leute gut mit den Problemen anderer umgehen können. Das heißt z.B., dass man nicht genervt auf eine dumme Frage reagiert, etc.


    Zusätzlich muss so etwas beworben werden, dazu reicht es nicht die ganze Geschichte in ein paar Internetforen bekannt zu machen. An dieser Stelle würde ich versuchen Kooperationen mit Ausbildungsstätten und Berufsschulen einzugehen. Quasi an den Stellen an denen sich viele Einsteiger befinden.


    Das ganze muss jedoch professionell durchgeführt werden mit greifbaren Personen und idealerweise einem Verein oder einer gemeinnützigen Organisation, mit Regeln an die sich gehalten werden muss (auch seitens der Administration/Vereinsleitung). Dein Ziel sind überwiegend minderjährige, die auch gerne mal in einer Beratung Informationen preisgeben, die vielleicht nicht so direkt für fremde Ohren/Augen gedacht sind. In dem Fall sind dinge wie Schweigepflicht erforderlich. Und das ist erst die oberste Spitze des Eisberges.


    Ich habe mal ein bisschen durchs Forum geschaut und mir sind dort und auch hier in Deinen Beiträten so einige Rechtschreib- und Grammatikfehler aufgefallen (Bsp.: an einer Stelle schreibst du "Netiquette" an der anderen Stelle "Netikette" [ersteres ist korrekt] oder "... dem orangen Bereich" [so geschrieben würde sich das auf die Frucht beziehen] -> "... dem orangenen Bereich" [jetzt ist's die Farbe]).


    Wenn Du selber Probleme mit Rechtschreibung und Grammatik hast (LRS o.Ä.), dann solltest Du auf jeden Fall vorher jemanden drüber schauen lassen, bevor Du Dinge veröffentlichst.


    Also ich würde in Deinem Fall erst mal das Angebot verkleinern. Dann mit einer Vereinsgründung beschäftigen (was braucht ein Verein, was kostet es einen Verein zu Gründen, was sind die Pflichten, usw.), dann Verträge wie z.B. eine NDA anwaltlich aufsetzen lassen (die Templates aus'm Internet taugen für Deinen Fall nichts).


    Grüße

    Liegt vermutlich daran, dass unterschiedliche Cassandra Libs verwendet werden, die beide geshaded werden.


    Wenn ein Plugin eine Klasse importiert, dann sucht die Bukkit-API nach dieser Klasse. Hat es die Klasse gefunden, wird sie gecached. Wenn man jetzt zwei unterschiedliche Versionen in zwei unterschiedlichen Plugins nutzt und beide ihre Version shaden, dann kann es zu einem solchen Fehler kommen.


    An dieser Stelle wäre es gut, wenn man in beiden Plugins die gleiche Version der lib shaded.

    Ups. Ja 1.8 ist im Gegensatz zur aktuellen API wesentlich schlechter. Aber gut. Ich kann dir leider nicht direkt helfen, da ich seit ca 5 Jahren nicht mehr mit ProtocolLib gearbeitet habe. Aber der Grundgedanke ist der, dass du das Packet abfängst deinen kram filterst und dann das gleiche Packet mit deinen modifizierten Werten schickst.


    Irgendwie so:



    Braucht noch finetuning und da dieses packet gespammed werden kann, sollte man z.B. noch perfomance tuning bei den listen oben machen (Arrays.asList() könnte durch ne for loop ersetzt werden).

    Deine Frage ist wenig aussagekräftig. Ich vermute mal, dass du die Nachrichten nur dann an einen Spieler schicken möchtest, wenn er dein Netzwerk betritt und nicht dann wenn er etwa von einem Minigame Server in die Lobby wechselt.


    Das Problem ist, dass der Minecraft-Server nicht weiß, dass der Spieler schon irgendwo anders war. Die einfachste Möglichkeit wäre den Kram einfach in ein BungeeCord Plugin zu packen und du wärst fertig. Sollte das aus irgendeinem Grund nicht möglich sein, könntest du über deine CloudAPI abfragen ob der Spieler gerade erst dem Netzwerk beigetreten ist.

    Wenn ich mich nicht irre, könntest du die Spielernamen auch einfach über das TabCompleteEvent filtern. Auf Packetbasis ist das dann schon aufwändiger. Die Tab completions werden alle in einem packet geschickt, du müsstest den PacketBuffer auslesen, dann entsprechende Namen filtern/ersetzen und dann wieder in einen neuen PacketBuffer schreiben, da du z.B. nicht einfach mitten in einem Buffer was austauschen kannst.

    Dazu müsste man jetzt mal die Tabellenstruktur sehen. Kannst diesbezüglich mal das Schema hier posten.


    Beheben kann man sowas indem man prüft ob eine Tabelle die entsprechende Spalte besitzt. Wobei das bad practice ist. SQL Tabellen-Strukturen sollten statisch aufgebaut sein und nicht durch code dynamisch verändert werden.