2018-01-15 12:27:22 +01:00
/ *
* Copyright ( c ) 2018 univento . eu - All rights reserved
* You are not allowed to use , distribute or modify this code
* /
2017-06-04 13:47:12 +02:00
package eu.univento.teamvento.commands ;
import eu.univento.commons.player.rank.Rank ;
import eu.univento.core.api.command.Command ;
import eu.univento.core.api.command.CommandArgs ;
import eu.univento.core.api.command.Completer ;
import eu.univento.teamvento.TeamVento ;
import eu.univento.teamvento.generator.GeneratorManager ;
import org.bukkit.Bukkit ;
import org.bukkit.World ;
import java.io.File ;
import java.io.IOException ;
import java.util.LinkedList ;
import java.util.List ;
import java.util.stream.Collectors ;
/ * *
* @author joethei
* @version 1 . 0
* /
public class WorldCommands {
2018-01-15 12:27:22 +01:00
@Command ( name = " world " , description = " all world commands " , usage = " /world " , rank = Rank . Sound )
public void world ( CommandArgs args ) {
args . getSender ( ) . sendMessage ( " /world list " ) ;
args . getSender ( ) . sendMessage ( " /world teleport <world> " ) ;
args . getSender ( ) . sendMessage ( " /world create <name> <generator> " ) ;
args . getSender ( ) . sendMessage ( " /world import <name> <generator> " ) ;
}
@Command ( name = " world.teleport " , aliases = { " wtp " } , description = " teleport through the worlds " , usage = " /world teleport <World> " , rank = Rank . Sound , inGameOnly = true )
2017-06-04 13:47:12 +02:00
public void teleport ( CommandArgs args ) {
if ( args . length ( ) = = 1 ) {
if ( Bukkit . getWorld ( args . getArg ( 0 ) ) ! = null ) {
args . getPlayer ( ) . teleport ( Bukkit . getWorld ( args . getArg ( 0 ) ) . getSpawnLocation ( ) ) ;
args . getPlayer ( ) . sendMessage ( " §aDu hast die Welt gewechselt " ) ;
} else {
args . getPlayer ( ) . sendMessage ( " §cDie Welt " + args . getArg ( 0 ) + " exsistiert nicht " ) ;
}
} else args . getPlayer ( ) . sendMessage ( " §cDie Anzahl der Argumente stimmt nicht " ) ;
}
@Completer ( name = " world.teleport " , aliases = " wtp " )
public List < String > teleportCompletor ( CommandArgs args ) {
return Bukkit . getWorlds ( ) . stream ( ) . map ( World : : getName ) . collect ( Collectors . toCollection ( LinkedList : : new ) ) ;
}
2018-01-15 12:27:22 +01:00
@Command ( name = " world.list " , aliases = { " wl " } , description = " list all worlds " , usage = " /world list " , rank = Rank . Sound )
2017-06-04 13:47:12 +02:00
public void list ( CommandArgs args ) {
args . getSender ( ) . sendMessage ( " §cAll worlds " ) ;
for ( String world : TeamVento . getCfg ( ) . getKeys ( true ) ) {
args . getSender ( ) . sendMessage ( " §a- " + world ) ;
}
}
2018-01-15 12:27:22 +01:00
@Command ( name = " world.import " , aliases = { " wi " } , description = " import already existing worlds " , usage = " /world import <name> <generator> " , rank = Rank . Admin )
2017-06-04 13:47:12 +02:00
public void importWorld ( CommandArgs args ) {
if ( args . length ( ) = = 2 ) {
2018-01-15 12:27:22 +01:00
if ( Bukkit . getWorld ( args . getArg ( 0 ) ) = = null & & new File ( args . getArg ( 0 ) ) . exists ( ) ) {
2017-06-04 13:47:12 +02:00
Bukkit . createWorld ( GeneratorManager . getWorldCreator ( args . getArg ( 0 ) , args . getArg ( 1 ) ) ) ;
TeamVento . getCfg ( ) . set ( args . getArg ( 0 ) , args . getArg ( 1 ) ) ;
try {
TeamVento . getCfg ( ) . save ( TeamVento . getConfigFile ( ) ) ;
} catch ( IOException e ) {
e . printStackTrace ( ) ;
}
args . getSender ( ) . sendMessage ( " §ayour world has been imported " ) ;
2018-01-15 12:27:22 +01:00
} else args . getSender ( ) . sendMessage ( " §cthe chosen world already exists " ) ;
2017-06-04 13:47:12 +02:00
} else {
args . getSender ( ) . sendMessage ( " §cplease use /world import <name> <generator> " ) ;
}
}
2018-01-15 12:27:22 +01:00
@Command ( name = " world.create " , aliases = { " wc " } , description = " create new worlds " , usage = " /world create <name> <generator> " , rank = Rank . SrBuilder )
2017-06-04 13:47:12 +02:00
public void create ( CommandArgs args ) {
if ( args . length ( ) = = 2 ) {
2018-01-15 12:27:22 +01:00
if ( Bukkit . getWorld ( args . getArg ( 0 ) ) = = null & & GeneratorManager . getWorldCreator ( args . getArg ( 1 ) , args . getArg ( 1 ) ) ! = null ) {
2017-06-04 13:47:12 +02:00
Bukkit . createWorld ( GeneratorManager . getWorldCreator ( args . getArg ( 0 ) , args . getArg ( 1 ) ) ) ;
TeamVento . getCfg ( ) . set ( args . getArg ( 0 ) , args . getArg ( 1 ) ) ;
try {
TeamVento . getCfg ( ) . save ( TeamVento . getConfigFile ( ) ) ;
} catch ( IOException e ) {
e . printStackTrace ( ) ;
}
args . getSender ( ) . sendMessage ( " §aYour world has been created " ) ;
}
} else args . getSender ( ) . sendMessage ( " §cPlease use /world create <name> <generator> " ) ;
}
}