Chyba - programování
Napsal: 09 úno 2016, 18:20
Server: 82.208.17.13:27933
Zdravím,
měl bych prosím Vás otázku na to, jak to opravit?
Tedy má to fungovat, tak, že po napsání příkazu /removecoins <jmeno> <pocet> se odečtou coiny z databáze.
RemoveCoinsCMD.java:
MGCoinsAPI.java
Chyba:
Děkuji moc.
// vím, že je nějaký problém určitě s argumenty, ale nevím co s tím.
Zdravím,
měl bych prosím Vás otázku na to, jak to opravit?
Tedy má to fungovat, tak, že po napsání příkazu /removecoins <jmeno> <pocet> se odečtou coiny z databáze.
RemoveCoinsCMD.java:
Kód: Vybrat vše
package cz.domino.mgcoinsapi.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import cz.domino.mgcoinsapi.MySQL.MGCoinsAPI;
public class RemoveCoinsCMD implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player) sender;
if (cmd.getName().equalsIgnoreCase("removecoins")) {
if (p.hasPermission("mgcoinsapi.remove")) {
if (args.length < 2) {
sender.sendMessage("Pouziti: /removecoins <jmeno> <pocet>");
}
if (args.length == 2) {
Player target = Bukkit.getServer().getPlayer(args[2]);
int cislo;
cislo = Integer.parseInt(args[3]);
MGCoinsAPI.removeCoins(target.getUniqueId().toString(), cislo);
p.sendMessage("Odebral jsi coiny od hrace " + target.getName().toString() + "!");
}
} else {
p.sendMessage("Na tuto akci nemas opravneni!");
}
}
return false;
}
}
MGCoinsAPI.java
Kód: Vybrat vše
package cz.domino.mgcoinsapi.MySQL;
import java.sql.ResultSet;
import java.sql.SQLException;
import cz.domino.mgcoinsapi.Main;
public class MGCoinsAPI {
public static boolean playerExists(String uuid) {
try {
ResultSet rs = Main.mysql.query("SELECT * FROM Coins WHERE UUID= '" + uuid + "'");
if (rs.next()) {
return rs.getString("UUID") != null;
}
return false;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public static void createPlayer(String uuid) {
if (!playerExists(uuid)) {
Main.mysql.update("INSERT INTO Coins(UUID, Coins) VALUES ('" + uuid + "', '0');");
System.out.println("-----------------------------------");
System.out.println("Vytvářím nového uživatele a předávám do databáze!");
System.out.println("-----------------------------------");
}
}
public static Integer getCoins(String uuid) {
Integer i = Integer.valueOf(0);
if (playerExists(uuid)) {
try {
ResultSet rs = Main.mysql.query("SELECT * FROM Coins WHERE UUID= '" + uuid + "'");
if ((rs.next()) && (Integer.valueOf(rs.getInt("Coins")) == null)) {}
i = Integer.valueOf(rs.getInt("Coins"));
} catch (SQLException e) {
e.printStackTrace();
}
} else {
createPlayer(uuid);
getCoins(uuid);
}
return i;
}
public static void addCoins(String uuid, Integer coins) {
if (playerExists(uuid)) {
setCoins(uuid, Integer.valueOf(getCoins(uuid).intValue() + coins.intValue()));
} else {
createPlayer(uuid);
addCoins(uuid, coins);
}
}
public static void setCoins(String uuid, Integer coins) {
if (playerExists(uuid)) {
Main.mysql.update("UPDATE Coins SET Coins= '" + coins + "' WHERE UUID= '" + uuid + "';");
} else {
createPlayer(uuid);
setCoins(uuid, coins);
}
}
public static void removeCoins(String uuid, Integer coins) {
if (playerExists(uuid)) {
setCoins(uuid, Integer.valueOf(getCoins(uuid).intValue() - coins.intValue()));
} else {
createPlayer(uuid);
removeCoins(uuid, coins);
}
}
}
Chyba:
Spoiler: zobrazit
Děkuji moc.
// vím, že je nějaký problém určitě s argumenty, ale nevím co s tím.