• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

PlugIn 1.15 API InventoryClickEvent

Freestyler431

Minecrafter
Registriert
21 Oktober 2020
Beiträge
9
Diamanten
51
Ich möchte ein normales InventoryClickEvent erstellen, aber ich programmiere aber das erste mal mit der 1.15 API ich habe es so versucht wie mein kumpel es gesagt hat, aber es funktioniert nicht. Hier der Code:

Java:
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;

public class onclicklistener implements Listener {
    @EventHandler
    @Deprecated
    public void onClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        if(event.getView().getTitle().equalsIgnoreCase("§9Navigator")) {
            event.setCancelled(true);
            if(event.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§aCityBuild")) {
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "send " + player.getName() + "CB-1");
                player.closeInventory();
            }
        }
    }
}

Frue mich über jede Antwort & Hilfe
 
Zuletzt bearbeitet von einem Moderator:

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
386
Diamanten
127
Okay, einige Anmerkungen dazu:
  1. Warum annotierst du deine Methode als Deprecated?
  2. "send <name> <server>" ist ein Bungee-Befehl. Den auf dem Bukkit-Server ausführen wird nichts bringen.
  3. Du hast da ein Leerzeichen vor CB-1 vergessen
  4. Wenn Components zum Erstellen der Items und des Inventars benutzt wurde, läufen deine Abfragen bzgl. Titel und Display Namen ins leere.
 

ILoveJava

Minecrafter
Registriert
21 März 2021
Beiträge
7
Diamanten
52
Okay, ich sehe, das du versuchst einen Bungeecord Server über einen Spigot Server anzusprechen, dazu musst du eine Messagepipe zwischen Bungeecord und Spigot erstellen dies machst du folgend:

Zu erst schreibst du folgendes in deine Main Klass unter onEnable:

Java:
//Erstellt eine Ausgehende Verbindung zum BungeeCord
getServer().getMessenger().registerOutgoingPluginChannel(Utils.getInstance(), "BungeeCord");

Als nächstes erstellst du eine Funktion die folgendes beinhaltet:

Java:
/*
* Sendet einen Spieler via @Bungeecord auf einen anderen Server
* @param p(@Player)
* @parma server(@String-> Bungeecord Config name des Server)
* @return @NULL
* @see https://www.spigotmc.org/wiki/sending-a-custom-plugin-message-from-bungeecord/
*/
public Send(Player p, String server) {
        ByteArrayDataOutput out = ByteStreams.newDataOutput();
        out.writeUTF("Connect");
        out.writeUTF(Server);
        p.sendPluginMessage(Main Klasse(Instance), "BungeeCord",out.toByteArray());
    }
 
Zuletzt bearbeitet von einem Moderator:

TrinityX

Redstoneengineer
Registriert
17 Mai 2020
Beiträge
46
Alter
18
Diamanten
87
Minecraft
NichtTrinity
Moin @Freestyler431

Genaures zum Plugin Messaging Channel findest du hier: https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/

Aber nun zu ein paar anderen Dingen.
1. Java Naming Conventions -> https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html
2. Wie vorher bereits schon mal gefragt, wieso ist deine Methode mit "deprecated" annotiert?
3. Die Methode registerOutgoingPluginChannel nimmt als ersten Parameter eine Plugin Instanz.

Und zum Schluss noch eine Frage, wie viel Java Erfahrung hast du? Mir persönlich sieht das aus, als stehst du noch am Anfang.

Ich weiß, dass die wenigstens Leute sowas hören wollen, jedoch wird es dir enorm helfen und eine Menge Frustration ersparen wenn du dir erst Zeit nimmst dich mehr mit der Programmiersprache selbst beschäftigst und verinnerlichst und anschließend dein erstes richtiges Projekt beginnst. Es ist auch gar nicht böse gemeint oder ähnliches, wir alle mussten auch schließlich klein anfangen.

Liebe Grüße,
Trinity :)
 
Zuletzt bearbeitet:
Oben