Refactor + optimizations

This commit is contained in:
boy0001
2015-07-31 03:24:01 +10:00
parent 7ce300c47b
commit 4eae78590f
76 changed files with 457 additions and 303 deletions

View File

@ -11,6 +11,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger;
@ -23,7 +24,6 @@ import org.spongepowered.api.block.BlockTypes;
import org.spongepowered.api.data.manipulator.block.StoneData;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.entity.player.gamemode.GameModes;
import org.spongepowered.api.event.EventHandler;
import org.spongepowered.api.event.Subscribe;
import org.spongepowered.api.event.entity.player.PlayerChatEvent;
import org.spongepowered.api.event.state.PreInitializationEvent;
@ -38,7 +38,6 @@ 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.gen.WorldGeneratorModifier;
import com.google.common.base.Optional;
import com.google.inject.Inject;
@ -49,21 +48,18 @@ 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.generator.PlotGenerator;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.AbstractTitle;
import com.intellectualcrafters.plot.util.BlockManager;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.ConsoleColors;
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;
@ -72,11 +68,13 @@ 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.SpongeChunkManager;
import com.plotsquared.sponge.util.SpongeCommand;
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;
@ -596,4 +594,21 @@ public class SpongeMain implements IPlotMain, PluginContainer {
public AbstractTitle initTitleManager() {
return new SpongeTitleManager();
}
@Override
public PlotPlayer wrapPlayer(Object obj) {
if (obj instanceof Player) {
return SpongeUtil.getPlayer((Player) obj);
}
// else if (obj instanceof OfflinePlayer) {
// return BukkitUtil.getPlayer((OfflinePlayer) obj);
// }
else if (obj instanceof String) {
return UUIDHandler.getPlayer((String) obj);
}
else if (obj instanceof UUID) {
return UUIDHandler.getPlayer((UUID) obj);
}
return null;
}
}

View File

@ -4,10 +4,6 @@ import org.spongepowered.api.data.DataContainer;
import org.spongepowered.api.world.WorldCreationSettings;
import org.spongepowered.api.world.gen.WorldGenerator;
import org.spongepowered.api.world.gen.WorldGeneratorModifier;
import org.spongepowered.common.world.gen.SpongeWorldGenerator;
import com.intellectualcrafters.plot.PS;
import com.plotsquared.sponge.SpongeMain;
public class WorldModify implements WorldGeneratorModifier {

View File

@ -22,7 +22,6 @@ import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.entity.EntityTypes;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.event.Cancellable;
import org.spongepowered.api.event.Subscribe;
import org.spongepowered.api.event.block.BlockMoveEvent;
import org.spongepowered.api.event.block.BlockRedstoneUpdateEvent;
@ -36,20 +35,16 @@ import org.spongepowered.api.event.entity.player.PlayerChangeWorldEvent;
import org.spongepowered.api.event.entity.player.PlayerChatEvent;
import org.spongepowered.api.event.entity.player.PlayerInteractBlockEvent;
import org.spongepowered.api.event.entity.player.PlayerJoinEvent;
import org.spongepowered.api.event.entity.player.PlayerMessageEvent;
import org.spongepowered.api.event.entity.player.PlayerMoveEvent;
import org.spongepowered.api.event.entity.player.PlayerPlaceBlockEvent;
import org.spongepowered.api.event.entity.player.PlayerQuitEvent;
import org.spongepowered.api.event.message.CommandEvent;
import org.spongepowered.api.event.network.PlayerConnectionEvent;
import org.spongepowered.api.event.world.ChunkLoadEvent;
import org.spongepowered.api.event.world.ChunkPreGenerateEvent;
import org.spongepowered.api.event.world.ChunkPrePopulateEvent;
import org.spongepowered.api.network.PlayerConnection;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.Texts;
import org.spongepowered.api.util.command.CommandSource;
import org.spongepowered.api.util.event.callback.EventCallback;
import org.spongepowered.api.world.World;
import org.spongepowered.api.world.extent.Extent;
@ -80,7 +75,7 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.bukkit.object.BukkitPlayer;
import com.plotsquared.listener.PlotListener;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.SpongePlayer;
import com.plotsquared.sponge.object.SpongePlayer;
import com.plotsquared.sponge.util.SpongeUtil;
public class MainListener {
@ -557,10 +552,14 @@ public class MainListener {
org.spongepowered.api.world.Location to = event.getNewLocation();
int x2;
if (getInt(from.getX()) != (x2 = getInt(to.getX()))) {
Player player = event.getUser();
PlotPlayer pp = SpongeUtil.getPlayer(player);
Extent extent = to.getExtent();
if (!(extent instanceof World)) {
pp.deleteMeta("location");
return;
}
pp.setMeta("location", SpongeUtil.getLocation(player));
World world = (World) extent;
String worldname = ((World) extent).getName();
PlotWorld plotworld = PS.get().getPlotWorld(worldname);
@ -569,8 +568,6 @@ public class MainListener {
}
PlotManager plotManager = PS.get().getPlotManager(worldname);
PlotId id = plotManager.getPlotId(plotworld, x2, 0, getInt(to.getZ()));
Player player = event.getUser();
PlotPlayer pp = SpongeUtil.getPlayer(player);
Plot lastPlot = (Plot) pp.getMeta("lastplot");
if (id == null) {
if (lastPlot == null) {
@ -622,10 +619,14 @@ public class MainListener {
}
int z2;
if (getInt(from.getZ()) != (z2 = getInt(to.getZ())) ) {
Player player = event.getUser();
PlotPlayer pp = SpongeUtil.getPlayer(player);
Extent extent = to.getExtent();
if (!(extent instanceof World)) {
pp.deleteMeta("location");
return;
}
pp.setMeta("location", SpongeUtil.getLocation(player));
World world = (World) extent;
String worldname = ((World) extent).getName();
PlotWorld plotworld = PS.get().getPlotWorld(worldname);
@ -634,8 +635,6 @@ public class MainListener {
}
PlotManager plotManager = PS.get().getPlotManager(worldname);
PlotId id = plotManager.getPlotId(plotworld, x2, 0, z2);
Player player = event.getUser();
PlotPlayer pp = SpongeUtil.getPlayer(player);
Plot lastPlot = (Plot) pp.getMeta("lastplot");
if (id == null) {
if (lastPlot == null) {
@ -694,10 +693,14 @@ public class MainListener {
org.spongepowered.api.world.Location to = event.getNewLocation();
int x2;
if (getInt(from.getX()) != (x2 = getInt(to.getX()))) {
Player player = (Player) entity;
PlotPlayer pp = SpongeUtil.getPlayer(player);
Extent extent = to.getExtent();
if (!(extent instanceof World)) {
pp.deleteMeta("location");
return;
}
pp.setMeta("location", SpongeUtil.getLocation(player));
World world = (World) extent;
String worldname = ((World) extent).getName();
PlotWorld plotworld = PS.get().getPlotWorld(worldname);
@ -706,8 +709,6 @@ public class MainListener {
}
PlotManager plotManager = PS.get().getPlotManager(worldname);
PlotId id = plotManager.getPlotId(plotworld, x2, 0, getInt(to.getZ()));
Player player = (Player) entity;
PlotPlayer pp = SpongeUtil.getPlayer(player);
Plot lastPlot = (Plot) pp.getMeta("lastplot");
if (id == null) {
if (lastPlot == null) {
@ -759,10 +760,14 @@ public class MainListener {
}
int z2;
if (getInt(from.getZ()) != (z2 = getInt(to.getZ())) ) {
Player player = (Player) entity;
PlotPlayer pp = SpongeUtil.getPlayer(player);
Extent extent = to.getExtent();
if (!(extent instanceof World)) {
pp.deleteMeta("location");
return;
}
pp.setMeta("location", SpongeUtil.getLocation(player));
World world = (World) extent;
String worldname = ((World) extent).getName();
PlotWorld plotworld = PS.get().getPlotWorld(worldname);
@ -771,8 +776,6 @@ public class MainListener {
}
PlotManager plotManager = PS.get().getPlotManager(worldname);
PlotId id = plotManager.getPlotId(plotworld, x2, 0, z2);
Player player = (Player) entity;
PlotPlayer pp = SpongeUtil.getPlayer(player);
Plot lastPlot = (Plot) pp.getMeta("lastplot");
if (id == null) {
if (lastPlot == null) {
@ -828,6 +831,9 @@ public class MainListener {
public void onWorldChange(PlayerChangeWorldEvent event) {
final PlotPlayer player = SpongeUtil.getPlayer(event.getUser());
player.deleteMeta("location");
player.deleteMeta("lastplot");
// TODO worldedit mask
((BukkitPlayer) player).hasPerm = new HashSet<>();

View File

@ -1,20 +1,14 @@
package com.plotsquared.sponge;
package com.plotsquared.sponge.object;
import java.util.HashMap;
import java.util.HashSet;
import java.util.UUID;
import org.spongepowered.api.entity.player.Player;
import org.spongepowered.api.entity.player.gamemode.GameMode;
import org.spongepowered.api.entity.player.gamemode.GameModes;
import org.spongepowered.api.service.permission.PermissionService;
import org.spongepowered.api.text.Texts;
import org.spongepowered.api.text.chat.ChatTypes;
import org.spongepowered.api.text.title.Title;
import org.spongepowered.api.world.World;
import com.flowpowered.math.vector.Vector3d;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.commands.RequiredType;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
@ -25,19 +19,17 @@ import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.PlotGamemode;
import com.intellectualcrafters.plot.util.PlotWeather;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.util.SpongeUtil;
public class SpongePlayer implements PlotPlayer {
public class SpongePlayer extends PlotPlayer {
public final Player player;
private UUID uuid;
private String name;
private int op = 0;
private long last = 0;
private HashSet<String> hasPerm = new HashSet<>();
private HashSet<String> noPerm = new HashSet<>();
private HashMap<String, Object> meta;
public SpongePlayer(Player player) {
this.player = player;
@ -60,7 +52,8 @@ public class SpongePlayer implements PlotPlayer {
@Override
public Location getLocation() {
return SpongeUtil.getLocation(player);
Location loc = super.getLocation();
return loc == null ? SpongeUtil.getLocation(this.player) : loc;
}
@Override
@ -114,20 +107,6 @@ public class SpongePlayer implements PlotPlayer {
}
}
@Override
public boolean isOp() {
if (this.op != 0) {
return this.op != 1;
}
final boolean result = this.player.hasPermission("*");
if (!result) {
this.op = 1;
return false;
}
this.op = 2;
return true;
}
@Override
public boolean isOnline() {
return player.isOnline();
@ -159,34 +138,6 @@ public class SpongePlayer implements PlotPlayer {
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
@Override
public void setMeta(String key, Object value) {
if (this.meta == null) {
this.meta = new HashMap<String, Object>();
}
this.meta.put(key, value);
}
@Override
public Object getMeta(String key) {
if (this.meta != null) {
return this.meta.get(key);
}
return null;
}
@Override
public void deleteMeta(String key) {
if (this.meta != null) {
this.meta.remove(key);
}
}
@Override
public String toString() {
return getName();
}
@Override
public void setAttribute(String key) {
key = "plotsquared_user_attributes." + key;

View File

@ -12,7 +12,6 @@ import org.spongepowered.api.world.World;
import org.spongepowered.api.world.biome.BiomeType;
import org.spongepowered.api.world.biome.BiomeTypes;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.schematic.PlotItem;

View File

@ -1,27 +1,22 @@
package com.plotsquared.sponge;
package com.plotsquared.sponge.util;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.spongepowered.api.data.DataContainer;
import org.spongepowered.api.world.Chunk;
import org.spongepowered.api.world.World;
import org.spongepowered.api.world.storage.ChunkDataStream;
import org.spongepowered.api.world.storage.WorldStorage;
import com.google.common.base.Optional;
import com.google.common.util.concurrent.ListenableFuture;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.SetBlockQueue.ChunkWrapper;
import com.plotsquared.sponge.util.SpongeUtil;
import com.intellectualcrafters.plot.util.TaskManager;
public class SpongeChunkManager extends ChunkManager {

View File

@ -14,7 +14,6 @@ import org.spongepowered.api.util.command.CommandResult;
import org.spongepowered.api.util.command.CommandSource;
import com.google.common.base.Optional;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.commands.MainCommand;
import com.intellectualcrafters.plot.object.ConsolePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;

View File

@ -20,7 +20,7 @@ import com.intellectualcrafters.plot.object.PlotItemStack;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.InventoryUtil;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.SpongePlayer;
import com.plotsquared.sponge.object.SpongePlayer;
public class SpongeInventoryUtil extends InventoryUtil {

View File

@ -1,10 +1,11 @@
package com.plotsquared.sponge;
package com.plotsquared.sponge.util;
import org.spongepowered.api.text.title.Title;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.AbstractTitle;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.object.SpongePlayer;
public class SpongeTitleManager extends AbstractTitle {

View File

@ -13,7 +13,7 @@ import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.MathMan;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.SpongePlayer;
import com.plotsquared.sponge.object.SpongePlayer;
public class SpongeUtil {

View File

@ -7,7 +7,7 @@ import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
import com.plotsquared.sponge.SpongeMain;
import com.plotsquared.sponge.SpongePlayer;
import com.plotsquared.sponge.object.SpongePlayer;
public class SpongeOnlineUUIDWrapper extends UUIDWrapper {