123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package me.km.commands;
- import me.km.KajetansMod;
- import me.km.api.GlobalText;
- import me.km.api.Module;
- import me.km.api.ModuleCommand;
- import me.km.api.SimpleConfig;
- import java.io.File;
- import java.util.List;
- import me.km.api.Location;
- import me.km.api.Utils;
- import me.km.permissions.Permission;
- import me.km.permissions.Permissions;
- import net.minecraft.command.ICommandSender;
- import net.minecraft.entity.player.EntityPlayer;
- public class CommandHome extends ModuleCommand
- {
- public CommandHome(Module m)
- {
- super("home", m);
- super.setDescription("Teleportiert einen Spieler zu einem Home-Punkt");
- super.setUsage("/home [name / player:name]");
- super.setPermission(Permissions.HOME);
- }
- @Override
- public boolean execute(ICommandSender cs, String[] arg)
- {
- if(!(cs instanceof EntityPlayer))
- {
- this.getModule().send(cs, GlobalText.onlyPlayer());
- return true;
- }
- EntityPlayer p = (EntityPlayer) cs;
-
- String playeruuid = p.getUniqueID().toString();
- String homename = "";
-
- if(arg.length >= 1)
- {
- homename = arg[0];
- if(arg[0].contains(":") && Permission.hasPermission(cs, Permissions.HOME_OTHER))
- {
- String[] split = homename.split(":");
- String uuid = KajetansMod.playerbank.getDataBank().getUUID(split[0]);
- if(uuid != null && split.length >= 2)
- {
- homename = split[1];
- playeruuid = uuid;
- }
- else if(split.length == 1 && uuid != null)
- {
- homename = "";
- playeruuid = uuid;
- }
- }
- }
- Module m = this.getModule();
- List<File> homes = SimpleConfig.getFiles("home/" + playeruuid);
- if(homes.isEmpty())
- {
- String name = KajetansMod.playerbank.getDataBank().getName(playeruuid);
- if(name.equals(p.getName()))
- {
- m.send(cs, "Du hast keine Homepunkte gesetzt.");
- return true;
- }
- m.send(cs, name + " hat keine Homepunkte gesetzt.");
- return true;
- }
- if(arg.length == 0 || homename.equals(""))
- {
- m.send(cs, "Folgende Homepunkte stehen zur Verfügung:");
- homes.stream().forEach(h -> {m.sendListElement(cs, h.getName().replaceAll(".yml", ""));});
- return true;
- }
-
- try
- {
- SimpleConfig sc = new SimpleConfig(this.getModule(), "home/" + playeruuid + "/" + homename, true);
- Location l = sc.getLocation("home");
- if(l.getWorld() == null)
- {
- throw new NullPointerException();
- }
- Utils.teleportEntity(p, l);
- m.send(cs, "Du wurdest zum Home-Punkt " + homename + " teleportiert.");
- }
- catch(IllegalArgumentException ex)
- {
- m.send(cs, "Der Homepunkt wurde nicht gefunden.");
- return true;
- }
- catch(NullPointerException ex)
- {
- m.send(cs, "Die Welt des Homepunktes wurde nicht gefunden.");
- return true;
- }
- return true;
- }
- }
|