2015-07-26 18:14:34 +02:00
package com.plotsquared.sponge ;
2015-07-30 16:25:16 +02:00
import com.google.inject.Inject ;
import com.intellectualcrafters.configuration.ConfigurationSection ;
import com.intellectualcrafters.plot.IPlotMain ;
import com.intellectualcrafters.plot.PS ;
import com.intellectualcrafters.plot.config.C ;
2016-02-19 19:52:26 +01:00
import com.intellectualcrafters.plot.config.ConfigurationNode ;
2015-07-30 16:25:16 +02:00
import com.intellectualcrafters.plot.config.Settings ;
2016-02-19 19:52:26 +01:00
import com.intellectualcrafters.plot.generator.GeneratorWrapper ;
import com.intellectualcrafters.plot.generator.HybridGen ;
2015-07-30 16:25:16 +02:00
import com.intellectualcrafters.plot.generator.HybridUtils ;
2016-02-19 19:52:26 +01:00
import com.intellectualcrafters.plot.generator.IndependentPlotGenerator ;
2015-07-30 16:25:16 +02:00
import com.intellectualcrafters.plot.object.PlotPlayer ;
2016-02-19 19:52:26 +01:00
import com.intellectualcrafters.plot.object.SetupObject ;
2016-03-16 15:15:38 +01:00
import com.intellectualcrafters.plot.util.AbstractTitle ;
import com.intellectualcrafters.plot.util.ChatManager ;
import com.intellectualcrafters.plot.util.ChunkManager ;
import com.intellectualcrafters.plot.util.EconHandler ;
import com.intellectualcrafters.plot.util.EventUtil ;
import com.intellectualcrafters.plot.util.InventoryUtil ;
import com.intellectualcrafters.plot.util.MainUtil ;
import com.intellectualcrafters.plot.util.PlotQueue ;
import com.intellectualcrafters.plot.util.SchematicHandler ;
import com.intellectualcrafters.plot.util.SetupUtils ;
import com.intellectualcrafters.plot.util.StringMan ;
import com.intellectualcrafters.plot.util.TaskManager ;
import com.intellectualcrafters.plot.util.UUIDHandler ;
import com.intellectualcrafters.plot.util.UUIDHandlerImplementation ;
import com.intellectualcrafters.plot.util.WorldUtil ;
2015-07-30 16:25:16 +02:00
import com.intellectualcrafters.plot.uuid.UUIDWrapper ;
2016-02-19 19:52:26 +01:00
import com.plotsquared.sponge.generator.SpongePlotGenerator ;
import com.plotsquared.sponge.listener.ChunkProcessor ;
2015-07-30 16:25:16 +02:00
import com.plotsquared.sponge.listener.MainListener ;
2016-02-19 19:52:26 +01:00
import com.plotsquared.sponge.listener.WorldEvents ;
2016-03-16 15:15:38 +01:00
import com.plotsquared.sponge.util.KillRoadMobs ;
import com.plotsquared.sponge.util.SpongeChatManager ;
import com.plotsquared.sponge.util.SpongeChunkManager ;
import com.plotsquared.sponge.util.SpongeCommand ;
import com.plotsquared.sponge.util.SpongeEconHandler ;
import com.plotsquared.sponge.util.SpongeEventUtil ;
import com.plotsquared.sponge.util.SpongeHybridUtils ;
import com.plotsquared.sponge.util.SpongeInventoryUtil ;
import com.plotsquared.sponge.util.SpongeSchematicHandler ;
2016-02-22 07:20:22 +01:00
import com.plotsquared.sponge.util.SpongeSetupUtils ;
2016-03-16 15:15:38 +01:00
import com.plotsquared.sponge.util.SpongeTaskManager ;
import com.plotsquared.sponge.util.SpongeTitleManager ;
import com.plotsquared.sponge.util.SpongeUtil ;
2016-02-19 19:52:26 +01:00
import com.plotsquared.sponge.util.block.FastQueue ;
import com.plotsquared.sponge.util.block.SlowQueue ;
2015-07-30 16:25:16 +02:00
import com.plotsquared.sponge.uuid.SpongeLowerOfflineUUIDWrapper ;
import com.plotsquared.sponge.uuid.SpongeOnlineUUIDWrapper ;
import com.plotsquared.sponge.uuid.SpongeUUIDHandler ;
2016-03-20 18:56:41 +01:00
import org.mcstats.Metrics ;
2016-02-25 10:13:07 +01:00
import org.slf4j.Logger ;
import org.spongepowered.api.Game ;
import org.spongepowered.api.Server ;
import org.spongepowered.api.Sponge ;
import org.spongepowered.api.entity.living.player.Player ;
import org.spongepowered.api.event.Listener ;
import org.spongepowered.api.event.game.state.GameAboutToStartServerEvent ;
import org.spongepowered.api.event.game.state.GameInitializationEvent ;
import org.spongepowered.api.event.game.state.GamePreInitializationEvent ;
import org.spongepowered.api.plugin.Plugin ;
import org.spongepowered.api.plugin.PluginContainer ;
import org.spongepowered.api.profile.GameProfileManager ;
2016-04-05 18:37:11 +02:00
import org.spongepowered.api.world.Chunk ;
2016-02-25 10:13:07 +01:00
import org.spongepowered.api.world.World ;
import org.spongepowered.api.world.gen.GenerationPopulator ;
import org.spongepowered.api.world.gen.WorldGenerator ;
import org.spongepowered.api.world.gen.WorldGeneratorModifier ;
import java.io.File ;
2016-03-20 18:56:41 +01:00
import java.io.IOException ;
2016-03-12 17:57:24 +01:00
import java.util.ArrayList ;
import java.util.Collection ;
import java.util.List ;
import java.util.UUID ;
2015-07-26 18:14:34 +02:00
2016-03-31 19:23:26 +02:00
@Plugin ( id = " com.plotsquared " , name = " PlotSquared " , description = " Easy, yet powerful Plot World generation and management. " , url = " https://github.com/IntellectualSites/PlotSquared " , version = " 3.3.3 " )
2016-02-22 07:20:22 +01:00
public class SpongeMain implements IPlotMain {
2015-07-26 18:14:34 +02:00
public static SpongeMain THIS ;
2016-03-26 20:47:34 +01:00
public PluginContainer plugin ;
2015-11-26 04:40:22 +01:00
2015-09-11 12:09:22 +02:00
@Inject
private Logger logger ;
@Inject
private Game game ;
2015-07-26 18:14:34 +02:00
private Server server ;
2015-11-26 04:40:22 +01:00
2015-12-19 20:30:06 +01:00
private GameProfileManager resolver ;
2015-11-26 04:40:22 +01:00
2016-02-22 07:20:22 +01:00
// @Override
2015-09-13 06:04:31 +02:00
public Logger getLogger ( ) {
2016-03-23 02:41:37 +01:00
return this . logger ;
2015-07-28 13:38:49 +02:00
}
2015-11-26 04:40:22 +01:00
2015-09-13 06:04:31 +02:00
public Game getGame ( ) {
2016-03-23 02:41:37 +01:00
return this . game ;
2015-07-28 13:38:49 +02:00
}
2015-11-26 04:40:22 +01:00
2015-09-13 06:04:31 +02:00
public Server getServer ( ) {
2016-03-23 02:41:37 +01:00
return this . server ;
2015-07-28 13:38:49 +02:00
}
2015-11-26 04:40:22 +01:00
2015-12-19 20:30:06 +01:00
public GameProfileManager getResolver ( ) {
2016-03-23 02:41:37 +01:00
if ( this . resolver = = null ) {
this . resolver = this . game . getServer ( ) . getGameProfileManager ( ) ;
2016-02-22 07:20:22 +01:00
}
2016-03-23 02:41:37 +01:00
return this . resolver ;
2015-07-28 13:38:49 +02:00
}
2015-11-26 04:40:22 +01:00
2015-12-19 20:30:06 +01:00
public SpongeMain getPlugin ( ) {
return THIS ;
2015-07-30 16:25:16 +02:00
}
2015-11-26 04:40:22 +01:00
2015-10-07 08:33:33 +02:00
@Listener
2016-03-23 02:41:37 +01:00
public void init ( GameInitializationEvent event ) {
2016-02-19 19:52:26 +01:00
log ( " PlotSquared: Game init " ) ;
2015-09-07 14:17:48 +02:00
}
2015-11-26 04:40:22 +01:00
2015-10-07 08:33:33 +02:00
@Listener
2016-03-23 02:41:37 +01:00
public void onInit ( GamePreInitializationEvent event ) {
2016-02-19 19:52:26 +01:00
log ( " PlotSquared: Game pre init " ) ;
2015-12-19 20:30:06 +01:00
}
2015-10-07 08:33:33 +02:00
@Listener
2016-03-23 02:41:37 +01:00
public void onServerAboutToStart ( GameAboutToStartServerEvent event ) {
2016-02-19 19:52:26 +01:00
log ( " PlotSquared: Server init " ) ;
2015-07-26 18:14:34 +02:00
THIS = this ;
2016-03-26 20:47:34 +01:00
THIS . plugin = this . game . getPluginManager ( ) . fromInstance ( this ) . get ( ) ;
2016-02-22 07:20:22 +01:00
new PS ( this , " Sponge " ) ;
2016-03-23 02:41:37 +01:00
this . server = this . game . getServer ( ) ;
this . game . getRegistry ( ) . register ( WorldGeneratorModifier . class , ( WorldGeneratorModifier ) new HybridGen ( ) . specify ( ) ) ;
2015-07-30 16:25:16 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void log ( String message ) {
2015-07-30 16:25:16 +02:00
message = C . format ( message , C . replacements ) ;
2015-09-13 06:04:31 +02:00
if ( ! Settings . CONSOLE_COLOR ) {
2015-07-30 16:25:16 +02:00
message = message . replaceAll ( '\u00a7' + " [a-z|0-9] " , " " ) ;
}
2016-03-29 06:56:44 +02:00
if ( this . server = = null ) {
2016-03-23 02:41:37 +01:00
this . logger . info ( message ) ;
2015-07-30 16:25:16 +02:00
return ;
}
2016-03-23 02:41:37 +01:00
this . server . getConsole ( ) . sendMessage ( SpongeUtil . getText ( message ) ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public File getDirectory ( ) {
2015-07-26 18:14:34 +02:00
return new File ( " mods/PlotSquared " ) ;
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-10 07:34:41 +02:00
public File getWorldContainer ( ) {
2015-09-13 05:46:45 +02:00
return new File ( " world " ) ;
2015-09-10 07:34:41 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
public void disable ( ) {
PS . get ( ) . disable ( ) ;
THIS = null ;
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2016-03-17 17:05:36 +01:00
public int [ ] getPluginVersion ( ) {
2016-03-23 02:41:37 +01:00
PluginContainer plugin = this . game . getPluginManager ( ) . fromInstance ( this ) . get ( ) ;
2016-04-02 01:14:46 +02:00
String version = plugin . getVersion ( ) . orElse ( " " ) ;
2016-03-23 02:41:37 +01:00
String [ ] split = version . split ( " \\ . " ) ;
2016-03-21 03:52:16 +01:00
return new int [ ] { Integer . parseInt ( split [ 0 ] ) , Integer . parseInt ( split [ 1 ] ) , split . length = = 3 ? Integer . parseInt ( split [ 2 ] ) : 0 } ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public int [ ] getServerVersion ( ) {
2015-07-28 13:38:49 +02:00
log ( " Checking minecraft version: Sponge: " ) ;
2016-03-23 02:41:37 +01:00
String version = this . game . getPlatform ( ) . getMinecraftVersion ( ) . getName ( ) ;
String [ ] split = version . split ( " \\ . " ) ;
2016-03-21 03:52:16 +01:00
return new int [ ] { Integer . parseInt ( split [ 0 ] ) , Integer . parseInt ( split [ 1 ] ) , split . length = = 3 ? Integer . parseInt ( split [ 2 ] ) : 0 } ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-30 16:25:16 +02:00
@Override
2015-09-13 06:04:31 +02:00
public InventoryUtil initInventoryUtil ( ) {
2015-07-30 16:25:16 +02:00
return new SpongeInventoryUtil ( ) ;
}
2015-11-26 04:40:22 +01:00
2015-07-30 16:25:16 +02:00
@Override
2015-09-13 06:04:31 +02:00
public EconHandler getEconomyHandler ( ) {
2016-02-19 19:52:26 +01:00
SpongeEconHandler econ = new SpongeEconHandler ( ) ;
2016-02-22 07:20:22 +01:00
Sponge . getEventManager ( ) . registerListeners ( this , econ ) ;
2016-02-19 19:52:26 +01:00
return econ ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public EventUtil initEventUtil ( ) {
2015-07-30 16:25:16 +02:00
return new SpongeEventUtil ( ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public ChunkManager initChunkManager ( ) {
2015-07-30 16:25:16 +02:00
return new SpongeChunkManager ( ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public SetupUtils initSetupUtils ( ) {
2015-08-02 21:25:41 +02:00
return new SpongeSetupUtils ( ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public HybridUtils initHybridUtils ( ) {
2015-08-02 13:56:18 +02:00
return new SpongeHybridUtils ( ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public SchematicHandler initSchematicHandler ( ) {
2015-08-02 13:56:18 +02:00
return new SpongeSchematicHandler ( ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public TaskManager getTaskManager ( ) {
2016-04-05 18:37:11 +02:00
return new SpongeTaskManager ( this ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void runEntityTask ( ) {
2015-07-30 16:25:16 +02:00
new KillRoadMobs ( ) . run ( ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerCommands ( ) {
2016-03-16 15:15:38 +01:00
getGame ( ) . getCommandManager ( ) . register ( THIS , new SpongeCommand ( ) , " plots " , " p " , " plot " , " ps " , " plotsquared " , " p2 " , " 2 " ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerPlayerEvents ( ) {
2016-02-22 07:20:22 +01:00
Sponge . getEventManager ( ) . registerListeners ( this , new MainListener ( ) ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerInventoryEvents ( ) {
2016-02-19 19:52:26 +01:00
// Part of PlayerEvents - can be moved if necessary
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerPlotPlusEvents ( ) {
2015-07-26 18:14:34 +02:00
// TODO Auto-generated method stub
2015-07-30 16:25:16 +02:00
log ( " registerPlotPlusEvents is not implemented! " ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerForceFieldEvents ( ) {
2015-07-26 18:14:34 +02:00
// TODO Auto-generated method stub
2015-07-30 16:25:16 +02:00
log ( " registerForceFieldEvents is not implemented! " ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public boolean initWorldEdit ( ) {
try {
2015-09-07 14:17:48 +02:00
Class . forName ( " com.sk89q.worldedit.WorldEdit " ) ;
return true ;
2016-03-23 02:41:37 +01:00
} catch ( Throwable e ) {
2015-09-07 14:17:48 +02:00
return false ;
}
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public UUIDHandlerImplementation initUUIDHandler ( ) {
2015-07-28 13:38:49 +02:00
UUIDWrapper wrapper ;
2015-09-13 06:04:31 +02:00
if ( Settings . OFFLINE_MODE | | ! PS . get ( ) . checkVersion ( getServerVersion ( ) , 1 , 7 , 6 ) ) {
2015-07-28 13:38:49 +02:00
wrapper = new SpongeLowerOfflineUUIDWrapper ( ) ;
2015-09-13 06:04:31 +02:00
} else {
2015-07-28 13:38:49 +02:00
wrapper = new SpongeOnlineUUIDWrapper ( ) ;
}
return new SpongeUUIDHandler ( wrapper ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public boolean initPlotMeConverter ( ) {
2016-02-19 19:52:26 +01:00
// PlotMe was never ported to sponge
2015-07-26 18:14:34 +02:00
return false ;
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2016-03-23 02:41:37 +01:00
public void unregister ( PlotPlayer player ) {
2015-07-30 16:25:16 +02:00
SpongeUtil . removePlayer ( player . getName ( ) ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerChunkProcessor ( ) {
2016-02-22 07:20:22 +01:00
Sponge . getEventManager ( ) . registerListeners ( this , new ChunkProcessor ( ) ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void registerWorldEvents ( ) {
2016-02-22 07:20:22 +01:00
Sponge . getEventManager ( ) . registerListeners ( this , new WorldEvents ( ) ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-26 18:14:34 +02:00
@Override
2015-09-13 06:04:31 +02:00
public String getServerName ( ) {
2015-07-28 13:38:49 +02:00
throw new UnsupportedOperationException ( " NOT IMPLEMENTED YET " ) ;
2015-07-26 18:14:34 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-28 08:06:19 +02:00
@Override
2015-09-13 06:04:31 +02:00
public void startMetrics ( ) {
try {
2016-03-29 06:56:44 +02:00
Metrics metrics = new Metrics ( this . game , this . plugin ) ;
2015-07-28 13:38:49 +02:00
metrics . start ( ) ;
log ( C . PREFIX . s ( ) + " &6Metrics enabled. " ) ;
2016-03-20 18:56:41 +01:00
} catch ( IOException e ) {
2015-07-28 13:38:49 +02:00
log ( C . PREFIX . s ( ) + " &cFailed to load up metrics. " ) ;
}
2015-07-28 08:06:19 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-28 08:06:19 +02:00
@Override
2016-03-29 21:47:59 +02:00
public void setGenerator ( String worldName ) {
World world = SpongeUtil . getWorld ( worldName ) ;
2016-02-19 19:52:26 +01:00
if ( world = = null ) {
// create world
2016-03-29 21:47:59 +02:00
ConfigurationSection worldConfig = PS . get ( ) . config . getConfigurationSection ( " worlds. " + worldName ) ;
2016-03-19 19:07:55 +01:00
String manager = worldConfig . getString ( " generator.plugin " , " PlotSquared " ) ;
String generator = worldConfig . getString ( " generator.init " , manager ) ;
2016-03-23 02:41:37 +01:00
int type = worldConfig . getInt ( " generator.type " ) ;
int terrain = worldConfig . getInt ( " generator.terrain " ) ;
SetupObject setup = new SetupObject ( ) ;
2016-02-19 19:52:26 +01:00
setup . plotManager = manager ;
setup . setupGenerator = generator ;
setup . type = type ;
setup . terrain = terrain ;
setup . step = new ConfigurationNode [ 0 ] ;
2016-03-29 21:47:59 +02:00
setup . world = worldName ;
2016-02-19 19:52:26 +01:00
SetupUtils . manager . setupWorld ( setup ) ;
} else {
2016-03-29 21:47:59 +02:00
throw new IllegalArgumentException ( " World already loaded: " + worldName + " ??? " ) ;
2016-02-19 19:52:26 +01:00
}
WorldGenerator wg = world . getWorldGenerator ( ) ;
GenerationPopulator gen = wg . getBaseGenerationPopulator ( ) ;
if ( gen instanceof SpongePlotGenerator ) {
2016-03-29 21:47:59 +02:00
PS . get ( ) . loadWorld ( worldName , ( SpongePlotGenerator ) gen ) ;
2016-02-19 19:52:26 +01:00
} else {
2016-03-21 03:52:16 +01:00
throw new UnsupportedOperationException ( " NOT IMPLEMENTED YET! " ) ;
2016-02-19 19:52:26 +01:00
}
2015-07-30 16:25:16 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-30 16:25:16 +02:00
@Override
2015-09-13 06:04:31 +02:00
public AbstractTitle initTitleManager ( ) {
2015-07-30 16:25:16 +02:00
return new SpongeTitleManager ( ) ;
2015-07-28 08:06:19 +02:00
}
2015-11-26 04:40:22 +01:00
2015-07-30 19:24:01 +02:00
@Override
2016-03-23 02:41:37 +01:00
public PlotPlayer wrapPlayer ( Object player ) {
if ( player instanceof Player ) {
return SpongeUtil . getPlayer ( ( Player ) player ) ;
} else if ( player instanceof String ) {
return UUIDHandler . getPlayer ( ( String ) player ) ;
} else if ( player instanceof UUID ) {
return UUIDHandler . getPlayer ( ( UUID ) player ) ;
2015-07-30 19:24:01 +02:00
}
2016-02-19 19:52:26 +01:00
// TODO FIXME offline player
2015-07-30 19:24:01 +02:00
return null ;
}
2015-11-26 04:40:22 +01:00
2015-08-03 20:20:04 +02:00
@Override
2015-09-13 06:04:31 +02:00
public String getNMSPackage ( ) {
2016-02-22 07:20:22 +01:00
return " " ; //TODO FIXME
2015-08-03 20:20:04 +02:00
}
2015-11-26 04:40:22 +01:00
2015-08-24 18:28:32 +02:00
@Override
2015-09-13 06:04:31 +02:00
public ChatManager < ? > initChatManager ( ) {
2015-08-24 18:28:32 +02:00
return new SpongeChatManager ( ) ;
}
2016-02-19 19:52:26 +01:00
@Override
2016-04-05 18:37:11 +02:00
public PlotQueue < Chunk > initPlotQueue ( ) {
2016-02-19 19:52:26 +01:00
if ( PS . get ( ) . checkVersion ( getServerVersion ( ) , 1 , 8 , 0 ) ) {
try {
2016-02-25 10:13:07 +01:00
MainUtil . canSendChunk = true ;
2016-02-19 19:52:26 +01:00
return new FastQueue ( ) ;
} catch ( Throwable e ) {
e . printStackTrace ( ) ;
}
}
return new SlowQueue ( ) ;
}
@Override
public WorldUtil initWorldUtil ( ) {
2016-02-19 20:55:49 +01:00
return new SpongeUtil ( ) ;
2016-02-19 19:52:26 +01:00
}
@Override
public GeneratorWrapper < ? > getGenerator ( String world , String name ) {
if ( name = = null ) {
return null ;
}
2016-03-23 02:41:37 +01:00
Collection < WorldGeneratorModifier > wgms = this . game . getRegistry ( ) . getAllOf ( WorldGeneratorModifier . class ) ;
2016-02-19 19:52:26 +01:00
for ( WorldGeneratorModifier wgm : wgms ) {
if ( StringMan . isEqualIgnoreCaseToAny ( name , wgm . getName ( ) , wgm . getId ( ) ) ) {
if ( wgm instanceof GeneratorWrapper < ? > ) {
return ( GeneratorWrapper < ? > ) wgm ;
}
return new SpongePlotGenerator ( wgm ) ;
}
}
return new SpongePlotGenerator ( new HybridGen ( ) ) ;
}
@Override
public GeneratorWrapper < ? > wrapPlotGenerator ( IndependentPlotGenerator generator ) {
return new SpongePlotGenerator ( generator ) ;
}
@Override
public List < String > getPluginIds ( ) {
2016-02-19 20:13:41 +01:00
ArrayList < String > names = new ArrayList < > ( ) ;
2016-03-23 02:41:37 +01:00
for ( PluginContainer plugin : this . game . getPluginManager ( ) . getPlugins ( ) ) {
2016-02-19 20:13:41 +01:00
names . add ( plugin . getName ( ) + " ; " + plugin . getVersion ( ) + " : " + true ) ;
}
return names ;
2016-02-19 19:52:26 +01:00
}
2015-09-11 12:09:22 +02:00
}