mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
Fix more Sponge Classes
This commit is contained in:
parent
63cd7c8b97
commit
660cd1b870
@ -1,20 +1,50 @@
|
||||
package com.plotsquared.sponge;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
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;
|
||||
import com.intellectualcrafters.plot.config.Configuration;
|
||||
import com.intellectualcrafters.plot.config.Settings;
|
||||
import com.intellectualcrafters.plot.generator.GeneratorWrapper;
|
||||
import com.intellectualcrafters.plot.generator.HybridUtils;
|
||||
import com.intellectualcrafters.plot.generator.IndependentPlotGenerator;
|
||||
import com.intellectualcrafters.plot.object.PlotArea;
|
||||
import com.intellectualcrafters.plot.object.PlotBlock;
|
||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||
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.PlotQueue;
|
||||
import com.intellectualcrafters.plot.util.SchematicHandler;
|
||||
import com.intellectualcrafters.plot.util.SetupUtils;
|
||||
import com.intellectualcrafters.plot.util.TaskManager;
|
||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||
import com.intellectualcrafters.plot.util.UUIDHandlerImplementation;
|
||||
import com.intellectualcrafters.plot.util.WorldUtil;
|
||||
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
|
||||
import com.plotsquared.sponge.generator.SpongeBasicGen;
|
||||
import com.plotsquared.sponge.generator.SpongeGeneratorWrapper;
|
||||
import com.plotsquared.sponge.generator.WorldModify;
|
||||
import com.plotsquared.sponge.listener.MainListener;
|
||||
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.SpongeInventoryUtil;
|
||||
import com.plotsquared.sponge.util.SpongeMetrics;
|
||||
import com.plotsquared.sponge.util.SpongeTaskManager;
|
||||
import com.plotsquared.sponge.util.SpongeTitleManager;
|
||||
import com.plotsquared.sponge.util.SpongeUtil;
|
||||
import com.plotsquared.sponge.uuid.SpongeLowerOfflineUUIDWrapper;
|
||||
import com.plotsquared.sponge.uuid.SpongeOnlineUUIDWrapper;
|
||||
import com.plotsquared.sponge.uuid.SpongeUUIDHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.spongepowered.api.CatalogType;
|
||||
import org.spongepowered.api.Game;
|
||||
@ -35,51 +65,23 @@ import org.spongepowered.api.text.translation.Translatable;
|
||||
import org.spongepowered.api.text.translation.Translation;
|
||||
import org.spongepowered.api.world.DimensionTypes;
|
||||
import org.spongepowered.api.world.GeneratorTypes;
|
||||
import org.spongepowered.api.world.World;
|
||||
import org.spongepowered.api.world.WorldCreationSettings;
|
||||
import org.spongepowered.api.world.gen.WorldGeneratorModifier;
|
||||
|
||||
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;
|
||||
import com.intellectualcrafters.plot.config.Configuration;
|
||||
import com.intellectualcrafters.plot.config.Settings;
|
||||
import com.intellectualcrafters.plot.generator.HybridUtils;
|
||||
import com.intellectualcrafters.plot.object.PlotArea;
|
||||
import com.intellectualcrafters.plot.object.PlotBlock;
|
||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||
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.SchematicHandler;
|
||||
import com.intellectualcrafters.plot.util.SetupUtils;
|
||||
import com.intellectualcrafters.plot.util.TaskManager;
|
||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||
import com.intellectualcrafters.plot.util.UUIDHandlerImplementation;
|
||||
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
|
||||
import com.plotsquared.sponge.generator.SpongeBasicGen;
|
||||
import com.plotsquared.sponge.generator.SpongeGeneratorWrapper;
|
||||
import com.plotsquared.sponge.generator.WorldModify;
|
||||
import com.plotsquared.sponge.listener.MainListener;
|
||||
import com.plotsquared.sponge.util.KillRoadMobs;
|
||||
import com.plotsquared.sponge.util.SpongeBlockManager;
|
||||
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.SpongeInventoryUtil;
|
||||
import com.plotsquared.sponge.util.SpongeMetrics;
|
||||
import com.plotsquared.sponge.util.SpongeTaskManager;
|
||||
import com.plotsquared.sponge.util.SpongeTitleManager;
|
||||
import com.plotsquared.sponge.util.SpongeUtil;
|
||||
import com.plotsquared.sponge.uuid.SpongeLowerOfflineUUIDWrapper;
|
||||
import com.plotsquared.sponge.uuid.SpongeOnlineUUIDWrapper;
|
||||
import com.plotsquared.sponge.uuid.SpongeUUIDHandler;
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by robin on 01/11/2014
|
||||
@ -87,6 +89,7 @@ import com.plotsquared.sponge.uuid.SpongeUUIDHandler;
|
||||
|
||||
@Plugin(id = "PlotSquared", name = "PlotSquared", version = "3.0.0", dependencies = "before:WorldEdit,required-after:TotalEconomy")
|
||||
public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
|
||||
public static SpongeMain THIS;
|
||||
|
||||
@Inject
|
||||
@ -122,7 +125,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
}
|
||||
|
||||
public Text getText(final String m) {
|
||||
return Texts.of(m);
|
||||
return Text.of(m);
|
||||
}
|
||||
|
||||
public Translatable getTranslation(final String m) {
|
||||
@ -191,7 +194,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
|
||||
@Override
|
||||
public Optional<Object> getInstance() {
|
||||
return Optional.<Object> of(THIS);
|
||||
return Optional.<Object>of(THIS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -224,7 +227,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
// Hook for Project Worlds
|
||||
hookProjectWorlds();
|
||||
}
|
||||
|
||||
|
||||
public void hookProjectWorlds() {
|
||||
Optional<PluginContainer> plugin = game.getPluginManager().getPlugin("Project Worlds");
|
||||
if (plugin.isPresent()) {
|
||||
@ -234,8 +237,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
SpongeBasicGen generator = new SpongeBasicGen(null);
|
||||
method.invoke(null, "plotsquared", new WorldModify(generator, false));
|
||||
log("Adding plotsquared modifier to Project Worlds");
|
||||
}
|
||||
catch (Throwable e) {
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@ -263,7 +265,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
}
|
||||
}
|
||||
|
||||
public World createWorldFromConfig(final String world) {
|
||||
public WorldCreationSettings createWorldFromConfig(final String world) {
|
||||
final SpongeBasicGen generator = new SpongeBasicGen(world);
|
||||
final PlotArea plotworld = generator.getNewPlotWorld(world);
|
||||
SpongeGeneratorWrapper wrapper;
|
||||
@ -272,23 +274,26 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
} else {
|
||||
wrapper = new SpongeGeneratorWrapper(world, null);
|
||||
}
|
||||
PS.get().loadWorld(world, wrapper);
|
||||
PS.get().loadWorld(world, (GeneratorWrapper<?>) wrapper);
|
||||
switch (plotworld.TYPE) {
|
||||
// Normal
|
||||
// Normal
|
||||
case 0: {
|
||||
modify = new WorldModify(generator, false);
|
||||
game.getRegistry().registerWorldGeneratorModifier(modify);
|
||||
final Optional<World> builder = game.getRegistry().createBuilder(WorldBuilder.class).name(world).enabled(true).loadsOnStartup(true).keepsSpawnLoaded(true).dimensionType(DimensionTypes.OVERWORLD)
|
||||
.generator(GeneratorTypes.FLAT).usesMapFeatures(false).generatorModifiers(modify).build();
|
||||
return builder.get();
|
||||
game.getRegistry().register(WorldModify.class, modify);
|
||||
WorldCreationSettings builder = WorldCreationSettings.builder().name(world).enabled(true).loadsOnStartup(true).keepsSpawnLoaded(true)
|
||||
.dimension(DimensionTypes.OVERWORLD).generator(GeneratorTypes.OVERWORLD).usesMapFeatures(false).generatorModifiers(modify)
|
||||
.build();
|
||||
return builder;
|
||||
}
|
||||
// Augmented
|
||||
default: {
|
||||
modify = new WorldModify(generator, true);
|
||||
game.getRegistry().registerWorldGeneratorModifier(modify);
|
||||
final Optional<World> builder = game.getRegistry().createBuilder(WorldBuilder.class).name(world).enabled(true).loadsOnStartup(true).keepsSpawnLoaded(true).dimensionType(DimensionTypes.OVERWORLD)
|
||||
.generator(GeneratorTypes.OVERWORLD).usesMapFeatures(false).generatorModifiers(modify).build();
|
||||
return builder.get();
|
||||
game.getRegistry().register(WorldModify.class, modify);
|
||||
final WorldCreationSettings builder =
|
||||
WorldCreationSettings.builder().name(world).enabled(true).loadsOnStartup(true).keepsSpawnLoaded(true)
|
||||
.dimension(DimensionTypes.OVERWORLD)
|
||||
.generator(GeneratorTypes.OVERWORLD).usesMapFeatures(false).generatorModifiers(modify).build();
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -325,7 +330,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
|
||||
public void registerBlocks() {
|
||||
blockMap = new BlockState[256][];
|
||||
blockMapReverse = new HashMap<BlockState, PlotBlock>();
|
||||
blockMapReverse = new HashMap<>();
|
||||
final HashMap<String, BlockState> states = new HashMap<>();
|
||||
|
||||
PS.get().copyFile("ids.txt", "config");
|
||||
@ -342,15 +347,14 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
for (final Field field : fields) {
|
||||
final BlockType type = (BlockType) field.get(null);
|
||||
final BlockState state = type.getDefaultState();
|
||||
if (state != null) {
|
||||
try {
|
||||
states.put(type.getId() + ":" + 0, state);
|
||||
} catch (final Exception e) {}
|
||||
try {
|
||||
states.put(type.getId() + ":" + 0, state);
|
||||
} catch (final Exception e) {
|
||||
}
|
||||
}
|
||||
final String packaze = "org.spongepowered.api.data.type.";
|
||||
for (int i = 0; i < data_lines.size(); i++) {
|
||||
final String classname = packaze + data_lines.get(i).trim();
|
||||
for (String data_line : data_lines) {
|
||||
final String classname = packaze + data_line.trim();
|
||||
try {
|
||||
final Class<?> clazz = Class.forName(classname);
|
||||
fields = clazz.getDeclaredFields();
|
||||
@ -359,10 +363,10 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
final String minecraft_id = type.getId();
|
||||
final BlockState state = states.get(minecraft_id + ":" + 0);
|
||||
if (state == null) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} catch (final Throwable e) {}
|
||||
} catch (ClassNotFoundException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
|
||||
}
|
||||
}
|
||||
|
||||
PlotBlock block = null;
|
||||
@ -377,8 +381,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
final String minecraft_id = line;
|
||||
final BlockState state = states.remove(minecraft_id + ":" + block.data);
|
||||
final BlockState state = states.remove(line + ":" + block.data);
|
||||
if (state == null) {
|
||||
continue;
|
||||
}
|
||||
@ -401,11 +404,11 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
if (!Settings.CONSOLE_COLOR) {
|
||||
message = message.replaceAll('\u00a7' + "[a-z|0-9]", "");
|
||||
}
|
||||
if ((server == null) || (server.getConsole() == null)) {
|
||||
if ((server == null)) {
|
||||
logger.info(message);
|
||||
return;
|
||||
}
|
||||
server.getConsole().sendMessage(Texts.of(message));
|
||||
server.getConsole().sendMessage(Text.of(message));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -430,7 +433,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
final String version = plugin.getVersion();
|
||||
log("Checking plugin version: PlotSquared: ");
|
||||
final String[] split = version.split("\\.");
|
||||
return new int[] { Integer.parseInt(split[0]), Integer.parseInt(split[1]), (split.length == 3) ? Integer.parseInt(split[2]) : 0 };
|
||||
return new int[]{Integer.parseInt(split[0]), Integer.parseInt(split[1]), (split.length == 3) ? Integer.parseInt(split[2]) : 0};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -438,7 +441,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
log("Checking minecraft version: Sponge: ");
|
||||
final String version = game.getPlatform().getMinecraftVersion().getName();
|
||||
final String[] split = version.split("\\.");
|
||||
return new int[] { Integer.parseInt(split[0]), Integer.parseInt(split[1]), (split.length == 3) ? Integer.parseInt(split[2]) : 0 };
|
||||
return new int[]{Integer.parseInt(split[0]), Integer.parseInt(split[1]), (split.length == 3) ? Integer.parseInt(split[2]) : 0};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -447,17 +450,21 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpongeGeneratorWrapper getGenerator(final String world, final String name) {
|
||||
public GeneratorWrapper<?> getGenerator(final String world, final String name) {
|
||||
if (name == null) {
|
||||
return new SpongeGeneratorWrapper(world, null);
|
||||
return (GeneratorWrapper<?>) new SpongeGeneratorWrapper(world, null);
|
||||
}
|
||||
if (name.equals("PlotSquared")) {
|
||||
return new SpongeGeneratorWrapper(world, new SpongeBasicGen(world));
|
||||
return (GeneratorWrapper<?>) new SpongeGeneratorWrapper(world, new SpongeBasicGen(world));
|
||||
} else {
|
||||
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
|
||||
}
|
||||
}
|
||||
|
||||
@Override public GeneratorWrapper<?> wrapPlotGenerator(String world, IndependentPlotGenerator generator) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EconHandler getEconomyHandler() {
|
||||
// TODO Auto-generated method stub
|
||||
@ -465,11 +472,15 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
return new SpongeEconHandler();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockManager initBlockManager() {
|
||||
return new SpongeBlockManager();
|
||||
@Override public PlotQueue initPlotQueue() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public WorldUtil initWorldUtil() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public EventUtil initEventUtil() {
|
||||
return new SpongeEventUtil();
|
||||
@ -507,7 +518,7 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
|
||||
@Override
|
||||
public void registerCommands() {
|
||||
getGame().getCommandManager().register(THIS, new SpongeCommand(), new String[] { "plots", "p", "plot", "ps", "plotsquared", "p2", "2" });
|
||||
getGame().getCommandManager().register(THIS, new SpongeCommand(), "plots", "p", "plot", "ps", "plotsquared", "p2", "2");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -605,6 +616,10 @@ public class SpongeMain implements IPlotMain, PluginContainer {
|
||||
return new SpongeTitleManager();
|
||||
}
|
||||
|
||||
@Override public List<String> getPluginIds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlotPlayer wrapPlayer(final Object obj) {
|
||||
if (obj instanceof Player) {
|
||||
|
@ -1,22 +1,6 @@
|
||||
package com.plotsquared.sponge.listener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Ambient;
|
||||
import org.bukkit.entity.Boat;
|
||||
import org.bukkit.entity.Explosive;
|
||||
import org.bukkit.entity.Minecart;
|
||||
import org.bukkit.entity.Monster;
|
||||
|
||||
import com.avaje.ebean.Transaction;
|
||||
import com.flowpowered.math.vector.Vector3d;
|
||||
import com.intellectualcrafters.plot.PS;
|
||||
import com.intellectualcrafters.plot.config.C;
|
||||
import com.intellectualcrafters.plot.config.Settings;
|
||||
@ -42,7 +26,48 @@ import com.plotsquared.listener.PlotListener;
|
||||
import com.plotsquared.sponge.SpongeMain;
|
||||
import com.plotsquared.sponge.object.SpongePlayer;
|
||||
import com.plotsquared.sponge.util.SpongeUtil;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import org.spongepowered.api.block.BlockSnapshot;
|
||||
import org.spongepowered.api.block.BlockState;
|
||||
import org.spongepowered.api.data.Transaction;
|
||||
import org.spongepowered.api.entity.Entity;
|
||||
import org.spongepowered.api.entity.EntityTypes;
|
||||
import org.spongepowered.api.entity.Transform;
|
||||
import org.spongepowered.api.entity.explosive.Explosive;
|
||||
import org.spongepowered.api.entity.explosive.PrimedTNT;
|
||||
import org.spongepowered.api.entity.living.Ambient;
|
||||
import org.spongepowered.api.entity.living.Living;
|
||||
import org.spongepowered.api.entity.living.animal.Animal;
|
||||
import org.spongepowered.api.entity.living.monster.Monster;
|
||||
import org.spongepowered.api.entity.living.player.Player;
|
||||
import org.spongepowered.api.entity.vehicle.Boat;
|
||||
import org.spongepowered.api.entity.vehicle.minecart.Minecart;
|
||||
import org.spongepowered.api.event.Listener;
|
||||
import org.spongepowered.api.event.action.LightningEvent;
|
||||
import org.spongepowered.api.event.block.ChangeBlockEvent;
|
||||
import org.spongepowered.api.event.block.GrowBlockEvent;
|
||||
import org.spongepowered.api.event.block.InteractBlockEvent;
|
||||
import org.spongepowered.api.event.block.MoveBlockEvent;
|
||||
import org.spongepowered.api.event.cause.Cause;
|
||||
import org.spongepowered.api.event.command.SendCommandEvent;
|
||||
import org.spongepowered.api.event.entity.BreedEntityEvent;
|
||||
import org.spongepowered.api.event.entity.DisplaceEntityEvent;
|
||||
import org.spongepowered.api.event.entity.SpawnEntityEvent;
|
||||
import org.spongepowered.api.event.message.MessageEvent;
|
||||
import org.spongepowered.api.event.network.ClientConnectionEvent;
|
||||
import org.spongepowered.api.event.world.ExplosionEvent;
|
||||
import org.spongepowered.api.profile.GameProfile;
|
||||
import org.spongepowered.api.text.Text;
|
||||
import org.spongepowered.api.world.World;
|
||||
import org.spongepowered.api.world.extent.Extent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MainListener {
|
||||
|
||||
@ -123,12 +148,9 @@ public class MainListener {
|
||||
// }
|
||||
|
||||
public <T> T getCause(Cause cause, Class<T> clazz) {
|
||||
Optional<?> root = cause.root();
|
||||
if (root.isPresent()) {
|
||||
Object source = root.get();
|
||||
if (clazz.isInstance(source)) {
|
||||
return (T) source;
|
||||
}
|
||||
Object root = cause.root();
|
||||
if (clazz.isInstance(root)) {
|
||||
return (T) root;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -137,13 +159,13 @@ public class MainListener {
|
||||
public void onCommand(final BreedEntityEvent.Breed event) {
|
||||
final Location loc = SpongeUtil.getLocation(event.getTargetEntity());
|
||||
final String world = loc.getWorld();
|
||||
final PlotArea plotworld = PS.get().getPlotArea(world);
|
||||
final PlotArea plotworld = PS.get().getPlotAreaByString(world);
|
||||
if (plotworld == null) {
|
||||
return;
|
||||
}
|
||||
final Plot plot = MainUtil.getPlot(loc);
|
||||
final Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (MainUtil.isPlotRoad(loc)) {
|
||||
if (loc.isPlotRoad()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
return;
|
||||
@ -156,7 +178,7 @@ public class MainListener {
|
||||
@Listener
|
||||
public void onMobSpawn(final SpawnEntityEvent event) {
|
||||
World world = event.getTargetWorld();
|
||||
final PlotArea plotworld = PS.get().getPlotArea(world.getName());
|
||||
final PlotArea plotworld = PS.get().getPlotAreaByString(world.getName());
|
||||
if (plotworld == null) {
|
||||
return;
|
||||
}
|
||||
@ -169,9 +191,9 @@ public class MainListener {
|
||||
return true;
|
||||
}
|
||||
final Location loc = SpongeUtil.getLocation(entity);
|
||||
final Plot plot = MainUtil.getPlot(loc);
|
||||
final Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (MainUtil.isPlotRoad(loc)) {
|
||||
if (loc.isPlotRoad()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -202,7 +224,7 @@ public class MainListener {
|
||||
return false;
|
||||
}
|
||||
if (mobs == null) {
|
||||
mobs = MainUtil.countEntities(plot);
|
||||
mobs = plot.countEntities();
|
||||
}
|
||||
if (mobs[3] >= cap) {
|
||||
return false;
|
||||
@ -216,7 +238,7 @@ public class MainListener {
|
||||
return false;
|
||||
}
|
||||
if (mobs == null) {
|
||||
mobs = MainUtil.countEntities(plot);
|
||||
mobs = plot.countEntities();
|
||||
}
|
||||
if (mobs[1] >= cap) {
|
||||
return false;
|
||||
@ -231,7 +253,7 @@ public class MainListener {
|
||||
return false;
|
||||
}
|
||||
if (mobs == null) {
|
||||
mobs = MainUtil.countEntities(plot);
|
||||
mobs = plot.countEntities();
|
||||
}
|
||||
if (mobs[2] >= cap) {
|
||||
return false;
|
||||
@ -248,7 +270,7 @@ public class MainListener {
|
||||
return false;
|
||||
}
|
||||
if (mobs == null) {
|
||||
mobs = MainUtil.countEntities(plot);
|
||||
mobs = plot.countEntities();
|
||||
}
|
||||
if (mobs[4] >= cap) {
|
||||
return false;
|
||||
@ -262,7 +284,7 @@ public class MainListener {
|
||||
return false;
|
||||
}
|
||||
if (mobs == null) {
|
||||
mobs = MainUtil.countEntities(plot);
|
||||
mobs = plot.countEntities();
|
||||
}
|
||||
if (mobs[0] >= cap) {
|
||||
return false;
|
||||
@ -286,7 +308,7 @@ public class MainListener {
|
||||
return;
|
||||
}
|
||||
if (Settings.USE_PLOTME_ALIAS) {
|
||||
SpongeMain.THIS.getGame().getCommandDispatcher().process(source, ("plots " + event.getArguments()).trim());
|
||||
SpongeMain.THIS.getGame().getCommandManager().process(source, ("plots " + event.getArguments()).trim());
|
||||
} else {
|
||||
source.sendMessage(SpongeMain.THIS.getText(C.NOT_USING_PLOTME.s()));
|
||||
}
|
||||
@ -304,9 +326,9 @@ public class MainListener {
|
||||
List<Transaction<BlockSnapshot>> transactions = event.getTransactions();
|
||||
Transaction<BlockSnapshot> first = transactions.get(0);
|
||||
Location loc = SpongeUtil.getLocation(worldname, first.getOriginal().getPosition());
|
||||
Plot plot = MainUtil.getPlot(loc);
|
||||
Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (!MainUtil.isPlotAreaAbs(loc)) {
|
||||
if (loc.getPlotAbs() == null ) {
|
||||
return;
|
||||
}
|
||||
event.setCancelled(true);
|
||||
@ -316,7 +338,7 @@ public class MainListener {
|
||||
|
||||
@Override
|
||||
public boolean test(org.spongepowered.api.world.Location<World> loc) {
|
||||
if (MainUtil.isPlotRoad(SpongeUtil.getLocation(worldname, loc))) {
|
||||
if (SpongeUtil.getLocation(worldname, loc).isPlotRoad()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -342,7 +364,7 @@ public class MainListener {
|
||||
public void printCause(String method, Cause cause) {
|
||||
System.out.println(method + ": " + cause.toString());
|
||||
System.out.println(method + ": " + cause.getClass());
|
||||
System.out.println(method + ": " + (cause.root().isPresent() ? cause.root().get() : null));
|
||||
System.out.println(method + ": " + (cause.root()));
|
||||
}
|
||||
|
||||
@Listener
|
||||
@ -356,17 +378,17 @@ public class MainListener {
|
||||
if (!PS.get().hasPlotArea(world)) {
|
||||
return;
|
||||
}
|
||||
final PlotArea plotworld = PS.get().getPlotArea(world);
|
||||
final PlotArea plotworld = PS.get().getPlotAreaByString(world);
|
||||
final PlotPlayer plr = SpongeUtil.getPlayer(player);
|
||||
if (!plotworld.PLOT_CHAT && ((plr.getMeta("chat") == null) || !(Boolean) plr.getMeta("chat"))) {
|
||||
return;
|
||||
}
|
||||
final Location loc = SpongeUtil.getLocation(player);
|
||||
final Plot plot = MainUtil.getPlot(loc);
|
||||
final Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
return;
|
||||
}
|
||||
final Text message = event.getMessage();
|
||||
final Text message = event.getMessage().orElse(Text.EMPTY);
|
||||
|
||||
// TODO use display name rather than username
|
||||
// - Getting displayname currently causes NPE, so wait until sponge fixes that
|
||||
@ -374,12 +396,12 @@ public class MainListener {
|
||||
final String sender = player.getName();
|
||||
final PlotId id = plot.getId();
|
||||
final String newMessage = StringMan.replaceAll(C.PLOT_CHAT_FORMAT.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
|
||||
final Text forcedMessage = event.getMessage();
|
||||
final Text forcedMessage = event.getMessage().orElse(Text.EMPTY);
|
||||
// String forcedMessage = StringMan.replaceAll(C.PLOT_CHAT_FORCED.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
|
||||
for (Entry<String, PlotPlayer> entry : UUIDHandler.getPlayers().entrySet()) {
|
||||
PlotPlayer user = entry.getValue();
|
||||
String toSend;
|
||||
if (plot.equals(MainUtil.getPlot(user.getLocation()))) {
|
||||
if (plot.equals(user.getLocation().getPlot())) {
|
||||
toSend = newMessage;
|
||||
} else if (Permissions.hasPermission(user, C.PERMISSION_COMMANDS_CHAT)) {
|
||||
((SpongePlayer) user).player.sendMessage(forcedMessage);
|
||||
@ -396,9 +418,9 @@ public class MainListener {
|
||||
} else {
|
||||
prefix = message;
|
||||
}
|
||||
components.add(Texts.of(part));
|
||||
components.add(Text.of(part));
|
||||
}
|
||||
((SpongePlayer) user).player.sendMessage(Texts.join(components));
|
||||
((SpongePlayer) user).player.sendMessage(Text.join(components));
|
||||
}
|
||||
event.setMessage(null);
|
||||
}
|
||||
@ -424,7 +446,7 @@ public class MainListener {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if (originPlot == null && !MainUtil.isPlotAreaAbs(current)) {
|
||||
if (originPlot == null && current.getPlotAbs() == null /*May not work*/) {
|
||||
return;
|
||||
}
|
||||
if (!FlagManager.isPlotFlagTrue(currentPlot, "explosion")) {
|
||||
@ -466,12 +488,7 @@ public class MainListener {
|
||||
public void onBlockBreak(final ChangeBlockEvent.Decay event) {
|
||||
onBlockChange(event);
|
||||
}
|
||||
|
||||
@Listener
|
||||
public void onBlockBreak(final ChangeBlockEvent.Fluid event) {
|
||||
onBlockChange(event);
|
||||
}
|
||||
|
||||
|
||||
@Listener
|
||||
public void onBlockBreak(final ChangeBlockEvent.Grow event) {
|
||||
onBlockChange(event);
|
||||
@ -499,9 +516,9 @@ public class MainListener {
|
||||
Transaction<BlockSnapshot> first = transactions.get(0);
|
||||
BlockSnapshot pos = first.getOriginal();
|
||||
Location loc = SpongeUtil.getLocation(worldname, pos.getPosition());
|
||||
Plot plot = MainUtil.getPlot(loc);
|
||||
Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (!MainUtil.isPlotAreaAbs(loc)) {
|
||||
if (loc.getPlotAbs() == null) {
|
||||
return;
|
||||
}
|
||||
if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_DESTROY_ROAD)) {
|
||||
@ -536,7 +553,7 @@ public class MainListener {
|
||||
Location loc = SpongeUtil.getLocation(worldname, l);
|
||||
Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (!MainUtil.isPlotAreaAbs(loc)) {
|
||||
if (loc.getPlotAbs() == null) {
|
||||
return true;
|
||||
}
|
||||
if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_DESTROY_ROAD)) {
|
||||
@ -583,9 +600,9 @@ public class MainListener {
|
||||
Transaction<BlockSnapshot> first = transactions.get(0);
|
||||
BlockSnapshot pos = first.getOriginal();
|
||||
Location loc = SpongeUtil.getLocation(worldname, pos.getPosition());
|
||||
Plot plot = MainUtil.getPlot(loc);
|
||||
Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (!MainUtil.isPlotAreaAbs(loc)) {
|
||||
if (loc.getPlotAbs() == null) {
|
||||
return;
|
||||
}
|
||||
if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_ROAD)) {
|
||||
@ -620,7 +637,7 @@ public class MainListener {
|
||||
Location loc = SpongeUtil.getLocation(worldname, l);
|
||||
Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
if (!MainUtil.isPlotAreaAbs(loc)) {
|
||||
if (loc.getPlotAbs() == null) {
|
||||
return true;
|
||||
}
|
||||
if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_ROAD)) {
|
||||
@ -663,10 +680,10 @@ public class MainListener {
|
||||
}
|
||||
org.spongepowered.api.world.Location<World> l = target.get();
|
||||
Location loc = SpongeUtil.getLocation(l);
|
||||
Plot plot = MainUtil.getPlot(loc);
|
||||
Plot plot = loc.getPlot();
|
||||
PlotPlayer pp = SpongeUtil.getPlayer(player);
|
||||
if (plot == null) {
|
||||
if (!MainUtil.isPlotAreaAbs(loc)) {
|
||||
if (loc.getPlotAbs() == null) {
|
||||
return;
|
||||
}
|
||||
if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_ROAD)) {
|
||||
@ -726,12 +743,12 @@ public class MainListener {
|
||||
}, 20);
|
||||
}
|
||||
final Location loc = SpongeUtil.getLocation(player);
|
||||
final Plot plot = MainUtil.getPlot(loc);
|
||||
final Plot plot = loc.getPlot();
|
||||
if (plot == null) {
|
||||
return;
|
||||
}
|
||||
if (Settings.TELEPORT_ON_LOGIN) {
|
||||
MainUtil.teleportPlayer(pp, pp.getLocation(), plot);
|
||||
pp.teleport(loc);
|
||||
MainUtil.sendMessage(pp, C.TELEPORTED_TO_ROAD);
|
||||
}
|
||||
PlotListener.plotEntry(pp, plot);
|
||||
@ -764,11 +781,11 @@ public class MainListener {
|
||||
pp.setMeta("location", SpongeUtil.getLocation(player));
|
||||
final World world = (World) extent;
|
||||
final String worldname = ((World) extent).getName();
|
||||
final PlotArea plotworld = PS.get().getPlotArea(worldname);
|
||||
final PlotArea plotworld = PS.get().getPlotAreaByString(worldname);
|
||||
if (plotworld == null) {
|
||||
return;
|
||||
}
|
||||
final PlotManager plotManager = PS.get().getPlotManager(worldname);
|
||||
final PlotManager plotManager = PS.get().getPlotManager(PS.get().getPlot(plotworld, plotworld.getMin()));
|
||||
final PlotId id = plotManager.getPlotId(plotworld, x2, 0, getInt(to.getZ()));
|
||||
final Plot lastPlot = (Plot) pp.getMeta("lastplot");
|
||||
if (id == null) {
|
||||
@ -777,7 +794,7 @@ public class MainListener {
|
||||
}
|
||||
if (!PlotListener.plotExit(pp, lastPlot)) {
|
||||
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED);
|
||||
if (lastPlot.equals(MainUtil.getPlot(SpongeUtil.getLocation(worldname, from)))) {
|
||||
if (lastPlot.equals(SpongeUtil.getLocation(worldname, from).getPlot())) {
|
||||
event.setCancelled(true);
|
||||
} else {
|
||||
event.setToTransform(new Transform<>(world.getSpawnLocation()));
|
||||
@ -787,10 +804,10 @@ public class MainListener {
|
||||
} else if ((lastPlot != null) && id.equals(lastPlot.getId())) {
|
||||
return;
|
||||
} else {
|
||||
final Plot plot = MainUtil.getPlot(worldname, id);
|
||||
final Plot plot = PS.get().getPlot(PS.get().getPlotAreaByString(worldname), id);
|
||||
if (!PlotListener.plotEntry(pp, plot)) {
|
||||
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_ENTRY_DENIED);
|
||||
if (!plot.getBasePlot(false).equals(MainUtil.getPlot(SpongeUtil.getLocation(worldname, from)))) {
|
||||
if (!plot.getBasePlot(false).equals(SpongeUtil.getLocation(worldname, from).getPlot())) {
|
||||
event.setCancelled(true);
|
||||
} else {
|
||||
event.setToTransform(new Transform<>(world.getSpawnLocation()));
|
||||
@ -798,19 +815,17 @@ public class MainListener {
|
||||
return;
|
||||
}
|
||||
}
|
||||
final Integer border = MainUtil.worldBorder.get(worldname);
|
||||
if (border != null) {
|
||||
if (x2 > border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(border - 4, pos.getY(), pos.getZ()));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
} else if (x2 < -border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(-border + 4, pos.getY(), pos.getZ()));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
}
|
||||
final Integer border = plotworld.getBorder();
|
||||
if (x2 > border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(border - 4, pos.getY(), pos.getZ()));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
} else if (x2 < -border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(-border + 4, pos.getY(), pos.getZ()));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -826,20 +841,20 @@ public class MainListener {
|
||||
pp.setMeta("location", SpongeUtil.getLocation(player));
|
||||
final World world = (World) extent;
|
||||
final String worldname = ((World) extent).getName();
|
||||
final PlotArea plotworld = PS.get().getPlotArea(worldname);
|
||||
final PlotArea plotworld = PS.get().getPlotAreaByString(worldname);
|
||||
if (plotworld == null) {
|
||||
return;
|
||||
}
|
||||
final PlotManager plotManager = PS.get().getPlotManager(worldname);
|
||||
final PlotManager plotManager = PS.get().getPlotManager(PS.get().getPlot(plotworld, plotworld.getMin()));
|
||||
final PlotId id = plotManager.getPlotId(plotworld, x2, 0, z2);
|
||||
final Plot lastPlot = (Plot) pp.getMeta("lastplot");
|
||||
final Plot lastPlot = pp.getMeta("lastplot");
|
||||
if (id == null) {
|
||||
if (lastPlot == null) {
|
||||
return;
|
||||
}
|
||||
if (!PlotListener.plotExit(pp, lastPlot)) {
|
||||
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_EXIT_DENIED);
|
||||
if (lastPlot.equals(MainUtil.getPlot(SpongeUtil.getLocation(worldname, from)))) {
|
||||
if (lastPlot.equals(SpongeUtil.getLocation(worldname, from).getPlot())) {
|
||||
event.setCancelled(true);
|
||||
} else {
|
||||
event.setToTransform(new Transform<>(world.getSpawnLocation()));
|
||||
@ -849,10 +864,10 @@ public class MainListener {
|
||||
} else if ((lastPlot != null) && id.equals(lastPlot.getId())) {
|
||||
return;
|
||||
} else {
|
||||
final Plot plot = MainUtil.getPlot(worldname, id);
|
||||
final Plot plot = PS.get().getPlot(PS.get().getPlotAreaByString(worldname), id);
|
||||
if (!PlotListener.plotEntry(pp, plot)) {
|
||||
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_ENTRY_DENIED);
|
||||
if (!plot.equals(MainUtil.getPlot(SpongeUtil.getLocation(worldname, from)))) {
|
||||
if (!plot.equals(SpongeUtil.getLocation(worldname, from).getPlot())) {
|
||||
event.setCancelled(true);
|
||||
} else {
|
||||
event.setToTransform(new Transform<>(world.getSpawnLocation()));
|
||||
@ -860,19 +875,17 @@ public class MainListener {
|
||||
return;
|
||||
}
|
||||
}
|
||||
final Integer border = MainUtil.worldBorder.get(worldname);
|
||||
if (border != null) {
|
||||
if (z2 > border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(pos.getX(), pos.getY(), border - 4));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
} else if (z2 < -border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(pos.getX(), pos.getY(), -border + 4));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
}
|
||||
final Integer border = plotworld.getBorder();
|
||||
if (z2 > border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(pos.getX(), pos.getY(), border - 4));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
} else if (z2 < -border) {
|
||||
final Vector3d pos = to.getPosition();
|
||||
to = to.setPosition(new Vector3d(pos.getX(), pos.getY(), -border + 4));
|
||||
event.setToTransform(new Transform(to));
|
||||
MainUtil.sendMessage(pp, C.BORDER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,17 +50,17 @@ public class SpongeCommand implements CommandCallable {
|
||||
|
||||
@Override
|
||||
public Optional<? extends Text> getShortDescription(final CommandSource cmd) {
|
||||
return Optional.of(Texts.of("Shows plot help"));
|
||||
return Optional.of(Text.of("Shows plot help"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<? extends Text> getHelp(final CommandSource cmd) {
|
||||
return Optional.of(Texts.of("/plot help"));
|
||||
return Optional.of(Text.of("/plot help"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Text getUsage(final CommandSource cmd) {
|
||||
return Texts.of("/plot <command>");
|
||||
return Text.of("/plot <command>");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,6 +28,15 @@ package com.plotsquared.sponge.util;
|
||||
* either expressed or implied, of anybody else.
|
||||
*/
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import com.intellectualcrafters.plot.PS;
|
||||
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
|
||||
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
|
||||
import ninja.leaping.configurate.loader.ConfigurationLoader;
|
||||
import org.spongepowered.api.Game;
|
||||
import org.spongepowered.api.plugin.PluginContainer;
|
||||
import org.spongepowered.api.scheduler.Task;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
@ -43,8 +52,6 @@ import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
import com.intellectualcrafters.plot.PS;
|
||||
|
||||
public class SpongeMetrics {
|
||||
|
||||
/**
|
||||
|
@ -11,7 +11,8 @@ public class SpongeTitleManager extends AbstractTitle {
|
||||
|
||||
@Override
|
||||
public void sendTitle(final PlotPlayer player, final String head, final String sub, final int in, final int delay, final int out) {
|
||||
final Title title = new TitleBuilder().title(SpongeMain.THIS.getText(head)).subtitle(SpongeMain.THIS.getText(sub)).fadeIn(in * 20).stay(delay * 20).fadeOut(out * 20).build();
|
||||
final Title title = Title.builder().title(SpongeMain.THIS.getText(head)).subtitle(SpongeMain.THIS.getText(sub)).fadeIn(in * 20).stay
|
||||
(delay * 20).fadeOut(out * 20).build();
|
||||
((SpongePlayer) player).player.sendTitle(title);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user