malnefrage.de
malnefrage.de
Facebook
Twitter
E-Mail
Bookmark
weitere
Ratgeber-Community für Fragen & Antworten:
Forum mit Tipps, Hilfe und Ratschläge
Forum Frage stellen! Neue Fragen Neue Antworten Login
Frage
Frage
von _otteo am 13.11.2021, 12.56 Uhr

Wieso werden Variablen in der Config.yml nur ein einziges mal ersetzt?

Guten Tag,
Ich arbeite seit langer Zeit an einem Plugin und habe folgendes Problem.
Ich habe eine Nachricht in der config.yml gespeichert, wo folgende Variablen vorkommen: %player% und %coins%. Diese Variablen sollen ersetzt werden. %player% zu dem Spielernamen und %coins% zu der Anzahl an Coins. Nun habe ich das Problem, dass es nur einmal ersetzt wird und dann im restlichen Verlauf kein einziges mal mehr.

Das ist der Code des Commands:
package de.otteo.wf.commands;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import de.otteo.wf.manager.files.ConfigFile;
import de.otteo.wf.manager.messages.MainMessages;
import de.otteo.wf.manager.mysql.MySQl_Coins;

public class WitherFightAdminCommand implements CommandExecutor {

	@SuppressWarnings("deprecation")
	@Override
	public boolean onCommand(CommandSender s, Command cmd, String l, String[] args) {
		if(!(s instanceof Player)) {
			return true;
		}
		
		Player p = (Player) s;
		
		if(args.length == 0) {
			p.sendMessage(MainMessages.PREFIX + "§7Bitte benutze §b/wfa [coins|player]");
			return true;
		}
		
		if(args.length == 4) {
			if(args[0].equalsIgnoreCase("coins")) {
				if(args[1].equalsIgnoreCase("add")) {
					if(p.hasPermission("wfadmin.coins.add")) {
						Player target = Bukkit.getPlayer(args[2]);
						OfflinePlayer targetoffline = Bukkit.getOfflinePlayer(args[2]);
						if(target != null) {

							MainMessages.COINS_ADD_PLAYER = MainMessages.COINS_ADD_PLAYER.replace("%player%", target.getName());
							MainMessages.COINS_ADD_PLAYER = MainMessages.COINS_ADD_PLAYER.replace("%coins%", String.valueOf(args[3]));
							MainMessages.COINS_ADD_TARGET = MainMessages.COINS_ADD_TARGET.replace("%coins%", String.valueOf(args[3]));

							p.sendMessage(MainMessages.COINS_ADD_PLAYER);
							target.sendMessage(MainMessages.COINS_ADD_TARGET);
							
							
							
						} else {
							if(!MySQl_Coins.accountexists(targetoffline.getUniqueId().toString())) {
								p.sendMessage(MainMessages.PREFIX + "§7Der Spieler §b" + args[2] + " §7war noch nie auf diesem Server");
								return true;
							} else {
								MySQl_Coins.add(targetoffline.getUniqueId().toString(), Integer.parseInt(args[3]));
								MainMessages.COINS_ADD_PLAYER = MainMessages.COINS_ADD_PLAYER.replace("%coins%", args[3]);
								MainMessages.COINS_ADD_PLAYER = MainMessages.COINS_ADD_PLAYER.replace("%player%", targetoffline.getName());
								p.sendMessage(MainMessages.COINS_ADD_PLAYER);
								
							}
						}
						
					} else {
						p.sendMessage(MainMessages.NOPERMS);
					}

					return true;
				}
				
				if(args[1].equalsIgnoreCase("remove")) {
					if(p.hasPermission("wfadmin.coins.remove")) {
						Player target = Bukkit.getPlayer(args[2]);
						OfflinePlayer targetoffline = Bukkit.getOfflinePlayer(args[2]);
						if(target != null) {
							MySQl_Coins.remove(target.getUniqueId().toString(), Integer.parseInt(args[3]));
							MainMessages.COINS_REMOVE_PLAYER = MainMessages.COINS_REMOVE_PLAYER.replace("%coins%", args[3]);
							MainMessages.COINS_REMOVE_PLAYER = MainMessages.COINS_REMOVE_PLAYER.replace("%player%", target.getName());
							MainMessages.COINS_REMOVE_TARGET = MainMessages.COINS_REMOVE_TARGET.replace("%coins%", args[3]);
							p.sendMessage(MainMessages.COINS_REMOVE_PLAYER);
							target.sendMessage(MainMessages.COINS_REMOVE_TARGET);
							
							
							
						} else {
							if(!MySQl_Coins.accountexists(targetoffline.getUniqueId().toString())) {
								p.sendMessage(MainMessages.PREFIX + "§7Der Spieler §b" + args[2] + " §7war noch nie auf diesem Server");
								return true;
							} else {
								MySQl_Coins.remove(targetoffline.getUniqueId().toString(), Integer.parseInt(args[3]));
								MainMessages.COINS_REMOVE_PLAYER = MainMessages.COINS_REMOVE_PLAYER.replace("%coins%", args[3]);
								MainMessages.COINS_REMOVE_PLAYER = MainMessages.COINS_REMOVE_PLAYER.replace("%player%", targetoffline.getName());
								p.sendMessage(MainMessages.COINS_REMOVE_PLAYER);
								
							}
						}
					} else {
						p.sendMessage(MainMessages.NOPERMS);
					}
					return true;
					
				}
				
				if(args[1].equalsIgnoreCase("set")) {
					if(p.hasPermission("wfadmin.coins.set")) {
						Player target = Bukkit.getPlayer(args[2]);
						OfflinePlayer targetoffline = Bukkit.getOfflinePlayer(args[2]);
						if(target != null) {
							MySQl_Coins.set(target.getUniqueId().toString(), Integer.parseInt(args[3]));
							MainMessages.COINS_SET_PLAYER = MainMessages.COINS_SET_PLAYER.replace("%coins%", args[3]);
							MainMessages.COINS_SET_PLAYER = MainMessages.COINS_SET_PLAYER.replace("%player%", target.getName());
							MainMessages.COINS_SET_TARGET = MainMessages.COINS_SET_TARGET.replace("%coins%", args[3]);
							p.sendMessage(MainMessages.COINS_SET_PLAYER);
							target.sendMessage(MainMessages.COINS_SET_TARGET);
							
							
							
						} else {
							if(!MySQl_Coins.accountexists(targetoffline.getUniqueId().toString())) {
								p.sendMessage(MainMessages.PREFIX + "§7Der Spieler §b" + args[2] + " §7war noch nie auf diesem Server");
								return true;
							} else {
								MySQl_Coins.set(targetoffline.getUniqueId().toString(), Integer.parseInt(args[3]));
								MainMessages.COINS_SET_PLAYER = MainMessages.COINS_SET_PLAYER.replace("%player%", targetoffline.getName());
								MainMessages.COINS_SET_PLAYER = MainMessages.COINS_SET_PLAYER.replace("%coins%", args[3]);
								p.sendMessage(MainMessages.COINS_SET_PLAYER);
								
							}
						}
						
					} else {
						p.sendMessage(MainMessages.NOPERMS);
					}
					return true;
				}

				
			}
		}
		
		if(args.length == 3) {
			if(args[0].equalsIgnoreCase("coins")) {
				if(args[1].equalsIgnoreCase("check")) {
					if(p.hasPermission("wfadmin.coins.check")) {
						Player target = Bukkit.getPlayer(args[2]);
						OfflinePlayer targetoffline = Bukkit.getOfflinePlayer(args[2]);
						if(target != null) {
							
							
							int coins = MySQl_Coins.getcoins(target.getUniqueId().toString());
							MainMessages.COINS_CHECK_PLAYER = MainMessages.COINS_CHECK_PLAYER.replace("%coins%", String.valueOf(coins));
							MainMessages.COINS_CHECK_PLAYER = MainMessages.COINS_CHECK_PLAYER.replace("%player%", target.getName());
							p.sendMessage(MainMessages.COINS_CHECK_PLAYER);
							
							ConfigFile.reloadfile();
							
							
							
						} else {
							if(!MySQl_Coins.accountexists(targetoffline.getUniqueId().toString())) {
								p.sendMessage(MainMessages.PREFIX + "§7Der Spieler §b" + args[2] + " §7war noch nie auf diesem Server");
								return true;
							} else {
								int coins = MySQl_Coins.getcoins(targetoffline.getUniqueId().toString());
								MainMessages.COINS_CHECK_PLAYER = MainMessages.COINS_CHECK_PLAYER.replace("%coins%", String.valueOf(coins));
								MainMessages.COINS_CHECK_PLAYER = MainMessages.COINS_CHECK_PLAYER.replace("%player%", targetoffline.getName());
								p.sendMessage(MainMessages.COINS_CHECK_PLAYER);
								
							}
						}
						
					} else {
						p.sendMessage(MainMessages.NOPERMS);
					}
					return true;
				}
			}
		}
		
		
		return false;
	}

	
	
}
Über Antworten und Hilfe würde ich mich sehr freuen!

LG
otteo

Antwort
Antwort
von glitsch am 13.11.2021, 18.24 Uhr
Grenze den Bereich zum Debugging ein und poste die Klasse/Schleife/Funktion die Probleme bereitet. Wenn du keine Fehlermeldung erhälst handelt es sich um einen logischen Fehler im Programmcode. Dann musst du Schritt für Schritt vorgehen und debuggen.

Ähnliche Fragen
Aldi ist doch eine Firma oder? Wieso gibt es also einen Aldi Nord und einen Aldi Süd? Auch die Angebote der beiden Aldi-Ketten sind unterschiedlich, warum?
Hey, ich hab gerade die Tinder App gestartet und es wurde wie immer nach Matches in meiner Nähe gesucht. Als ich dann auh meine Matches gegangen bin waren ...
Ich möchte mit der Analytics-Software PIWIK eine benutzerdefinierte Variable tracken. Wie funktioniert das? Ich möchte im Backend unter "Besucher" -> ...
Hey ich habe bereits viel zu dem Thema "Wie sieht man wirklich aus" gelesen, trotzdem habe ich immer noch die Frage... wieso sehe ich auf Bildern immer ...
Wenn ich unter Windows über die Konsole (cmd.exe) ein MySQL Dump File importiere, werden Umlaute in der Datenbank im phpMyAdmin falsch dargestellt. Der ...
Nächste Frage

Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.