Register for your free account! | Forgot your password?

You last visited: Today at 05:38

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Eigenes Plugin

Discussion on Eigenes Plugin within the Minecraft forum part of the Other Online Games category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2009
Posts: 355
Received Thanks: 14
Eigenes Plugin

Hey Leute,
ich bin seit ein paar Tagen dabei mir ein eigenes Plugin zu schreiben.
Bis jetzt hat fast alles wunderbar geklappt.
Nur wenn ich bei meinen Plugin ingame /geschenk eingebe soll dieser Spieler ein geschenk bekommen und in einer Datei abgespeichert werden, um kein zweites Geschenk zu bekommen.
Das mit dem auflisten läuft perfekt, nur ich bekomme es nicht hin, das ich das Item in der Config einstellen kann.
Code:
 package de.norcdic.ewigkeitsplugin;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;

public class GeschenkCommand implements CommandExecutor {
	private FileConfiguration getConfig() {
		return cfg;

	}
	
	public GeschenkCommand(Ewigkeit plugin) {
		
	}
	public void loadConfig() {
		FileConfiguration cfg = this.getConfig();
		cfg.options().copyDefaults(true);
		this.saveConfig();
	}
	
	private void saveConfig() {	
		
	}

	File file = new File("plugins/EwigkeitsPlugin", "geschenk.yml");
	FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
	@Override
	public boolean onCommand(CommandSender cs, Command cmd, String lable, String[] args) {
		if (!(cs instanceof Player)) {
			loadConfig();
			cs.sendMessage("§cDu kannst kein Geschenk bekommen, du hast kein Inventar!");
			return true;
		}
		Player p = (Player) cs;
		List<String> list = this.cfg.getStringList("geschenke");
		if (list == null) {
			list = new ArrayList<String>();
		}
		if (list.contains(p.getName())) {
			p.sendMessage("§cDu hast schon ein Geschenk bekommen!");
			return true;
		}
		PlayerInventory pi = p.getInventory();
		if (pi.firstEmpty() == -1) {
			p.sendMessage("§cDein Inventar ist voll!");
		}
		if (!cs.hasPermission("nor.geschenk")){
			p.sendMessage("§cDu hast keine Rechte!");
			return true;
		}
		list.add(p.getName());
		this.cfg.set("geschenke", list);
		try {
			this.cfg.save(file);
			int Config = this.getConfig().getInt("geschenkitem");
			ItemStack item = new ItemStack (Config);
			pi.addItem(new ItemStack (item));
			p.sendMessage("§cDu hast ein Geschenk bekommen.");
			p.updateInventory();
		} catch (IOException e) {
			e.printStackTrace();
			cs.sendMessage("§cEs ist ein Fehler aufgetreten!");
		}

		return true;	
			
	}
	
}
Vielen dank im voraus!
mfg
polikas
polikas is offline  
Old 06/26/2013, 19:47   #2
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
Pack es bitte in [code][/ code].

Ich kann das Problem nicht erkennen, entweder weil nichts eingerückt ist oder weil es keinen gibt.

Tritt denn ein Fehler auf? Wie sieht die Config aus?
ComputerBaer is offline  
Old 06/26/2013, 19:50   #3
 
elite*gold: 0
Join Date: Oct 2009
Posts: 355
Received Thanks: 14
So meine Config:
Code:
geschenkitem: 20
info:
  motd:
  - heyheyheyhey
messages:
- ASDASDASDASD
Und ja es tritt ein fehler auf, wenn ich den Server starte
Code:
2013-06-26 20:23:04 [WARNING] [ewigkeitsplugin] Task #6 for ewigkeitsplugin v1.0 generated an exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.RangeCheck(Unknown Source)
	at java.util.ArrayList.get(Unknown Source)
	at de.norcdic.ewigkeitsplugin.MessageRunnable.run(MessageRunnable.java:19)
	at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:53)
	at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
	at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:513)
	at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
	at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
	at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
	at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
2013-06-26 20:23:05 [INFO] NorCdiC issued server command: /geschenk
Funktioniert jetzt so wie es soll, außer das die Fehlermeldung in der Console bleibt
polikas is offline  
Old 06/27/2013, 16:41   #4
 
vanilla.kush's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 105
Received Thanks: 9
Alle Zeichensetzungen richtig beachtet?
vanilla.kush is offline  
Old 06/27/2013, 16:44   #5
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
Dann würde ich sagen, dass du den Fehler mal beheben solltest.
Hier ist dein Ansatzpunkt: de.norcdic.ewigkeitsplugin.MessageRunnable.run(Mes sageRunnable.java:19)
Und du suchst nach einer IndexOutOfBoundsException bei einer Liste.
ComputerBaer is offline  
Old 06/28/2013, 20:37   #6
 
elite*gold: 0
Join Date: Mar 2012
Posts: 95
Received Thanks: 5
Warum machst du hier nochmal einen neuen ItemStack?

Code:
this.cfg.save(file);
int Config = this.getConfig().getInt("geschenkitem");
ItemStack item = new ItemStack (Config);
pi.addItem([B]new ItemStack[/B] (item));
p.sendMessage("§cDu hast ein Geschenk bekommen.");
p.updateInventory();
Du hast bereits mit
Code:
ItemStack item = new ItemStack (Config);
einen ItemStack erstellt, dann musst du noch eine Menge definieren
Code:
ItemStack item = new ItemStack (Config, MENGE(int));
und dann einfach so geben, wie du es hast.

Wenn du das beachtest, sollte es gehen.
XxXRichiXxX is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Eigenes Bukkit Plugin erstellen
10/18/2011 - Minecraft - 20 Replies
Hallo, ich will mal gerne ein Bukkit Plugin selbst erstellen! Nur leider weiss ich nicht wie das geht :(... Kann mir jemand bitte sagen, wie sowas geht. Bitte möglichst Verständlich für Anfänger ^^ Ich habe gelesen, dass man ,,Eclipse´´ braucht... gebt mir bitte auch die passenden Links! Danke schonmal im vorraus! Superrene



All times are GMT +1. The time now is 05:38.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.