Wieso ist Events falsch?

1 Antwort

'new Events(this)' ist vollkommen falsch. Es muss 'getServer().getPluginManager().registerEvents(this, this)' heißen.

Bzw statt dem ersten this 'new Events()', wenn die Klasse mit den Events so heißt.

0

Was habe ich bei diesen Plugin falsch gecodet?

Ich habe gerade ein Wartungsplugin gecodet und die Commands die ich programmiert habe funktionieren nicht wo liegt der Fehler ? Code:

package de.pxlbst.wartungsplugin.main;

import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result; import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{

    boolean wartung = false;
   
    @Override
    public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
           
            wartung = getConfig().get("WartungsPlugin.status.status") != null ? getConfig().getBoolean("WartungPlugin.status.status") : false;
            
            initConfig(); 
        
    }
    
    private void initConfig(){
        saveConfig();
        
        this.getConfig().options().header("Wartungs - Plugin - by PXLBST - Bitte passe auf Groß- und Kleinschreibung, sowie auf Leerzeichen auf!");
        this.getConfig().addDefault("WartungsPlugin.messages.kick", "§cDer Server ist im WartungsModus!");
        this.getConfig().addDefault("WartungsPlugin.motd.motd", "§cDer Server ist im WartungsModus!");
        this.getConfig().addDefault("WartungsPlugin.messages.on", "§aDu hast den Wartungs-Modus aktiviert!");
        this.getConfig().addDefault("WartungsPlugin.messages.off", "§c§4Du hast den Wartungs-Modus deaktiviert!");
        this.getConfig().addDefault("WartungPlugin.status.status", false);
        this.getConfig().options().copyDefaults(true);
        this.saveConfig();
        System.out.println("[WartungsPlugin] Succesfully (re)loaded config.yml!");

    }
   
    @EventHandler
    public void onLogin(AsyncPlayerPreLoginEvent event){
     if(wartung){
             
             
             for(OfflinePlayer op : Bukkit.getWhitelistedPlayers()){
                     if(op.getName().equalsIgnoreCase(event.getName())){
                             return;
                     }
             }
             
             if (!Bukkit.getOfflinePlayer(event.getName()).isOp()) {
             event.disallow(Result.KICK_OTHER, this.getConfig().getString("WartungsPlugin.messages.kick"));
             }
     }
    }
   
    @EventHandler
    public void onPing(ServerListPingEvent event){
     if(wartung){
             event.setMaxPlayers(0);
             event.setMotd(this.getConfig().getString("WartungsPlugin.motd.motd"));
     }
    }
   
   
    @Override
    public boolean onCommand(CommandSender sender, Command command
...zur Frage

Wie kann ich somit jemandem eine Anfrage schicken?

@EventHandler
public void SpielerAnklicken(PlayerInteractEvent e) {
  try {
    if (e.getAction().equals(Action.LEFT_CLICK_BLOCK)) {
      if (e.getItem().getItemMeta().getDisplayName().equals("§3§lProfil §8× §7Rechtsklick")) {
        Player p = e.getPlayer();
        p.performCommand("friend add" + p.getDisplayName());
        p.playSound(p.getLocation(), Sound.CLICK, 2F, 2F);
      }
    }
  }
  catch(Exception e0) {
  }
}

Ich bin immer noch dabei, mein eigenes Lobby-System zu schreiben.

Nun habe ich in der Hotbar ein Item, womit man interagieren kann. Es öffnet sich ein Freunde-Inventar. Dort sieht man all seine Freunde auf diesem Server.

Nun möchte ich, dass, wenn ich mit diesem Item in der Hotbar auf einen Spieler klicke, ich dann dem Spieler eine Freundschaftsanfrage schicke.

Oben im Quelltext habe ich schon angefangen, aber das funktioniert nicht so.

Könnte mir jemand dabei helfen?

...zur Frage

Minecraft Spigot 1.8 plugin Bug (Selbst programmiert)!?

Hallo. ich ahbe eein plugin geschrieben (mit video hilfe) womit ich ein hideall item habe also wnen man mit nem item (im meinem fall Lohrenrute) rechtsklick macht, sollen alle unsichtbar werden, abber in aclipse meckert der an, das ".getServer()" nicht definiert wäre.

Heir mal der code:

package System;

import java.util.ArrayList;

import javax.sound.midi.MidiDevice.Info;

import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent;

public class Items implements Listener {

private Info plugin;
ArrayList<String> hidden = new ArrayList<>();

public Items(Info info) {
    this.plugin = info;
    this.plugin.getServer().getPluginManager().registerEvents(this, plugin);
}

@EventHandler
public void onplayerItneract(PlayerInteractEvent e) {
    Player p = e.getPlayer();
    
    if(e.getAction() ==Action.RIGHT_CLICK_AIR | e.getAction() == Action.RIGHT_CLICK_BLOCK) {
        if(e.getMaterial().equals(Material.BLAZE_ROD)) {
            
            for(Player players : Bukkit.getOnlinePlayers()) {
                
                if(hidden.contains(p.getName())) {
                    hidden.remove(p.getName());
                    p.showPlayer(players);
                    p.sendMessage("§aAlle Spieler sind nun wieder sichtbar!");
                }else
                    if(!hidden.contains(p.getName())) {
                        hidden.add(p.getName());
                        p.hidePlayer(players);
                        p.sendMessage("§cAlle Spieler sind nun unsichtbar");
                        
                    }
            }
        }
    }
}

}

...zur Frage

Minecraft Bukkit - Plugin programmieren - Codeliste?

Hey,

ich habe vor kurzem damit angefangen mir das Pluginschreiben anzueignen. Gibt es irgendwo eine Liste in der jeder mögliche Code drinsteht (evtl mit beschreibung), der von der bukkit.jar zur Verfügung gestellt wird?

Beispiele:

import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; ...

...zur Frage

Wie füge ich die Onlinezeit eines Spielers in mein Scoreboard Plugin ein?

Hallo,

Ich habe einen eigenen Server und möchte für diesen ein Scoreboard Programmieren.

Ich wollte fragen, wie ich jetzt noch die Onlinezeit von einem Spieler in H einfügen kann.

Hier ist der Sourcecode:

package de.xite.main;

import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.ScoreboardManager;

public class main extends JavaPlugin implements Listener {

@Override
public void onEnable() {

    this.getServer().getPluginManager().registerEvents(this, this);
    
}

public void setScoreboard(Player p) {
    
ScoreboardManager sm = Bukkit.getScoreboardManager();
final Scoreboard board = sm.getNewScoreboard();
final Objective o = board.registerNewObjective("Scoreboard", "dummy");

o.setDisplaySlot(DisplaySlot.SIDEBAR);
o.setDisplayName("§7» §6Xitecraft.ml §7«");

o.getScore("§a ").setScore(15);
o.getScore("§bDein Rang:").setScore(14);


if (p.hasPermission("Prefix.admin")) {
    o.getScore("§4Admin").setScore(13);
} else if (p.hasPermission("Prefix.dev")) {
    o.getScore("§bDeveloper").setScore(12);
} else {
    o.getScore("§8Spieler").setScore(11);
}



o.getScore("§b ").setScore(10);
o.getScore("§bOnline: ").setScore(9);
o.getScore("§a" + Bukkit.getOnlinePlayers().size() + "/" + Bukkit.getMaxPlayers()).setScore(8);
o.getScore("§c ").setScore(8);
o.getScore("§bWebsite").setScore(7);
o.getScore("§a/website").setScore(6);
o.getScore("§d ").setScore(5);
o.getScore("§bTeamSpeak:").setScore(4);
o.getScore("§a/teamspeak").setScore(3);
o.getScore("§e ").setScore(2);
o.getScore("§bSkype").setScore(1);
o.getScore("§aXitecraftServer").setScore(0);

    
p.setScoreboard(board);

}

@EventHandler
public void onJoin(PlayerJoinEvent e) {
    
    new BukkitRunnable() {
        @Override
        public void run() {
            
            for (Player all : Bukkit.getOnlinePlayers()) {
                setScoreboard(all);
            }
            
        }
    }.runTaskLater(this, 1);
}

@EventHandler
public void onQuit(PlayerQuitEvent e) {
    
    new BukkitRunnable() {  
        @Override
        public void run() {
            
            for (Player all : Bukkit.getOnlinePlayers()) {
                setScoreboard(all);
            }
            
        }
    }.runTaskLater(this, 1);
}

}

...zur Frage

Warum geht das Inventar nicht zu?! (Java)

Ich hab ein Problem, welches ist, dass wenn man die Enderchest aufmacht, es wieder geschlossen und ein virtuelles geöffnet werden soll. Allerdings schließt sich das Inventar nicht mit p.closeInventory(); was mache ich falsch? Ich bin ratlos.

ps: Bis zum Virtuellen Inventar bin ich noch nicht gekommen, da können also auch noch Fehler drin sein.

Hier ist der Code: package org.gloin01.test;

import java.util.HashMap; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack;

public class EventListener implements Listener{

public Inventory inv = null;

HashMap<String, ItemStack[]> inventory = new HashMap<>();


public EventListener(TestPlugin plugin){

    plugin.getServer().getPluginManager().registerEvents(this, plugin);

}


@EventHandler
public void onPlayerTot(InventoryOpenEvent ev){

    String inve = ev.getInventory().getName();
    Player p = (Player) ev.getPlayer();
    if(inve == "container.enderchest"){

        p.closeInventory();
        inv = p.getServer().createInventory(null, 54, "§c" + p.getDisplayName() + "'s §2Enderchest");
        p.openInventory(inv);


        inventory.put(p.getName(),p.getInventory().getContents());

    }
}

}

...zur Frage

Was möchtest Du wissen?