Jump to content

Plugin Befehl cooldown


Recommended Posts

Hey ich bin ein plugin am coden der eine Befehl soll einen cooldown haben aber jetzt zeigt eclipse einen Fehler an wie kann ich das beheben? Der problem Punkt ist fast ganz unten ich habe ihn beschriftet :D

import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class TestPlugin extends JavaPlugin
{
   public static HashMap<String, Long> cooldowns = new HashMap<String, Long>();
   
   public String prefix = "§4[RollmopsMC]§5";
   
   public void onEnable()
   {
	   initConfig();
	   System.out.println(prefix + " erfolgreich geladen!");
   }
    
   public void onDisable()
   {
	   System.out.println(prefix + " erfolgreich deaktiviert!");
   }
   
   private void initConfig()
   {
	   reloadConfig();
	   getConfig().addDefault("plugin.prefix", "§0[§4RollmopsMC§0] §5");
	   getConfig().options().copyDefaults(true);
	   getConfig().addDefault("cooldown.Default.zeituebrig", 0);
	   saveConfig();
	   prefix = getConfig().getString("plugin.prefix");
   }
   
   public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
   {
	   if (cmd.getName().equalsIgnoreCase("gruppeninfo"))
	   {
		   sender.sendMessage(prefix + " Mit /gruppen kannst du alle 30 tage deinen Beruf/Gruppe aendern. mehr infos dazu findest du im tutorialbuch (/tutorial)");
		   return true;
	   }
	   if (cmd.getName().equalsIgnoreCase("gruppen"))
	   {
		   
		   
		   if(sender instanceof Player)
		   {
			   int cooldownTime = 2592000;
			   reloadConfig();
			   if(getConfig().get("cooldown." + sender.getName() + ".zeituebrig") == null)
			   {   
				   getConfig().set("cooldown." + sender.getName() + ".zeituebrig", 0);
				   saveConfig();
			   }
			   cooldowns.put(sender.getName(), getConfig().get("cooldown." + sender.getName() + ".zeituebrig"));  //hier ist das Problem 
		        if(cooldowns.containsKey(sender.getName())) {
		            long secondsleft = ((cooldowns.get(sender.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
		            long daysleft = secondsleft / 86400;
		            if(secondsleft>0) {
		                sender.sendMessage(prefix + "Du kannst erst in "+ (daysleft+1) +"§5 Tagen wieder Gruppe wechseln!");
		                return true;
		            }
		        }
		        cooldowns.put(sender.getName(), System.currentTimeMillis());
		        getConfig().set("cooldown." + sender.getName() + ".zeituebrig", System.currentTimeMillis());
		        saveConfig();
               Player player = (Player) sender;
               player.sendMessage(prefix + " waehle deine Gruppe! §8 Achtung du kannst sie erst in 30 Tagen wieder wechseln");
               player.teleport(new Location(Bukkit.getWorld("Spawn"), 3000, 70, 3000));
               return true;
		   }
		   else
		   {
			   sender.sendMessage(prefix + "diesen Command koennen nur spieler ausfuehren");
			   return true;
		   }
	   }
	   return false;
   }
}

 

Link to comment
Share on other sites

Welchen Fehler gibt dir Eclipse den aus?

 

Eine Möglichkeit wäre, dass

getConfig().get("cooldown." + sender.getName() + ".zeituebrig");  

dir keinen Long zurück gibt, sondern irgendwas anderes. Versuch es mal mit

getConfig().getLong("cooldown." + sender.getName() + ".zeituebrig"));  

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B