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:
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.
Wie setze ich mein vorhaben am besten durch?
Würde mich über eure Hilfe/Antworten/Erklärungen freuen.
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.