[Packet] TabComplete

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

[Packet] TabComplete

Beitragvon Raytex » Fr 2. Okt 2015, 21:42

Hallo liebe Community,
ich habe folgendes Problem: Für eins meiner Plugins wofür ich keine Libs und APIs verwenden möchte möchte ich das TabComplete Packet abfangen und "blockieren". Sprich dass die Plugins nicht mehr über /?[TAB] eingesehen werden können. Allerdings verstehe ich die Packets nicht wirklich. Ich habe mir dazu schon mehrere Tutorials angesehen. Könnte mir bitte jemand einen Code Schnipsel mit den folgenden Funktion schicken?

Funktionen:
- Tab Complete abfangen
- blockieren / abändern
- Command whitelist (Bei diesen Befehlen funktioniert weiterhin Tab Complete)

Vielen Dank
Raytex
Benutzeravatar
Raytex
 
Beiträge: 13
Registriert: Mi 20. Aug 2014, 15:49

Re: [Packet] TabComplete

Beitragvon Jofkos » Fr 2. Okt 2015, 21:53

Also wie du Packete abfangen kannst, solltest du irgendwo in dem "1.8 Nicken Thread"
finden (Seite 7 oder so). Dann checkst du halt ob das Packet eine PacketPlayOutTabCompletition ist. Wenn's eins ist veränderst du es halt nach deinen Bedürfnissen und gibts es gar nicht erst weiter.

Probiers doch mal wenigstens selber, weiterhelfen können wir dir danach immernoch, sollte es nicht so klappen wie du es willst.
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: [Packet] TabComplete

Beitragvon Raytex » Fr 2. Okt 2015, 22:00

Vielen Dank erstmal ich probiere schon seit 2 Stunden aber könntest du mir bitte mal den thread schicken?
Benutzeravatar
Raytex
 
Beiträge: 13
Registriert: Mi 20. Aug 2014, 15:49

Re: [Packet] TabComplete

Beitragvon Jofkos » Sa 3. Okt 2015, 00:52

Hier: viewtopic.php?f=15&t=2387&start=60#p17849
Bzw. mit Erklärungen hier: http://www.postcrafter.de/viewtopic.php ... 424#p17424 (Der Code hier ist jedoch für eingehende Packets)

Zudem könnte das hier, dir eventuell noch helfen:
Code: Alles auswählen
  1.     public void a(PacketPlayInTabComplete packetplayintabcomplete) {
  2.         PlayerConnectionUtils.ensureMainThread(packetplayintabcomplete, this, this.player.u());
  3.         // CraftBukkit start
  4.         if (chatSpamField.addAndGet(this, 10) > 500 && !this.minecraftServer.getPlayerList().isOp(this.player.getProfile())) {
  5.             this.disconnect("disconnect.spam");
  6.             return;
  7.         }
  8.         // CraftBukkit end
  9.         ArrayList arraylist = Lists.newArrayList();
  10.         Iterator iterator = this.minecraftServer.tabCompleteCommand(this.player, packetplayintabcomplete.a(), packetplayintabcomplete.b()).iterator();
  11.         while (iterator.hasNext()) {
  12.             String s = (String) iterator.next();
  13.             arraylist.add(s);
  14.         }
  15.         this.player.playerConnection.sendPacket(new PacketPlayOutTabComplete((String[]) arraylist.toArray(new String[arraylist.size()])));
  16.     }
So wird von Minecraft die Tab-Completition gehandelt. (Die MinecraftServer#tabCompleteCommand-Methode gibt die TabCompletitions entweder an die CommandMap weiter, oder, falls die Nachricht nicht mit einem Slash beginnt, führt das PlayerChatTabCompleteEvent aus)
Das beste ist vielleicht, du fängst direkt die PlayInTabComplete Packets ab, und reagierst dann selber mit den PacketPlayOutTabComplete. Das PlayOutPacket verändern ist natürlich auch eine Option.
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: [Packet] TabComplete

Beitragvon LetsPeee » Sa 23. Apr 2016, 21:53

Hey,

Ich habe eine Frage diesbezüglich: "Wie kann ich etwas derartiges in mein Nick plugin einbauen, ohne gleich die gesamte spigot zu patchen, oder den Namen serverseitig zu ändern, da ja p.getName() verwendet wird?"
Benutzeravatar
LetsPeee
 
Beiträge: 6
Registriert: Mo 16. Mär 2015, 18:10


Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 22 Gäste