Irgendwo in der Welt - in der Region, in der du beim joinen spawnst - befindet sich ein Entity (Ein Monster, ein Tier, ein Spieler usw.) welches einen zu langen Namen besitzt (21 Zeichen, Minecraft erlaubt aber nur 16). Welches Entity genau das ist, geht aus der Fehlermeldung leider nicht hervor. Eventuell einmal alle Mobs auf der Map killen. Oder überprüfen ob dein Spielername zu lang ist.
Wenn du es Objektorientiert machen möchtest, solltest du zunächst ein Objekt von deiner ersten Klasse in der zweiten Klasse erzeugen und dann vom Objekt auf das Array zugreifen. Vielleicht hilft dieses Beispiel dir weiter:
Ganz wichtig ist das Schlüsselwort public beim Array! Sonst bekommst du leicht Probleme beim direkten Zugriff. Natürlich kann das ganze auch über Getter und Setter gelöst werden, ist aber aus meiner Sicht hier zu umständlich.
class BeispielKlasse2 {
void meineMethode(){
BeispielKlasse1 meinObjekt = new BeispielKlasse1();
irgendwas = meinObjekt.array[0]; // Lesender Zugriff auf das Array
}
}
class BeispielKlasse1{
public BeispielKlasse1(){} // Ein trauriger, leerer Konstruktor
public int[] array = new int[10]; // Ein Zahlen-Array mit 10 Feldern
}
Notch hat die Entwicklung von Minecraft sowohl in der Alpha als auch in der Beta Phase geleitet. Jeb ist erst seit 2011 der leitende Entwickler von Minecraft (http://minecraft-de.gamepedia.com/Markus_Persson)
Deswegen hat Notch definitiv mehr getan als "nur" die Mobs - so ziemlich der gesamte Kern des Spiels dürfte auch heute noch von ihm sein.
"Mehr Kerne zuweisen". Ungefähr so, als würdest du deinem PC befehlen, mehr Bananen zu essen.
Was du möchtest, ist Multithreading. Dein Betriebssystem kann Threads auf unterschiedliche Kerne legen um eine parallele Verarbeitung zu ermöglichen. Minecraft selbst unterstützt leider kaum Multithreading. OptiFine versucht dies zu optimieren, von daher würde ich sagen, du hast bereits alles getan um Multithreading zu ermöglichen. Wie diese Möglichkeiten jetzt genutzt werden, hängt von den Anwendungen ab.
Zudem muss Multithreading eine Anwendung auch nicht unbedingt beschleunigen. Wenn zum Beispiel Threads ständig aufeinander warten müssen, kann sich dies sogar negativ auf die Performance auswirken.
Bei der Hardware die du daruntergeschrieben hast, wundert mich allerdings, dass die Performance so einbricht. Mit meiner 780 kriegt die Grafikkarte auch bei SEUS Ultra keinerlei Probleme. Ich denke du solltest den Fehler an anderer Stelle suchen, z.B: Energiespareinstellungen? OptiFine Einstellungen?
Ich schreibe zurzeit auch an einem Blog-Post über dieses - gut bekannte - Thema. Der Post ist noch nicht ganz fertig, aber eventuell hilft er ja trotzdem:
http://aknm-craft.de/blog/?p=19
Ich kenne mich zwar nicht mit RMI aus, aber die Fehlermeldung besagt eindeutig, dass der SecurityManager des Clients die Verbindung ablehnt. Eventuell mal den SecurityManager zwingend überschreiben und nicht nur, wenn er null ist?
Eine Error Message. Ja, und welche?
Optifine nochmal neu installieren? Fehlermeldung?!?
Den gleichen Fehler erst letze Woche auf einem Firmenrechner gehabt :)
In den Umgebungsvariablen ist JAVA_HOME nicht gesetzt, bzw es fehlt der Pfad zu Java in der Path Umgebungsvariable. Kleines Youtube Video dazu:
https://www.youtube.com/watch?v=us6ChVrXQf0
Da Java keine Skriptsprache ist, gibt es auch keinen Minecraft/Java "Scripter". Abgesehen davon, gibt es keine (wirklich) guten Programmierer, die kostenlos für Kiddies arbeiten.
Aus meiner Sicht (Bin selber kein Minecraft-Client-Modder, nur Server) könnte das etwas schwierig werden. Minecraft verwendet http://www.lwjgl.org/ zum rendern. Um das Problem besser zu verstehen, habe ich mich ganz kurz in LWGL/OpenGL eingelesen. Ich habe das ganze so verstanden:
LWJGL unterstützt verschiedene OpenGL Versionen. Die Endanwendung (Minecraft) kann entscheiden, welche OpenGL Version von LWJGL verwendet werden soll. Minecraft verwendet offensichtlich bisher eine sehr alte OpenGL Version mit wenig Features. Die Entwickler wollen dies, laut deiner Meldung, wohl bald ändern - sie möchten mehr Funktionen nutzen, daher erhöhen sie die Mindestversion von OpenGL.
Im Prinzip musst du also diese Änderung, wenn Mojang sie gemacht hat, rückgängig machen. Die Version von OpenGL definiert sich durch die Imports im Quellcode
Beispiel: Wenn eine Anwendung OpenGL 11 verwenden will, nutzt sie den folgenden Import:
import static org.lwjgl.opengl.GL11.*;
Wenn du jetzt aber eine andere Version von OpenGL haben willst, muss nur dieser Import (auf eine ältere Version) geändert werden. Das Problem was dabei aber sicher auftritt, ist dass dann verschiedene Techniken die Minecraft zum rendern verwendet nicht mehr funktionieren werden, denn diese Techniken sind schließlich auf die importierte OpenGL Version ausgerichtet. Einfach mal die OpenGL Version ändern, kann das natürlich zerstören. Eventuell funktionieren manche Methoden nicht mehr (Minecraft kompiliert nicht oder crasht), oder es treten Bildfehler auf, usw.... Das müsstest du dann natürlich alles per Hand fixen. Und dafür muss man sich mit der Renderengine von Minecraft schon verdammt gut auskennen.
So habe ich das ganze Problem verstanden. Ich bin jedoch kein Experte für OpenGL oder LWJGL und daher sind alle Angaben ohne Gewähr :)
MFG Nummer378
Ich kenne zwar weder so ein Plugin noch Varo 2, aber ich kann mir durchaus vorstellen wie das ganze funktioniert.
Zuallererst gibt es ein Plugin auf dem Minecraft Server. Dieses horcht über einen Event-Listener, wann ein Spieler den Server betritt. Nachdem dies passiert ist, gibt das Plugin die Information an einen Skype-Bot weiter (Der auf irgendeinem Server läuft, eventuell sogar ein in direkt ins Bukkit Plugin integrierter Skype Bot). Der Bot schreibt daraufhin eine Nachricht in eine Gruppe. Simples Prinzip. Das einzig komplizierte daran ist wohl der Skype Bot selbst, denn so ein Bot ist nicht ganz leicht zu programmieren (Eine Grundvorraussetzung ist zum Beispiel eine exakte Kenntnis des Skype-Datentransferprotokolls).
Kurzes googeln ergibt aber, dass es ganz offensichtlich schon eine Menge Skype Bots (z..B der hier http://sourceforge.net/projects/skype-bot/) in verschiedenen Programmiersprachen gibt. Von daher kann man sich die Arbeit sparen und einfach so einen Bot in sein Plugin reinkopieren.
MFG Nummer378
Du könntest versuchen, das öffnen der Truhe bereits bei einem früheren Event abzufangen - Hier wäre das zum Beispiel das PlayerInteractEvent. Das PlayerInteractEvent wird aufgerufen, wenn ein Spieler Links- oder Rechtsklickt. Hier müsstest du überprüfen, ob der entsprechende Block eine Truhe (oder ein anderer Block mit Inventar) ist und dann einfach das Event canceln.
MFG Nummer378
Könntest du den Client-Crash mal senden? Der könnte Aufschluss über das Problem geben.
Serverhoster kontaktieren.
Welche Java Version ist installiert?
Welche Fehlermeldung taucht auf?
Zu 100% kann dir das niemand sagen, da immer etwas schiefgehen kann. In wirklich fast allen Fällen (Sagen wir, ungefähr 99,9%) funktioniert es aber. Minecraft besitzt einen internen Konvertierer, der auch Serverwelten übersetzt - für die 1.8 ist dies aber, nach meinem Wissen, nicht nötig. Ich habe meine Server-Welt ebenfalls nach 1.8 geportet und es läuft alles wunderbar. In neuen Chunks, die in der 1.8 generiert werden, werden ebenfalls die neuen Biome sowie die neuen Strukturen generiert.
Also lautet meine Antwort auf beide Fragen Ja :)
Ein vorheriges Backup der Welt ist trotzdem immer eine gute Idee.
PS: Die Formulierung "in die minecraft_server.exe" einfügen, ist irreführend. In die .exe wird nix eingefügt :) Du ersetzt lediglich die alte server.exe/jar durch eine neue :) Der Rest bleibt wie es ist.
MFG Nummer378
Wie wäre es mit einem vollständigen Launcher Log?
Jop kann man. In der spigot.yml
sample-count: 12
auf 0 setzen.
Kleiner Auszug aus dem Spigot Wiki:
Description: Controls the amount of (randomly chosen) sample players shown when hovering over the player count in the client's server list.
Wenn Heap und Stack wirklich mit der angegeben Größe von 2 GB erzeugt wurden, kann Java nicht mehr verbrauchen - Zumindest ist das bei allen mir bekannten Implementationen so. Eventuell ein Problem mit der Umrechnung von Bytes in Gigabytes? Ansonsten fällt mir auch nicht mehr viel dazu sein...
Das kommt mit den neuen Java Versionen (Java 8, denke ich). Viele Flags, also Kommandozeilenparameter die in Java 7 oft verwendet wurden, um die JVM ein bisschen zu optimieren, sind jetzt veraltet und sollten in Java 8 nicht mehr verwendet werden. Nimm einfach die entsprechenden Parameter weg, oder lass es, denn wie PerfectMuffin schon sagte: Das ist keine Fehlermeldung, nur eine Warnung.