Frage von Play4Lif3, 19

Wie kann ich bei meinem InvKit plugin per clickEvent einen Countdown auslösen?

package Jan.Dev.Terestria.Kits;

import java.util.ArrayList; import java.util.List;

import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin;

import Kits.Kits;

public class Commands extends JavaPlugin { private Inventory inv=null;

  public void onDisable()
  {
    System.out.println("Terestria-System: Inaktiv");
  }
  public void onEnable()
  {
    System.out.println("Terestria-System: Aktiv");
    getServer().getPluginManager().registerEvents(new Kits(), this);
  }
  
  public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args) {
        
      if(cmd.getName().equalsIgnoreCase("kit")) {
          inv = p.getPlayer().getServer().createInventory(null, 36, "§bTerestria §7- §eKits");
          
          ItemStack istack = new ItemStack(Material.COAL);
          ItemMeta istackMeta = istack.getItemMeta();
          istackMeta.setDisplayName("§7Kit §6Spieler");
    
          
          
          
          ItemStack istack2 = new ItemStack(Material.IRON_INGOT);
          ItemMeta istackMeta2 = istack2.getItemMeta();
          ArrayList<String> tt2 = new ArrayList<String>();
          istackMeta2.setDisplayName("§b§lPremium-Equip");
          
          
          
          ItemStack istack3 = new ItemStack(Material.GOLD_INGOT);
          ItemMeta istackMeta3 = istack3.getItemMeta();
          if (p.hasPermission("terestria.legende")) {
            istackMeta3.setDisplayName("§8| §9Legende §8| §7Rechte: §2Ja§7!");
          } else if (!p.hasPermission("terestria.legende")) {
            istackMeta3.setDisplayName("§8| §9Legende §8| §7Rechte: §cNein§7!");
          }
          List<String> ls3 = new ArrayList();
          ls3.add("§8• §7/lengende §8•");
          ls3.add("   §8• §710€ §8•");
          istackMeta3.setLore(ls3);
          istack3.setItemMeta(istackMeta3);
          
          
          ItemStack istack4 = new ItemStack(Material.DIAMOND);
          ItemMeta istackMeta4 = istack4.getItemMeta();
          ArrayList<String> tt4 = new ArrayList<String>();
          istackMeta2.setDisplayName("§b§lTitan-Equip");
          
          ItemStack istack5 = new ItemStack(Material.EMERALD);
          ItemMeta istackMeta5 = istack5.getItemMeta();
          ArrayList<String> tt5 = new ArrayList<String>();
          istackMeta5.setDisplayName("§b§lUltra-Equip");




          inv.setItem(10, istack);
          inv.setItem(13, istack2);
          inv.setItem(16, istack3);
          inv.setItem(20, istack4);
          inv.setItem(24, istack5);
          
          
          p.getPlayer().openInventory(inv);
          
          
          
      }
      
      
      return false;
      
  }
    
    



}

Wie baue ich da sowas ein? Ich bendanke mich im vorraus! LG

Antwort
von MCelements, 12

in der Main Klasse brauchst du noch

Plugin plugin;

und im onEnable

plugin = this;
@EventHandler

public void onInv(InventoryClickEvent e){

if(e.getWhoClicked() instanceof Player){
Bukkit.getScheduler().runTaskAsynchronously(Main.plugin, new Runnable() {
@Override
public void run() {
for(int i = 60; i >= 0; i--){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

if(i > 0){
Bukkit.broadcastMessage("Countdown: "+i);
}else{
Bukkit.broadcastMessage("Countdown ende");
}

}
}
});
} }
Kommentar von Play4Lif3 ,

Hallo,

package Main;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

import Kits.Kits;
@SuppressWarnings("unused")
public class Main extends JavaPlugin {
Plugin plugin;
private Inventory inv=null;

public void onDisable()
{
System.out.println("Terestria-System: Inaktiv");
}
public void onEnable()
{
System.out.println("Terestria-System: Aktiv");
plugin = this;
getServer().getPluginManager().registerEvents(new Kits(), this);
}

public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args) {

if(cmd.getName().equalsIgnoreCase("Kit")) {
Player p = (Player) sender;

Das ist meine MAIN-Class. Aber der EventHandler bzw. meine 2te Klasse(unten ein Bild), in der ich die Items und so gemacht habe, findet er das Main.Plugin nicht... Muss ich die Main Klasse ins Gleich Package machen, wie in die "Kits" Klasse? Ich habe schon wirlkich viel Runprobiert.. Hoffe du kannst mir da weiterhelfen :) 

Kommentar von MCelements ,

dann muss

Plugin plugin;
zu

public static Plugin plugin;

Keine passende Antwort gefunden?

Fragen Sie die Community