• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Items über Config in Inventar setzen lassen

XynLP

Minecrafter
Registriert
23 April 2017
Beiträge
8
Alter
24
Diamanten
300
Hey liebe Community, ich bin gerade dabei ein Warp Plugin zu programmieren welches ein Inventar öffnet wenn man /warp eintippt.
Ich hab das Plugin schon vor einer Zeit programmiert und möchte es nun überarbeiten.

Ich möchte nun alles über eine Config laufen lassen. So das ich nicht jedes mal alles neu in Eclipse eintippen muss.
Ich erstelle die Warppunkte wie folgt:

Java:
package at.BukkitXyn.XynServerManagementsystem.Commands;

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

import at.BukkitXyn.XynServerManagementsystem.Untils.setlocs;
import at.BukkitXyn.XynServerManagementsystem.main.Main;

public class setlocs_cmd implements CommandExecutor{
    
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("setlocs")) {
            if(!(sender instanceof Player)) {
                sender.sendMessage(Main.noperm);
            } else {
                Player p = (Player)sender;
                if(p.hasPermission("GamerCraft.setlocs")) {
                    if(args.length == 1) {
                        if(args[0].equalsIgnoreCase("sp")) {
                            //Spawnloc setzen
                            setlocs.run("sp", p);
                        } else if(args[0].equalsIgnoreCase("plotme")) {
                            //CityBuild setzen
                            setlocs.run("plotme", p);
                        } else if(args[0].equalsIgnoreCase("Farmwelt")) {
                            //Survival setzen
                            setlocs.run("Farmwelt", p);
                        } else if(args[0].equalsIgnoreCase("Nether")) {
                            //Survival setzen
                            setlocs.run("Nether", p);
                        } else if(args[0].equalsIgnoreCase("End")) {
                            //Survival setzen
                            setlocs.run("End", p);
                        } else if(args[0].equalsIgnoreCase("Rules")) {
                            //Survival setzen
                            setlocs.run("Rules", p);
                        } else if(args[0].equalsIgnoreCase("Com")) {
                            //Survival setzen
                            setlocs.run("Com", p);
                        } else if(args[0].equalsIgnoreCase("Vorbauen")) {
                            //Survival setzen
                            setlocs.run("Vorbauen", p);
                        } else {
                            p.sendMessage(Main.prefix + "§cFehler: Nutze /setlocs <sp, plotme, Farmwelt, Nether, End, ru, com, Vor>");
                        }
                        
                    } else {
                        p.sendMessage(Main.prefix + "§cFehler: Nutze /setlocs <sp, plotme, Farmwelt, Nether, End, ru, sw, skp>");
                    }
                } else {
                    p.sendMessage(Main.noperm);
                }
            }
        }
        return true;
    }

}

Java:
package at.BukkitXyn.XynServerManagementsystem.Untils;

import java.io.File;
import java.io.IOException;

import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;

import at.BukkitXyn.XynServerManagementsystem.main.Main;

public class setlocs {
    
    public static File file = new File("plugins//BlutMond//WarpLocations.yml");
    public static FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
    
    public static void run(String loc2, Player p) {
        if(loc2 == "sp") {
            Location loc = p.getLocation();
            cfg.set("Spawn.X", loc.getX());
            cfg.set("Spawn.Y", loc.getY());
            cfg.set("Spawn.Z", loc.getZ());
            cfg.set("Spawn.Yaw", loc.getYaw());
            cfg.set("Spawn.Pitch", loc.getPitch());
            cfg.set("Spawn.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bSpawn §7gesetzt!");
        }else if(loc2 == "plotme") {
            Location loc = p.getLocation();
            cfg.set("Plot.X", loc.getX());
            cfg.set("Plot.Y", loc.getY());
            cfg.set("Plot.Z", loc.getZ());
            cfg.set("Plot.Yaw", loc.getYaw());
            cfg.set("Plot.Pitch", loc.getPitch());
            cfg.set("Plot.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bPlotme §7gesetzt!");
        }else if(loc2 == "Farmwelt") {
            Location loc = p.getLocation();
            cfg.set("Farmwelt.X", loc.getX());
            cfg.set("Farmwelt.Y", loc.getY());
            cfg.set("Farmwelt.Z", loc.getZ());
            cfg.set("Farmwelt.Yaw", loc.getYaw());
            cfg.set("Farmwelt.Pitch", loc.getPitch());
            cfg.set("Farmwelt.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bFarmwelt §7gesetzt!");
        }else if(loc2 == "Nether") {
            Location loc = p.getLocation();
            cfg.set("Nether.X", loc.getX());
            cfg.set("Nether.Y", loc.getY());
            cfg.set("Nether.Z", loc.getZ());
            cfg.set("Nether.Yaw", loc.getYaw());
            cfg.set("Nether.Pitch", loc.getPitch());
            cfg.set("Nether.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bNether §7gesetzt!");
        }else if(loc2 == "End") {
            Location loc = p.getLocation();
            cfg.set("End.X", loc.getX());
            cfg.set("End.Y", loc.getY());
            cfg.set("End.Z", loc.getZ());
            cfg.set("End.Yaw", loc.getYaw());
            cfg.set("End.Pitch", loc.getPitch());
            cfg.set("End.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bEnd §7gesetzt!");
        }else if(loc2 == "Rules") {
            Location loc = p.getLocation();
            cfg.set("Rules.X", loc.getX());
            cfg.set("Rules.Y", loc.getY());
            cfg.set("Rules.Z", loc.getZ());
            cfg.set("Rules.Yaw", loc.getYaw());
            cfg.set("Rules.Pitch", loc.getPitch());
            cfg.set("Rules.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bRules §7gesetzt!");
        }else if(loc2 == "Com") {
            Location loc = p.getLocation();
            cfg.set("Com.X", loc.getX());
            cfg.set("Com.Y", loc.getY());
            cfg.set("Com.Z", loc.getZ());
            cfg.set("Com.Yaw", loc.getYaw());
            cfg.set("Com.Pitch", loc.getPitch());
            cfg.set("Com.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bCommunity §7gesetzt!");
        }else if(loc2 == "Vorbauen") {
            Location loc = p.getLocation();
            cfg.set("Vorbauen.X", loc.getX());
            cfg.set("Vorbauen.Y", loc.getY());
            cfg.set("Vorbauen.Z", loc.getZ());
            cfg.set("Vorbauen.Yaw", loc.getYaw());
            cfg.set("Vorbauen.Pitch", loc.getPitch());
            cfg.set("Vorbauen.World", loc.getWorld().getName());
            try {
                cfg.save(file);
            } catch (IOException e) {
            }
            p.sendMessage(Main.prefix + "§7Du hast die Location für §bVorbauen §7gesetzt!");
        }
    }
        
}

Nun möchte ich aber wie bei Essentials /setwarp bzw /setloc <name> machen können und es wird Automatisch in die Config gesetzt und ein Default Item in mein Warp Inventar gesetzt (Ich würde als Default Item einen Stick nehmen) dies soll man dann auch in der Config einstellen können welches Item bzw welcher Block im Inventar erscheinen soll.

Java:
package at.BukkitXyn.XynServerManagementsystem.Commands;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class warps_cmd implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        
        
        Player p = (Player)sender;
        if(cmd.getName().equalsIgnoreCase("warp")){
                
            Inventory inv = Bukkit.createInventory(null, 9 * 3, "§aWarp");
            
            if(p.hasPermission("XynWarp.Spawn")) {
                ItemStack i1 = new ItemStack(Material.NETHER_STAR);
                ItemMeta m1 = i1.getItemMeta();
                m1.setDisplayName("§bSpawn");
                i1.setItemMeta(m1);
                
                inv.setItem(5-1, i1);
            }
            if(p.hasPermission("XynWarp.Plotme")) {
                ItemStack i2 = new ItemStack(Material.DIAMOND_BLOCK);
                ItemMeta m2 = i2.getItemMeta();
                m2.setDisplayName("§5Plotme");
                i2.setItemMeta(m2);
                
                inv.setItem(3-1, i2);
            }
            if(p.hasPermission("XynWarp.Farmwelt")) {
                ItemStack i3 = new ItemStack(Material.GOLD_INGOT);
                ItemMeta m3 = i3.getItemMeta();
                m3.setDisplayName("§3Farmwelt");
                i3.setItemMeta(m3);
                
                inv.setItem(7-1, i3);
            }
            if(p.hasPermission("XynWarp.Nether")) {
                ItemStack i4 = new ItemStack(Material.QUARTZ);
                ItemMeta m4 = i4.getItemMeta();
                m4.setDisplayName("§5Nether");
                i4.setItemMeta(m4);
                
                inv.setItem(1-1, i4);
            }
            if(p.hasPermission("XynWarp.END")) {
                ItemStack i5 = new ItemStack(Material.ENDER_EYE);
                ItemMeta m5 = i5.getItemMeta();
                m5.setDisplayName("§2END");
                i5.setItemMeta(m5);
                
                inv.setItem(9-1, i5);
            }
            if(p.hasPermission("XynWarp.Rules")) {
                ItemStack i6 = new ItemStack(Material.BOOK);
                ItemMeta m6 = i6.getItemMeta();
                m6.setDisplayName("§eRules");
                i6.setItemMeta(m6);   
                
                inv.setItem(11-1, i6);
            }
            if(p.hasPermission("XynWarp.Mall")) {
                ItemStack i7 = new ItemStack(Material.CHEST);
                ItemMeta m7 = i7.getItemMeta();
                m7.setDisplayName("§4Mall");
                i7.setItemMeta(m7);
                
                inv.setItem(18-1, i7);
            }
            if(p.hasPermission("XynWarp.Vorbauen")) {
                ItemStack i8 = new ItemStack(Material.LADDER);
                ItemMeta m8 = i8.getItemMeta();
                m8.setDisplayName("§5Vorbauen");
                i8.setItemMeta(m8);
                
                inv.setItem(15-1, i8);
            }
            
/*            if(p.hasPermission("XynWarp.Plotme")) {
                ItemStack i8 = new ItemStack(Material.LADDER);
                ItemMeta m8 = i8.getItemMeta();
                m8.setDisplayName("§5Vorbauen");
                i8.setItemMeta(m8);
            }
            
            if(p.hasPermission("XynWarp.Plotme")) {
                ItemStack i8 = new ItemStack(Material.LADDER);
                ItemMeta m8 = i8.getItemMeta();
                m8.setDisplayName("§5Vorbauen");
                i8.setItemMeta(m8);
            }
            
            if(p.hasPermission("XynWarp.Plotme")) {
                ItemStack i8 = new ItemStack(Material.LADDER);
                ItemMeta m8 = i8.getItemMeta();
                m8.setDisplayName("§5Vorbauen");
                i8.setItemMeta(m8);
            }
            
            if(p.hasPermission("XynWarp.Plotme")) {
                ItemStack i8 = new ItemStack(Material.LADDER);
                ItemMeta m8 = i8.getItemMeta();
                m8.setDisplayName("§5Vorbauen");
                i8.setItemMeta(m8);
            }
*/
            
            p.openInventory(inv);
        }
        return false;
    }

}

Java:
package at.BukkitXyn.XynServerManagementsystem.Listeners;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;

import at.BukkitXyn.XynServerManagementsystem.Untils.tplocs;

public class WarpInteractEvent implements Listener {
    
    @EventHandler
    public void onInventoryClick(InventoryClickEvent e) {
        Player p = (Player)e.getWhoClicked();
        if(e.getView().getTitle().equalsIgnoreCase("§aWarp")) {
            //navigator
            e.setCancelled(true);
            if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§bSpawn")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("sp", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§5Plotme")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("plotme", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§3Farmwelt")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("Farmwelt", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§5Nether")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("Nether", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§2END")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("End", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§eRules")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("Rules", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§4Community")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("Com", p);
            }else if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§5Vorbauen")) {
                p.sendMessage("§6 Teleportiere...");
                tplocs.run("Vorbauen", p);
            }
        }
    }

}

Wie setze ich mein vorhaben am besten durch?

Würde mich über eure Hilfe/Antworten/Erklärungen freuen.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Niemand hier hat Lust dir dein Plugin zu schreiben. Wenn du es also selbst machen willst, musst du damit leben, dass wir dir hier vor allem kleinere Fragen beantworten. Wenn du also konkrete Probleme hast, kannst du diese vorstellen. Wenn du aber überhaupt keine richtige Idee hast, was du machen willst, kann man dir auch schlecht helfen.
 

XynLP

Minecrafter
Registriert
23 April 2017
Beiträge
8
Alter
24
Diamanten
300
Niemand hier hat Lust dir dein Plugin zu schreiben. Wenn du es also selbst machen willst, musst du damit leben, dass wir dir hier vor allem kleinere Fragen beantworten. Wenn du also konkrete Probleme hast, kannst du diese vorstellen. Wenn du aber überhaupt keine richtige Idee hast, was du machen willst, kann man dir auch schlecht helfen.
Das mir keiner mein Plugin schreiben will ist mir klar. Ich habe eigentlich erhofft das mir jemand erklären kann wie ich das mit dem erstellen in der Config machen kann und wie ich es hinbekomme das Item was im Inventar sein soll über die Config zu bearbeiten.

Tut mir leid das so zu sagen, jedoch hatte ich mit so einer unhöfflichen Antwort hier nicht gerechnet. Ich habe nirgendwo erwähnt das die Community oder du mein Plugin Coden sollen. Ich habe lediglich danach gefragt wie ich mein vorhaben am besten umsetzen kann und das haben schon mehrere die Fragen genau wie ich gestellt. Aber keiner hat eine Antwort wie "Es möchte keiner dein Plugin Coden" bekommen. Es wurde nur nochmal nachgefragt nach dem vorhaben und dann geholfen. Aber Danke! Du hast deinen Job als Mod echt gut gemacht. Auf sowas kann ich gut verzichten.
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Naja, wir wissen nicht wirklich, woran es aktuell scheitert. Ich versuchs trotzdem mal:
- Ich kann dir mein Tutorial ans Herz legen, wie man Objekte mit Bukkit einfach in eine Config schreiben und auch wieder auslesen kann.
- Überleg dir, wie ein Warp als Objekt tatsächlich aufgebaut ist. Welche Eigenschaften gibt es?

Wenn dir das nicht endgültig weiterhilft, solltest du uns aber zumindest deine neuen Erkenntnisse und Änderungen am Code mitteilen.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Das mir keiner mein Plugin schreiben will ist mir klar. Ich habe eigentlich erhofft das mir jemand erklären kann wie ich das mit dem erstellen in der Config machen kann und wie ich es hinbekomme das Item was im Inventar sein soll über die Config zu bearbeiten.

Tut mir leid das so zu sagen, jedoch hatte ich mit so einer unhöfflichen Antwort hier nicht gerechnet. Ich habe nirgendwo erwähnt das die Community oder du mein Plugin Coden sollen. Ich habe lediglich danach gefragt wie ich mein vorhaben am besten umsetzen kann und das haben schon mehrere die Fragen genau wie ich gestellt. Aber keiner hat eine Antwort wie "Es möchte keiner dein Plugin Coden" bekommen. Es wurde nur nochmal nachgefragt nach dem vorhaben und dann geholfen. Aber Danke! Du hast deinen Job als Mod echt gut gemacht. Auf sowas kann ich gut verzichten.
Du hast in deinem ersten Beitrag 118 Wörter geschrieben. In dem Beitrag, in dem du dich über mich aufregst sind es 143 Wörter. Wenn du diese Energie benutzen würdest, um dein Problem adequat zu beschreiben, dann hättest du vermutlich inzwischen schon eine zufriedenstellende Antwort und nicht 5 Posts, die mit deinem eigentlich Thema nur insofern zu tun haben, dass sie dir vorschlag deine Probleme konkret zu beschreiben.

Aber du wirst wissen was du tust. Es findet sich bestimmt jemand, der dir bei deinem Problem auch ohne große Informationen helfen kann. Ich wünsch dir viel Erfolg!
 
Oben