Hallo,
ich benutze derzeit einen Thread, zusammen mit einer ListView, um eine Liste von Spielern aus dem Level eines Craftbukkit-Servers auszulesen (Port von BukkitUI zu C#).
Es tritt, erst wenn ich aber den Control sehen will, eine IllegalArgumentException in meiner ListView-Control auf, die BukkitUI dann einfach abstürzen lassen.
Ja, wenn ich den Code komplett aus-kommentiere, kann ich mir die Control wieder ansehen.
Hier ist der Code den ich benutze, vielleicht sagt es einem von euch ja mehr über den Fehler als mir.
Hier ist die Fehlermeldung, die ich bekomme:
Ich bedanke mich schon mal im Voraus für eure Hilfe
P.S.: Ich habe keine Stacktrace, denn der Fehler lässt sich nicht catchen.
ich benutze derzeit einen Thread, zusammen mit einer ListView, um eine Liste von Spielern aus dem Level eines Craftbukkit-Servers auszulesen (Port von BukkitUI zu C#).
Es tritt, erst wenn ich aber den Control sehen will, eine IllegalArgumentException in meiner ListView-Control auf, die BukkitUI dann einfach abstürzen lassen.
Ja, wenn ich den Code komplett aus-kommentiere, kann ich mir die Control wieder ansehen.
Hier ist der Code den ich benutze, vielleicht sagt es einem von euch ja mehr über den Fehler als mir.
C#-Quellcode
- private static String getHelmUrl(String playerName) {
- return "https://minotar.net/helm/" + playerName + "/32.png";
- }
- public static void loadServerPlayers(ListView lstView, Form1 instance) {
- ImageList helmList = new ImageList();
- helmList.ImageSize = new Size(32, 32);
- lstView.SmallImageList = helmList;
- new Thread(() => {
- helmIdx = 0;
- while (runManagement) {
- try {
- instance.Invoke((MethodInvoker)delegate {
- foreach (String player in Directory.GetFiles(Path.Combine(Properties.Settings.Default.bukkitDir, serverProps.levelName, "players"))) {
- if (player.ToLower().EndsWith(".dat")) {
- String name = Path.GetFileNameWithoutExtension(player);
- // Download player's helm and put into helmList
- using (WebClient wc = new WebClient()) {
- byte[] helmData;
- helmData = wc.DownloadData(getHelmUrl(name));
- using (MemoryStream memStream = new MemoryStream(helmData))
- using (Bitmap bmp = new Bitmap(memStream)) {
- helmList.Images.Add(bmp);
- }
- wc.Dispose();
- }
- // Add player name and helm to lstView
- bool add = true;
- foreach (ListViewItem item in lstView.Items) {
- if (item.Name.Equals(player))
- add = false;
- }
- if (add) {
- lstView.Items.Add(name).ImageIndex = helmIdx;
- helmIdx++;
- }
- }
- }
- });
- } catch (Exception ex) {
- MessageBox.Show(instance, "An error occurred while loading server players: " + ex.InnerException + "\n"
- + "Stack trace: " + ex.StackTrace + "\n\n"
- + "Please report this error to the developer!", "Error Occurred While Loading Server Players!",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- Thread.Sleep(2500); // Sleep for 2.5 seconds to prevent any weird overflows.
- }
- }).Start();
- }
Hier ist die Fehlermeldung, die ich bekomme:
Ich bedanke mich schon mal im Voraus für eure Hilfe
P.S.: Ich habe keine Stacktrace, denn der Fehler lässt sich nicht catchen.
"Nichts ist unendlich, bis auf die menschliche Dummheit" - Albert Einstein
"Man sollte nicht alles vertrauen, was im Netz steht" - Abraham Lincoln
"Man sollte nicht alles vertrauen, was im Netz steht" - Abraham Lincoln