Dateien nach "src/main/java/de/mviper/adventskalender" hochladen
This commit is contained in:
87
src/main/java/de/mviper/adventskalender/AdventCommand.java
Normal file
87
src/main/java/de/mviper/adventskalender/AdventCommand.java
Normal file
@@ -0,0 +1,87 @@
|
||||
package de.mviper.adventskalender;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class AdventCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
|
||||
// --- Admin-Befehle (/ak admin ...) ---
|
||||
if (args.length >= 1 && args[0].equalsIgnoreCase("admin")) {
|
||||
// Prüfen, ob der Spieler die Admin-Berechtigung hat
|
||||
if (!sender.hasPermission("adventskalender.admin")) {
|
||||
sender.sendMessage(LanguageManager.getString("messages.no_permission"));
|
||||
return true;
|
||||
}
|
||||
|
||||
// /ak admin reload
|
||||
if (args.length == 2 && args[1].equalsIgnoreCase("reload")) {
|
||||
Adventskalender.getInstance().reloadConfig();
|
||||
LanguageManager.setup();
|
||||
sender.sendMessage(LanguageManager.getString("messages.admin.reload_success"));
|
||||
return true;
|
||||
}
|
||||
|
||||
// /ak admin open <player> <day>
|
||||
if (args.length == 4 && args[1].equalsIgnoreCase("open")) {
|
||||
Player target = Bukkit.getPlayer(args[2]);
|
||||
if (target == null) {
|
||||
sender.sendMessage(LanguageManager.getString("messages.admin.player_not_found").replace("%player%", args[2]));
|
||||
return true;
|
||||
}
|
||||
|
||||
try {
|
||||
int day = Integer.parseInt(args[3]);
|
||||
if (day < 1 || day > 24) {
|
||||
sender.sendMessage(LanguageManager.getString("messages.admin.invalid_day"));
|
||||
return true;
|
||||
}
|
||||
|
||||
ItemStack reward = AdventInventory.getRewardItem(day);
|
||||
if (reward != null && reward.getType() != Material.AIR) {
|
||||
if (target.getInventory().firstEmpty() == -1) {
|
||||
target.getWorld().dropItemNaturally(target.getLocation(), reward);
|
||||
} else {
|
||||
target.getInventory().addItem(reward);
|
||||
}
|
||||
}
|
||||
CalendarData.setClaimed(target, day);
|
||||
|
||||
sender.sendMessage(LanguageManager.getString("messages.admin.open_success").replace("%player%", target.getName()).replace("%day%", String.valueOf(day)));
|
||||
target.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day)));
|
||||
|
||||
} catch (NumberFormatException e) {
|
||||
sender.sendMessage(LanguageManager.getString("messages.admin.invalid_day"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Falsche Nutzung der Admin-Befehle
|
||||
sender.sendMessage("§cUsage: /ak admin reload");
|
||||
sender.sendMessage("§cUsage: /ak admin open <player> <day>");
|
||||
return true;
|
||||
}
|
||||
|
||||
// --- Hauptbefehl (/ak) ---
|
||||
if (!(sender instanceof Player)) {
|
||||
sender.sendMessage(LanguageManager.getString("messages.only_player"));
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
if (!player.hasPermission("adventskalender.use")) {
|
||||
player.sendMessage(LanguageManager.getString("messages.no_permission"));
|
||||
return true;
|
||||
}
|
||||
|
||||
AdventInventory.openCalendar(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user