Paper1.21.11Resmi#komut#cooldown#temel
Heal Feed
/heal ve /feed komutları, ayarlanabilir bekleme süresi ve izinlerle.
src/main/java/com/minborai/healfeed/HealFeed.java
1package com.minborai.healfeed;23import org.bukkit.Bukkit;4import org.bukkit.attribute.Attribute;5import org.bukkit.command.Command;6import org.bukkit.command.CommandSender;7import org.bukkit.entity.Player;8import org.bukkit.plugin.java.JavaPlugin;910import java.util.HashMap;11import java.util.Map;12import java.util.UUID;1314public final class HealFeed extends JavaPlugin {1516private final Map<String, Map<UUID, Long>> cooldowns = new HashMap<>();1718@Override19public void onEnable() {20saveDefaultConfig();21getLogger().info("Heal Feed etkinleştirildi!");22}2324@Override25public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {26if (!(sender instanceof Player player)) {27sender.sendMessage("Bu komut sadece oyuncular içindir.");28return true;29}30String name = command.getName().toLowerCase();31long cooldownMs = getConfig().getLong("cooldown-seconds." + name, 60) * 1000L;32if (!player.hasPermission("healfeed.bypass")) {33Map<UUID, Long> map = cooldowns.computeIfAbsent(name, k -> new HashMap<>());34long now = System.currentTimeMillis();35Long last = map.get(player.getUniqueId());36if (last != null && now - last < cooldownMs) {37long left = (cooldownMs - (now - last)) / 1000L + 1;38player.sendMessage(color(getConfig().getString("messages.cooldown", "&cBekle: %s sn").replace("%s", String.valueOf(left))));39return true;40}41map.put(player.getUniqueId(), now);42}43if (name.equals("heal")) {44var attr = player.getAttribute(Attribute.MAX_HEALTH);45player.setHealth(attr != null ? attr.getValue() : 20.0);46player.setFireTicks(0);47player.sendMessage(color(getConfig().getString("messages.healed", "&aİyileştin!")));48} else {49player.setFoodLevel(20);50player.setSaturation(20f);51player.sendMessage(color(getConfig().getString("messages.fed", "&aKarnın doydu!")));52}53return true;54}5556private static String color(String s) {57return org.bukkit.ChatColor.translateAlternateColorCodes('&', s);58}59}60