Hey, i have some Problems with my Addon 'Coins':
Its planned to be a simple Coins Plugin with Config.
It starts normal without any Problems,
if you (re)load the Skript with the Code it says everything is okay,
but if you execute the code it says 'An internal error occured while attempting to perfom this command.';
And the Console says:
The Main class of the Plugin (Written in German):
The Skript:
If you need more than this, just write it down below.
Thanks for reading & helping!
- Daniel
Its planned to be a simple Coins Plugin with Config.
It starts normal without any Problems,
if you (re)load the Skript with the Code it says everything is okay,
but if you execute the code it says 'An internal error occured while attempting to perfom this command.';
And the Console says:
code_language.skript:
[21:56:31 ERROR]: #!#! at java.lang.reflect.Method.invoke(Method.java:498)
[21:56:31 ERROR]: #!#! at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306)
[21:56:31 ERROR]: #!#! at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[21:56:31 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1154)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13)
[21:56:32 ERROR]: #!#! at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[21:56:32 ERROR]: #!#! at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[21:56:32 ERROR]: #!#! at java.lang.Thread.run(Thread.java:748)
[21:56:32 ERROR]: #!#! Caused by: java.lang.IllegalStateException: Initial initialization
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125)
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66)
[21:56:32 ERROR]: #!#! at coins.Main.<init>(Main.java:24)
[21:56:32 ERROR]: #!#! at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[21:56:32 ERROR]: #!#! at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[21:56:32 ERROR]: #!#! at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[21:56:32 ERROR]: #!#! at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[21:56:32 ERROR]: #!#! at java.lang.Class.newInstance(Class.java:442)
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76)
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131)
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329)
[21:56:32 ERROR]: #!#! at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251)
[21:56:32 ERROR]: #!#! at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:198)
[21:56:32 ERROR]: #!#! at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525)
[21:56:32 ERROR]: #!#! at java.lang.Thread.run(Thread.java:748)
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Version Information:
[21:56:32 ERROR]: #!#! Skript: 2.1.2
[21:56:32 ERROR]: #!#! Bukkit: 1.8.8-R0.1-SNAPSHOT
[21:56:32 ERROR]: #!#! Minecraft: 1.8.8
[21:56:32 ERROR]: #!#! Java: 1.8.0_144
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Running CraftBukkit: false
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Current node: null
[21:56:32 ERROR]: #!#! Current item: set amount of %player% coins to %number%
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! Thread: Server thread
[21:56:32 ERROR]: #!#!
[21:56:32 ERROR]: #!#! End of Error.
[21:56:32 ERROR]: #!#!
The Main class of the Plugin (Written in German):
Java:
package coins;
import java.io.File;
import java.io.IOException;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import ch.njol.skript.Skript;
import ch.njol.skript.lang.ExpressionType;
import skript.EffRemoveCoins;
import skript.EffResetCoins;
import skript.EffSetCoins;
import skript.ExprGetCoins;
public class Main extends JavaPlugin implements Listener{
public File coinsFile; // Players
public YamlConfiguration cfconfig;
public Integer standardamount = 5000;
public String name = "Coins";
public File configFile; // Some Options
public YamlConfiguration cfgFile;
@Override
public void onEnable() {
Bukkit.getServer().getLogger().info("[Coins] Plugin gestartet!");
checkDir("Coins");
configFile = new File("plugins/Coins/config.yml");
new YamlConfiguration();
cfgFile = YamlConfiguration.loadConfiguration(configFile);
if(!configFile.exists()) { //Check if your external file exists
try {
configFile.createNewFile(); //if not so, create a new one
cfgFile.set("command", "enabled");
cfgFile.set("name", "Coins"); //
// LAST EDIT
cfgFile.set("standardamount", 5000);
cfgFile.options().copyDefaults(true);
cfgFile.save(configFile); //save the configuration of config1 or config2 to your new file
} catch (IOException e) {
System.out.println("[Coins] Couldn't create config.yml!"); //if something goes wrong this is what will be done then
System.out.print("[Coins] Error:" + e.toString());
this.getPluginLoader().disablePlugin(this);
}
}else {
name = cfgFile.getString("name"); // Loading Name
standardamount = cfgFile.getInt("standardamount"); // Loading start Capital
}
coinsFile = new File("plugins/Coins/players.yml");
new YamlConfiguration();
cfconfig = YamlConfiguration.loadConfiguration(coinsFile);
if(!coinsFile.exists()) { //Check if your external file exists
try {
coinsFile.createNewFile(); //if not so, create a new one
cfconfig.options().copyDefaults(true);
cfconfig.save(coinsFile); //save the configuration of config1 or config2 to your new file
} catch (IOException e) {
System.out.println("[Coins] Couldn't create players.yml!"); //if something goes wrong this is what will be done then
System.out.print("[Coins] Error: " + e.toString());
this.getPluginLoader().disablePlugin(this);
}
}
if(Bukkit.getPluginManager().getPlugin("Skript") == null) {
sendMessage("[Coins] Skript nicht gefunden :(");
}else {
sendMessage("[Coins] Skript wurde gefunden :)");
this.registerSkript();
}
}
public void registerSkript() {
Skript.registerEffect(EffSetCoins.class, new String[] {"set %player%'[s] coins to %number%"});
Skript.registerEffect(EffSetCoins.class, new String[] {"add %number% to %player%'[s] coins"});
Skript.registerEffect(EffRemoveCoins.class, new String[] {"remove %number% of %player%'[s] coins"});
Skript.registerEffect(EffResetCoins.class, new String[] {"reset %player%'[s] coins"});
Skript.registerExpression(ExprGetCoins.class, String.class, ExpressionType.SIMPLE, new String[] {"%player%'[s] coins"});
}
private boolean checkDir(String dirName)
{
dirName = "plugins/" + dirName;
File stats = new File(dirName);
if (stats.exists() && stats.isDirectory()) // Überprüfen, ob es den Ordner gibt
{
return true;
}
else
{
if (stats.mkdir()) // Erstellen des Ordners
{
return true;
}
else
{
return false;
}
}
}
@Override
public void onDisable() {
saveConfig();
sendMessage("[Coins] Stope Plugin!");
}
public void onJoin(PlayerJoinEvent e){
if(cfconfig.contains(e.getPlayer().getUniqueId().toString()) == false) {
setCoins(e.getPlayer(), 5000);
}
}
public void setCoins(Player p, int amount) {
cfconfig.set(p.getUniqueId().toString(), amount);
saveconfig();
}
public void addCoins(Player p, int amount) {
int money = (int) cfconfig.get(p.getUniqueId().toString()) + amount;
cfconfig.set(p.getUniqueId().toString(), money);
saveconfig();
}
public void removeCoins(Player p, int amount) {
int currentmoney = (int) cfconfig.get(p.getUniqueId().toString());
if(currentmoney >= amount) {
cfconfig.set(p.getUniqueId().toString(), currentmoney - amount);
}else {
cfconfig.set(p.getUniqueId().toString(), 0);
}
saveconfig();
}
public void resetCoins(Player p) {
cfconfig.set(p.getUniqueId().toString(), 0);
saveconfig();
}
public Integer getCoins(Player p) {
return (Integer) Integer.getInteger((String) cfconfig.get(p.getUniqueId().toString())).intValue();
}
public String prefix() {
return "§6§l§o" + name + " §7» ";
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("coins")) {
if(sender instanceof Player) {
Player p = (Player)sender;
if(cfconfig.contains(p.getUniqueId().toString()) == false) {
cfconfig.set(p.getUniqueId().toString(), 5000);
saveconfig();
}
if(args.length == 0) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Du hast§e " + cfconfig.get(p.getUniqueId().toString()) + " §7Coins");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
if(args.length >= 1 && args.length <= 3) {
if(args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("?")) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§aUm deine Coins zu sehen: §7/coins");
p.sendMessage(prefix() + "§aUm Coins anderer Spieler zu sehen: §7/coins §aSpieler");
p.sendMessage(prefix() + "§aUm Spieler etwas von deinen Coins abzugeben: §7/coins give §bSpieler §eBetrag");
if(p.hasPermission("coins.admin")) {
p.sendMessage(prefix() + "§aUm weitere Befehle zu sehen: §7/coins admin");
}
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else if(args[0].equalsIgnoreCase("admin")) {
if(p.hasPermission("coins.admin") || p.hasPermission("coins.*")) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§aUm einem Spieler Coins hinzuzufügen: §7/coins add §aSpieler §eBetrag");
p.sendMessage(prefix() + "§aUm einem Spieler Coins zu nehmen: §7/coins remove §cSpieler §eBetrag");
p.sendMessage(prefix() + "§aCoins eines Spielers setzen: §7/coins set §bSpieler §eBetrag");
p.sendMessage(prefix() + "§aCoins eines Spielers zurück setzen: §7/coins reset §cSpieler");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Es tut mir leid, aber du darfst diesen Befehl icht benutzen!");
p.sendMessage(prefix() + "§7Fehlende Permission: §ccoins.admin");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else if(args[0].equalsIgnoreCase("give")) {
if(args.length != 3) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7/coins give §aSpieler §eBetrag");
p.sendMessage(prefix() + "§aMit diesem Befehl kannst du anderen Spielern Geld übertragen!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
@SuppressWarnings("deprecation")
OfflinePlayer empf = Bukkit.getOfflinePlayer(args[1].toString());
if(empf != null) {
if(isNumeric(args[2])) {
int currentmoney = (int) cfconfig.get(p.getUniqueId().toString());
int amount = Integer.parseInt(args[2]);
if(currentmoney >= amount) {
removeCoins(p, amount);
addCoins(empf.getPlayer(), amount);
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Du hast §a" + args[1] + "§e " + args[2] + " §7Coins gegeben!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
if(empf.isOnline()) {
Player p2 = empf.getPlayer();
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
p2.sendMessage(prefix() + "§7Du hast von §a" + args[1] + "§e " + args[2] + " §7Coins bekommen!");
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint hast du keine §c" + args[2].toString() + " §7Coins!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}
}else if(args[0].equalsIgnoreCase("add")) {
if(p.hasPermission("coins.add") || p.hasPermission("coins.*")) {
if(args.length != 3) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7/coins add §aSpieler §eBetrag");
p.sendMessage(prefix() + "§aMit diesem Befehl kannst du anderen Spielern Geld hinzufügen!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
@SuppressWarnings("deprecation")
OfflinePlayer empf = Bukkit.getOfflinePlayer(args[1].toString());
if(empf != null) {
if(isNumeric(args[2])) {
int amount = Integer.parseInt(args[2]);
addCoins(empf.getPlayer(), amount);
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Du hast §a" + args[1] + "§e " + args[2] + " §7Coins hinzugefügt!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
if(empf.isOnline()) {
Player p2 = empf.getPlayer();
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
p2.sendMessage(prefix() + "§7Du hast von §a" + args[1] + "§e " + args[2] + " §7Coins hinzugefügt bekommen!");
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}
}else {
noPermission(p, "coins.add");
}
}else if(args[0].equalsIgnoreCase("remove")) {
if(p.hasPermission("coins.remove") || p.hasPermission("coins.*")) {
if(args.length != 3) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7/coins remove §aSpieler §eBetrag");
p.sendMessage(prefix() + "§aMit diesem Befehl kannst du anderen Spielern Geld weg nehmen!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
@SuppressWarnings("deprecation")
OfflinePlayer empf = Bukkit.getOfflinePlayer(args[1].toString());
if(empf != null) {
if(isNumeric(args[2])) {
int amount = Integer.parseInt(args[2]);
removeCoins(empf.getPlayer(), amount);
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Du hast §a" + args[1] + "§e " + args[2] + " §7Coins weg genommen!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
if(empf.isOnline()) {
Player p2 = empf.getPlayer();
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
p2.sendMessage(prefix() + "§7Du hast von §a" + args[1] + "§e " + args[2] + " §7Coins weg genommen bekommen!");
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}
}else {
noPermission(p, "coins.remove");
}
}else if(args[0].equalsIgnoreCase("dev")) {
if(args.length == 2) {
@SuppressWarnings("deprecation")
OfflinePlayer p2 = Bukkit.getOfflinePlayer(args[1]);
p.sendMessage("Status for you arg: " + cfconfig.getStringList(p2.getUniqueId().toString()));
p.sendMessage("Status for your arg: " + cfconfig.contains(p2.getUniqueId().toString()));
}
}else if(args[0].equalsIgnoreCase("set")) {
if(p.hasPermission("coins.set") || p.hasPermission("coins.*")) {
if(args.length != 3) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7/coins set §aSpieler §eBetrag");
p.sendMessage(prefix() + "§aMit diesem Befehl kannst du den Account anderer Spieler auf eine bestimmte Anzahl von Coins setzen!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
//@SuppressWarnings("deprecation")
Player empf = Bukkit.getPlayer(args[1].toString());
if(empf != null && empf.hasPlayedBefore()) {
if(isNumeric(args[2])) {
int amount = Integer.parseInt(args[2]);
setCoins(empf.getPlayer(), amount);
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Du hast den Account von §a" + args[1] + "§7 auf §e" + args[2] + " §7gesetzt!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
if(empf.isOnline()) {
Player p2 = empf.getPlayer();
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
p2.sendMessage(prefix() + "§7Dein Account wurde von §a" + args[1] + "§7 auf §e" + args[2] + " §7Coins gesetzt!!");
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint ist §c" + args[2].toString() + " §7keine ungültige Zahl!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}
}else {
noPermission(p, "coins.set");
}
}else if(args[0].equalsIgnoreCase("reset")) {
if(p.hasPermission("coins.reset") || p.hasPermission("coins.*")) {
if(args.length != 2) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7/coins reset §aSpieler");
p.sendMessage(prefix() + "§aMit diesem Befehl kannst du den Account anderer Spieler zurück setzen!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
Player empf = Bukkit.getPlayer(args[1].toString());
if(empf != null) {
resetCoins(empf.getPlayer());
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Du hast den Account von §a" + args[1] + "§7 zurück gesetzt!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
if(empf.isOnline()) {
Player p2 = empf.getPlayer();
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
p2.sendMessage(prefix() + "§7Dein Account wurde von §a" + args[1] + "§7 zurück gesetzt!");
p2.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[1].toString() + " §7nicht!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}
}else {
noPermission(p, "coins.reset");
}
}else {
@SuppressWarnings("deprecation")
OfflinePlayer p2 = Bukkit.getOfflinePlayer(args[0]);
if(p2 != null) {
if(cfconfig.contains(p2.getUniqueId().toString()) == false) {
cfconfig.set(p2.getUniqueId().toString(), 5000);
saveconfig();
}
if(cfconfig.contains(p2.getUniqueId().toString())) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Der Spieler §a" + args[0] + "§7 hat §e" + cfconfig.get(p2.getUniqueId().toString()) + " §7Coins!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}else {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Oh, wie es scheint existiert der Spieler §c" + args[0].toString() + " §7nicht!");
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
}else {
wrongArgument(p, "§7Oh, wie es aussieht, ist kein Spieler mit dem Namen §c " + args[0] + "§7 online!");
}
}
}else {
p.sendMessage(prefix() + "§cFehler! §aHilfe gibt es bei §e/coins hilfe/?");
}
}
} else
sender.sendMessage(prefix() + "§7Du kannst als §cKonsole§7 diesen Befehl nicht benutzen!");
}
return true;
}
public void sendMessage(String msg) {
org.bukkit.Bukkit.getServer().getLogger().info(msg);
}
public void wrongArgument(Player p, String text) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + text);
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
public void noPermission(Player p,String perm) {
p.sendMessage(prefix() + "⛀⛁⛃⛂");
p.sendMessage(prefix() + "§7Es tut mir leid, aber du darfst diesen Befehl icht benutzen!");
p.sendMessage(prefix() + "§7Fehlende Permission: §c" + perm);
p.sendMessage(prefix() + "⛀⛁⛃⛂");
}
public static boolean isNumeric(String str)
{
return str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.
}
public void saveconfig() {
try {
cfconfig.options().copyDefaults(true);
cfconfig.save(coinsFile);
}catch(Exception e){
sendMessage("[Coins] Failed saving config:");
sendMessage("[Coins] " + e.toString());
}
}
}
The Skript:
code_language.skript:
on npc right click:
if citizen is 0:
cancel event
open "CHEST" with 4 rows named " &7&lHändler" to player
format slot 10 of player with shears named "&7&lScherre" with lore "&a100 &2Coins" to be unstealable
format slot 12 of player with iron shovel named "&7&lSchaufel" with lore "&a50 &2Coins" to be unstealable
format slot 13 of player with iron pickaxe named "&7&lSpitzhacke" with lore "&a150 &2Coins" to be unstealable
format slot 14 of player with iron axe named "&7&lAxt" with lore "&a150 &2Coins" to be unstealable
format slot 16 of player with fishing rod named "&7&lAngel" with lore "&a25 &2Coins" to be unstealable
format slot 19 of player with shears of efficiency 5 and unbreaking 3 named "&7&lScherre" with lore "&a200 &2Coins" to be unstealable
format slot 21 of player with iron shovel of efficiency 5, silk touch 1 and unbreaking 3 named "&7&lSchaufel" with lore "&a350 &2Coins" to be unstealable
format slot 22 of player with iron pickaxe of efficiency 5, silk touch 1 and unbreaking 3 named "&7&lSpitzhacke" with lore "&a450 &2Coins" to be unstealable
format slot 23 of player with iron axe of efficiency 5, silk touch 1 and unbreaking 3 named "&7&lAxt" with lore "&a450 &2Coins" to be unstealable
format slot 25 of player with fishing rod of efficiency 5 and unbreaking 3 named "&7&lAngel" with lore "&a125 &2Coins" to be unstealable
command /buyitems [<player>] [<item>]:
trigger:
executor is console:
send "X"
else:
send "&cMaybe you will execute this command, maybe not."
#add 100 to player's coins
command /testcoins [<text>]:
trigger:
player is "SeltixSub":
arg is "1":
set player's coins to 1000
arg is "2":
add 1001 to player's coins
arg is "3":
remove 11 of player's coins
arg is "4":
reset player's coins
arg is "5":
send "Coins: %player's coins%"
If you need more than this, just write it down below.
Thanks for reading & helping!
- Daniel