Fehlerhafte Erkennung von Links im Chat - in Bearbeitung

Du hast Fragen, Probleme, Bugs oder dergleichen. Bitte hier hinein.
Antworten
Snrk
Drachentöter
Drachentöter
Beiträge: 1994
Registriert: Sa 22. Dez 2012, 12:00
Kontaktdaten:

Benutzeravatar

Fehlerhafte Erkennung von Links im Chat - in Bearbeitung

Beitrag von Snrk »

Nabend,

Ich habe heute versucht im Chat folgende URL zu posten: https://truename.domains

Leider ist es nicht möglich diese anzuklicken, sodass ein Fenster im Browser mit dieser URL geöffnet wird. Bei anderen Links, wie z.B. https://www.sgpggb.de funktioniert dies wie erwartet und wie es jeder von euch wahrscheinlich auch gewohnt ist.

Ich dachte zunächst dies wäre ein Client-seitiges Problem, daher habe ich mich im Bug Tracker von Mojang umgeschaut, um zu erfahren ob andere dieses Problem ebenfalls haben. Im Singleplayer funktionieren Links im Chat überhaupt nicht, daher war ich mir nicht sicher, ob es wirklich ein Problem des Clients sein würde. Ich bin auf den folgenden Kommentar bei Bug #MC-30864 gestoßen:
Just some information about this issue. In 1.7, links are not parsed inside normal text sent by the server. To have clickable links, the server has to sent them in special way so they can be clicked on the client. So instead of sending:

Code: Alles auswählen

{"text": "http://link"}
the server needs to send

Code: Alles auswählen

{"text": "http://link", "clickEvent": {"action": "open_url", "value": "http://link"}}
I'm not sure this will be changed. But it should be easy to have a bukkit plugin in the future that does this.
Um zu erfahren, was der Server sendet, wenn man die oben stehenden URLs eingibt, habe ich mit einem Proxy (GitHub) einige Pakete abgefangen, um deren Inhalt offen zu legen und zu sehen, ob das im Kommentar erwähnte Format tatsächlich verwendet wird und die Ursache für das Problem sein könnte. Hier die jeweiligen relevanten Ausschnitte:

Code: Alles auswählen

(Client) chat: { "message":"/silent https://www.sgpggb.de" }
(Server) chat: {
  "message": {
    "extra": [
      {
        "color": "aqua",
        "clickEvent": {
          "action": "open_url",
          "value": "https://www.sgpggb.de"
        },
        "text": "https://www.sgpggb.de"
      }
    ]
  }
}

Code: Alles auswählen

(Client) chat: { "message":"/silent https://truename.domains" }
(Server) chat: {
  "message": {
    "extra": [
      {
        "color": "aqua",
        "text": "https://truename.domains"
      }
    ]
  }
}
Wie man sehen kann, wird für https://truename.domains kein clickEvent übermittelt um die URL zu öffnen. Demnach muss irgendwas auf dem Server falsch laufen, dass dieses Verhalten verursacht und diese URL nicht als solche erkennt. Da ich weder Zugriff auf den Server habe, noch genau weiß, welche Plugins verwendet werden, würde ich gerne fragen, ob sich jemand vom (Entwicklungs-)Team diese Sache mal anschauen könnte.

Es wäre schade, wenn dieser Bug bestehen bleiben müsste, da es sonst praktisch unmöglich wäre einen solchen Link im Chat zu posten, um anderen Spielern die Möglichkeit zu geben, schnell eine bestimmte Webseite aufzurufen. Wenn der Link nicht anklickbar wäre, könnte man es gleich sein lassen ihn in den Chat zu schreiben. Niemand würde ihn abtippen, vor allem nicht, wenn hinter der Domain noch ein längerer Pfad stünde. Das mag vielleicht nicht sehr wichtig erscheinen, aber ich habe etwas in Planung, das sehr davon profitieren würde, diese Art von Domains zu verwenden (die, mit längeren TLDs, wie .domains, scheinen alle nicht zu funktionieren. Und nein, ich möchte nicht für einen anderen Server werben ^^).

Falls ihr zu dem Ergebnis kommen solltet, dass ein serverfremdes Plugin für diese Verhalten verantwortlich ist, dann wäre ich dankbar, wenn ihr den Namen dieses Plugins nennen könntet. Dann könnte ich nämlich diesen Bug melden, in der Hoffnung, dass er gefixt wird. Ich hoffe auf eure Unterstützung.

- Snrk

Vollständige Ausgabe
Die vollständige Ausgabe des Proxys sieht so aus:

Code: Alles auswählen

(Client) chat: {"message":"/silent https://www.sgpggb.de"}
(Server) chat: {"message":"{\"extra\":[{\"color\":\"dark_gray\",\"text\":\"M\"},{\"text\":\"\"},{\"color\":\"yellow\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/ch silent\"},\"text\":\"[silent]\"},{\"color\":\"yellow\",\"text\":\"\"},{\"color\":\"gray\",\"text\":\"[Phönix]\"},{\"color\":\"green\",\"text\":\"[Jumper]\"},{\"color\":\"green\",\"clickEvent\":{\"action\":\"suggest_command\",\"value\":\"/m Snrk \"},\"text\":\"Snrk: \"},{\"color\":\"aqua\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.sgpggb.de\"},\"text\":\"https://www.sgpggb.de\"},{\"color\":\"aqua\",\"text\":\"\"}],\"text\":\"\"}","position":1,"sender":"00000000-0000-0000-0000-000000000000"}

(Client) chat: {"message":"/silent https://truename.domains"}
(Server) chat: {"message":"{\"extra\":[{\"color\":\"dark_gray\",\"text\":\"M\"},{\"text\":\"\"},{\"color\":\"yellow\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/ch silent\"},\"text\":\"[silent]\"},{\"color\":\"yellow\",\"text\":\"\"},{\"color\":\"gray\",\"text\":\"[Phönix]\"},{\"color\":\"green\",\"text\":\"[Jumper]\"},{\"color\":\"green\",\"clickEvent\":{\"action\":\"suggest_command\",\"value\":\"/m Snrk \"},\"text\":\"Snrk: \"},{\"color\":\"aqua\",\"text\":\"https://truename.domains\"}],\"text\":\"\"}","position":1,"sender":"00000000-0000-0000-0000-000000000000"}
Proxy-Konfiguration
Hier die für den Proxy verwendete Konfiguration, falls das jemandem helfen sollte:

Code: Alles auswählen

{
    "connectivity": {
        "ports": {
            "minecraft": 25565,
            "web": 8000
        },
        "server": {
            "port": 25565,
            "ip": "sgpggb.de"
        }
    },
    "openBrowserOnStart": true,
    "password": "",
    "MCversion": "1.16.5"
}
Viel Kälte ist unter den Menschen, weil wir nicht wagen, uns so herzlich zu geben, wie wir sind.
Albert Schweitzer

Erntemaschine300
Admin
Admin
Beiträge: 4354
Registriert: Di 11. Dez 2012, 17:08
Wohnort: Köln

Re: Fehlerhafte Erkennung von Links im Chat

Beitrag von Erntemaschine300 »

Es scheint mir so, als wenn alle TLD's die länger als 4 Zeichen sind, kein Clickevent bekommen.
Wir schauen uns das mal an.

Antworten