Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Pomocy Plugin...


Rekomendowane odpowiedzi

Opublikowano

Witam.

Napisałem plugin na kity dla graczy, lecz gdy jeden gracz wpisze /zestaw gracz i drugi chce wpisać to wyświetla mu się czas oczekiwania.

Oto mój plugin proszę o pomoc ...

package pl.craftbook.pze;

import java.util.HashMap;
import java.util.logging.Logger;

import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

public class pze extends JavaPlugin {
	
	public final Logger logger = Logger.getLogger("Minecrfat");
	public static pze plugin;
	
	public HashMap<String, Long> cooldowns = new HashMap<String, Long>();
	
	
	public void onEnable() {
		PluginDescriptionFile pdf = getDescription();
		this.logger.info(pdf.getName() + "[KIT] wlaczono...");
	}
	public boolean onCommand(CommandSender sender, Command command,String label, String[] args) {
		if(!(sender instanceof Player)) {
			return false;
		}
		final Player gracz = (Player) sender;
        if(label.equalsIgnoreCase("zestaw")){
        	int cooldownsTime = 2160;
        	if(cooldowns.containsKey(sender.getName())) {
        		long secondLeft = ((cooldowns.get(sender.getName())/1000)+ cooldownsTime) - (System.currentTimeMillis()/1000);
        		if(secondLeft > 0) {
        			sender.sendMessage(ChatColor.GOLD + "[KIT]" + ChatColor.WHITE + " Wykonaj polecenie za " + ChatColor.RED + secondLeft + ChatColor.GOLD + " sek.");
        			return true;
        		}
        	}
        	cooldowns.put(sender.getName(), System.currentTimeMillis());
        	if(args.length == 1) {
        		if(sender.hasPermission("seek.plug.zestaw.gracz"));
        			if(label.equalsIgnoreCase("gracz")) {
        				PlayerInventory inventory = gracz.getInventory();
        				ItemStack helm = new ItemStack(Material.LEATHER_HELMET,1);
        				ItemStack klata = new ItemStack(Material.LEATHER_CHESTPLATE,1);
        				ItemStack spodnie = new ItemStack(Material.LEATHER_LEGGINGS,1);
        				ItemStack buty = new ItemStack(Material.LEATHER_BOOTS,1);
        				ItemStack kilof = new ItemStack(Material.STONE_PICKAXE,1);
        				ItemStack lopata = new ItemStack(Material.STONE_SPADE,1);
        				ItemStack siekiera = new ItemStack(Material.STONE_AXE,1);
        				ItemStack miecz = new ItemStack(Material.STONE_SWORD,1);
        				ItemStack jedzenie = new ItemStack(Material.BREAD,16);
        				gracz.playSound(gracz.getLocation(), Sound.CHEST_OPEN, 100, 100);
        				inventory.addItem(helm,klata,spodnie,buty,kilof,lopata,siekiera,miecz,jedzenie);
        				return true;
        			}	
        		if(sender.hasPermission("seek.plug.zestaw.vip"));
        			if(label.equalsIgnoreCase("vip")) {
        				PlayerInventory inventory = gracz.getInventory();
        				ItemStack helm = new ItemStack(Material.IRON_HELMET,1);
        				ItemStack klata = new ItemStack(Material.IRON_CHESTPLATE,1);
        				ItemStack spodnie = new ItemStack(Material.IRON_LEGGINGS,1);
        				ItemStack buty = new ItemStack(Material.IRON_BOOTS,1);
        				ItemStack miecz = new ItemStack(Material.DIAMOND_SWORD,1);
        				ItemStack jedzenie = new ItemStack(Material.BREAD,32);
        				helm.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				klata.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				spodnie.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				buty.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				miecz.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 1);
        				gracz.playSound(gracz.getLocation(), Sound.CHEST_OPEN, 100, 100);
        				inventory.addItem(helm,klata,spodnie,buty,miecz,jedzenie);
        			}
        		if(sender.hasPermission("seek.plug.zestaw.svip"));
        			if(label.equalsIgnoreCase("svip")) {
        				PlayerInventory inventory = gracz.getInventory();
        				ItemStack helm = new ItemStack(Material.DIAMOND_HELMET,1);
        				ItemStack klata = new ItemStack(Material.DIAMOND_CHESTPLATE,1);
        				ItemStack spodnie = new ItemStack(Material.DIAMOND_LEGGINGS,1);
        				ItemStack buty = new ItemStack(Material.DIAMOND_BOOTS,1);
        				ItemStack miecz = new ItemStack(Material.DIAMOND_SWORD,1);
        				ItemStack jedzenie = new ItemStack(Material.BREAD,32);
        				helm.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				klata.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				spodnie.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				buty.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
        				miecz.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 2);
        				gracz.playSound(gracz.getLocation(), Sound.CHEST_OPEN, 100, 100);
        				inventory.addItem(helm,klata,spodnie,buty,miecz,jedzenie);
        			}
        		if(sender.hasPermission("seek.plug.zestaw.elita"));
        			if(label.equalsIgnoreCase("elita")) {
        				PlayerInventory inventory = gracz.getInventory();
        				ItemStack helm = new ItemStack(Material.DIAMOND_HELMET,1);
        				ItemStack klata = new ItemStack(Material.DIAMOND_CHESTPLATE,1);
        				ItemStack spodnie = new ItemStack(Material.DIAMOND_LEGGINGS,1);
        				ItemStack buty = new ItemStack(Material.DIAMOND_BOOTS,1);
        				ItemStack miecz = new ItemStack(Material.DIAMOND_SWORD,1);
        				ItemStack jedzenie = new ItemStack(Material.BREAD,32);
        				helm.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
        				klata.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
        				spodnie.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
        				buty.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
        				miecz.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 3);
        				gracz.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 6), true);
        				gracz.playSound(gracz.getLocation(), Sound.CHEST_OPEN, 100, 100);
        				inventory.addItem(helm,klata,spodnie,buty,miecz,jedzenie);
        			}
        	}
        	if(args.length >= 2) {
        		sender.sendMessage(ChatColor.GOLD + "[KIT]" + ChatColor.WHITE + " Podano za duzo argumentow");
        		return false;
        	}
        	if(args.length == 0) {
        		sender.sendMessage(ChatColor.GOLD + "[[KIT]" + ChatColor.WHITE + " Poprawna forma to : " + ChatColor.BOLD + "" + ChatColor.GOLD + "/zestaw <gracz/vip/svip/elita");
        		return false;
        	}
            
        }
		return false;
	}
	public void onDisable() {
		PluginDescriptionFile pdf = getDescription();
		this.logger.info(pdf.getName() + "[KIT] zostal wylaczony...");
	}


}

csHDdb6.png

Opublikowano

 

if(secondLeft > 0) {        			sender.sendMessage(ChatColor.GOLD + "[KIT]" + ChatColor.WHITE + " Wykonaj polecenie za " + ChatColor.RED + secondLeft + ChatColor.GOLD + " sek.");        			return true;
Tu zwraca false a nie true :P

if(cooldowns.containsKey(sender.getName())) {        		long secondLeft = ((cooldowns.get(sender.getName())/1000)+ cooldownsTime) - (System.currentTimeMillis()/1000);        		if(secondLeft > 0) {        			sender.sendMessage(ChatColor.GOLD + "[KIT]" + ChatColor.WHITE + " Wykonaj polecenie za " + ChatColor.RED + secondLeft + ChatColor.GOLD + " sek.");        			return true;        		}        	}
Zneguj tu ten pierwszy if i daj przydzielanie kita, a potem daj w else nie przydzielenie kita. Powinno pomóc.

f

Opublikowano

if(!(cooldowns.containsKey(sender.getName()))) {
long secondLeft = ((cooldowns.get(sender.getName())/1000)+ cooldownsTime) - (System.currentTimeMillis()/1000);        		
if(secondLeft > 0) {        			
sender.sendMessage(ChatColor.GOLD + "[KIT]" + ChatColor.WHITE + " Wykonaj polecenie za " +ChatColor.RED + secondLeft + ChatColor.GOLD + " sek.");
return true;        		}        	}

Przy zanegowaniu 

if(!(cooldowns.containsKey(sender.getName())))  

to wtedy

if(secondLeft > 0) {

jak zmienic ?

 

csHDdb6.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...