BSkyBlock/src/main/java/us/tastybento/bskyblock/commands/island/IslandCreateCommand.java

61 lines
1.9 KiB
Java

package us.tastybento.bskyblock.commands.island;
import java.io.IOException;
import java.util.List;
import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
import us.tastybento.bskyblock.api.user.User;
import us.tastybento.bskyblock.managers.island.NewIsland;
/**
* /island create - Create an island.
*
* @author Tastybento
*/
public class IslandCreateCommand extends CompositeCommand {
/**
* Command to create an island
* @param islandCommand - parent command
*/
public IslandCreateCommand(CompositeCommand islandCommand) {
super(islandCommand, "create");
}
@Override
public void setup() {
setPermission("island.create");
setOnlyPlayer(true);
setDescription("commands.island.create.description");
}
/* (non-Javadoc)
* @see us.tastybento.bskyblock.api.commands.CommandArgument#execute(org.bukkit.command.CommandSender, java.lang.String[])
*/
@Override
public boolean execute(User user, String label, List<String> args) {
if (getIslands().hasIsland(getWorld(), user.getUniqueId())) {
user.sendMessage("general.errors.already-have-island");
return false;
}
if (getIslands().inTeam(getWorld(), user.getUniqueId())) {
user.sendMessage("general.errors.already-have-island");
return false;
}
user.sendMessage("commands.island.create.creating-island");
try {
NewIsland.builder()
.player(user)
.world(getWorld())
.reason(Reason.CREATE)
.build();
return true;
} catch (IOException e) {
getPlugin().logError("Could not create island for player. " + e.getMessage());
user.sendMessage("commands.island.create.unable-create-island");
return false;
}
}
}