Update from Git Manager GUI

This commit is contained in:
2026-02-05 10:14:28 +01:00
parent 3e08d5c2d9
commit 6bb272d5fa
49 changed files with 3065 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
package com.taxes.commands;
import com.taxes.TaxesPlugin;
import com.taxes.tax.Tax;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import org.bukkit.util.StringUtil;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TaxesTabCompleter implements TabCompleter {
private final TaxesPlugin plugin;
public TaxesTabCompleter(TaxesPlugin plugin) {
this.plugin = plugin;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
List<String> completions = new ArrayList<>();
if (args.length == 1) {
String cmdName = command.getName().toLowerCase();
if (cmdName.equals("taxes-collect") || cmdName.equals("tax-collect")) {
return getAvailableTaxes(sender, args[0], false);
} else if (cmdName.equals("taxes-info") || cmdName.equals("tax-info")) {
return getAvailableTaxes(sender, args[0], false);
} else if (cmdName.equals("taxes-infoall") || cmdName.equals("tax-infoall")) {
return getAvailableTaxes(sender, args[0], true);
} else if (cmdName.equals("taxes-list") || cmdName.equals("tax-list")) {
return Collections.emptyList();
} else if (cmdName.equals("taxes-listall") || cmdName.equals("tax-listall")) {
return Collections.emptyList();
} else if (cmdName.equals("taxes-collectall") || cmdName.equals("tax-collectall")) {
return Collections.emptyList();
} else if (cmdName.equals("taxes-reload") || cmdName.equals("tax-reload")) {
return Collections.emptyList();
} else if (cmdName.equals("taxes") || cmdName.equals("tax")) {
return Collections.emptyList();
}
}
return completions;
}
/**
* Gibt alle verfügbaren Steuern für Tab-Completion zurück
* @param sender Der Command-Sender (Player oder Console)
* @param input Das aktuelle Input-String für Partial Matching
* @param showAll Alle Steuern zeigen (true) oder nur aktivierte (false)
* @return Liste der Steuernamen zum Completen
*/
private List<String> getAvailableTaxes(CommandSender sender, String input, boolean showAll) {
List<String> completions = new ArrayList<>();
for (Tax tax : this.plugin.getTaxConfigData().getTaxes()) {
// Wenn showAll=false, nur aktivierte Steuern zeigen
if (!showAll && !tax.getTaxData().isEnabled()) {
continue;
}
String taxName = tax.getTaxData().getName().getConfigTag();
// StringUtil.copyPartialMatches für Partial String Matching
if (StringUtil.startsWithIgnoreCase(taxName, input)) {
completions.add(taxName);
}
}
// Alphabetisch sortieren für bessere UX
Collections.sort(completions);
return completions;
}
}