Fix schematic material id bug, add new schematics from build team, fix field ore bug, make /gear admin+, enable server join for staff ranks, remove annoying log spam from VisibilityManager
This commit is contained in:
parent
a9e68ff777
commit
dc1fe5fc2c
@ -9,10 +9,10 @@ public class Schematic
|
|||||||
private final short _width;
|
private final short _width;
|
||||||
private final short _height;
|
private final short _height;
|
||||||
private final short _length;
|
private final short _length;
|
||||||
private final byte[] _blocks;
|
private final short[] _blocks;
|
||||||
private final byte[] _blockData;
|
private final byte[] _blockData;
|
||||||
|
|
||||||
public Schematic(short width, short height, short length, byte[] blocks, byte[] blockData)
|
public Schematic(short width, short height, short length, short[] blocks, byte[] blockData)
|
||||||
{
|
{
|
||||||
_width = width;
|
_width = width;
|
||||||
_height = height;
|
_height = height;
|
||||||
@ -61,7 +61,7 @@ public class Schematic
|
|||||||
return y * _width * _length + z * _width + x;
|
return y * _width * _length + z * _width + x;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getBlock(int x, int y, int z)
|
public short getBlock(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return _blocks[getIndex(x, y, z)];
|
return _blocks[getIndex(x, y, z)];
|
||||||
}
|
}
|
||||||
@ -86,7 +86,7 @@ public class Schematic
|
|||||||
return _length;
|
return _length;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] getBlocks()
|
public short[] getBlocks()
|
||||||
{
|
{
|
||||||
return _blocks;
|
return _blocks;
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ public class SchematicRunnable implements Runnable
|
|||||||
private void setBlock(Block block, int x, int y, int z)
|
private void setBlock(Block block, int x, int y, int z)
|
||||||
{
|
{
|
||||||
|
|
||||||
int materialId = Math.abs(_schematic.getBlock(x, y, z));
|
int materialId = _schematic.getBlock(x, y, z);
|
||||||
byte data = _schematic.getData(x, y, z);
|
byte data = _schematic.getData(x, y, z);
|
||||||
|
|
||||||
Material material = Material.getMaterial(materialId);
|
Material material = Material.getMaterial(materialId);
|
||||||
|
@ -32,9 +32,30 @@ public class UtilSchematic
|
|||||||
short width = getChildTag(schematic, "Width", ShortTag.class).getValue();
|
short width = getChildTag(schematic, "Width", ShortTag.class).getValue();
|
||||||
short height = getChildTag(schematic, "Height", ShortTag.class).getValue();
|
short height = getChildTag(schematic, "Height", ShortTag.class).getValue();
|
||||||
short length = getChildTag(schematic, "Length", ShortTag.class).getValue();
|
short length = getChildTag(schematic, "Length", ShortTag.class).getValue();
|
||||||
byte[] blocks = getChildTag(schematic, "Blocks", ByteArrayTag.class).getValue();
|
byte[] blockId = getChildTag(schematic, "Blocks", ByteArrayTag.class).getValue();
|
||||||
|
byte[] addId = new byte[0];
|
||||||
|
short[] blocks = new short[blockId.length];
|
||||||
byte[] blockData = getChildTag(schematic, "Data", ByteArrayTag.class).getValue();
|
byte[] blockData = getChildTag(schematic, "Data", ByteArrayTag.class).getValue();
|
||||||
|
|
||||||
|
if (schematic.containsKey("AddBlocks"))
|
||||||
|
{
|
||||||
|
addId = getChildTag(schematic, "AddBlocks", ByteArrayTag.class).getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int index = 0; index < blockId.length; index++)
|
||||||
|
{
|
||||||
|
if ((index >> 1) >= addId.length)
|
||||||
|
blocks[index] = (short) (blockId[index] & 0xFF);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((index & 1) == 0)
|
||||||
|
blocks[index] = (short) (((addId[index >> 1] & 0x0F) << 8) + (blockId[index] & 0xFF));
|
||||||
|
else
|
||||||
|
blocks[index] = (short) (((addId[index >> 1] & 0xF0) << 4) + (blockId[index] & 0xFF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return new Schematic(width, height, length, blocks, blockData);
|
return new Schematic(width, height, length, blocks, blockData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public class BlockRestoreMap
|
|||||||
|
|
||||||
protected BlockRestoreMap(BlockRestore blockRestore)
|
protected BlockRestoreMap(BlockRestore blockRestore)
|
||||||
{
|
{
|
||||||
this(blockRestore, 200);
|
this(blockRestore, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BlockRestoreMap(BlockRestore blockRestore, int blocksPerTick)
|
protected BlockRestoreMap(BlockRestore blockRestore, int blocksPerTick)
|
||||||
|
@ -97,7 +97,6 @@ public class VisibilityManager extends MiniPlugin
|
|||||||
if (event.getType() != UpdateType.MIN_01)
|
if (event.getType() != UpdateType.MIN_01)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
System.out.println(" ");
|
|
||||||
TimingManager.endTotal("VisMan update", true);
|
TimingManager.endTotal("VisMan update", true);
|
||||||
TimingManager.endTotal("VisMan setVis", true);
|
TimingManager.endTotal("VisMan setVis", true);
|
||||||
TimingManager.endTotal("VisData attemptToProcess", true);
|
TimingManager.endTotal("VisData attemptToProcess", true);
|
||||||
@ -106,6 +105,5 @@ public class VisibilityManager extends MiniPlugin
|
|||||||
TimingManager.endTotal("VisData attemptToProcessUpdate lastState", true);
|
TimingManager.endTotal("VisData attemptToProcessUpdate lastState", true);
|
||||||
TimingManager.endTotal("Hide Player", true);
|
TimingManager.endTotal("Hide Player", true);
|
||||||
TimingManager.endTotal("Show Player", true);
|
TimingManager.endTotal("Show Player", true);
|
||||||
System.out.println(" ");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,6 +121,8 @@ public class Clans extends JavaPlugin
|
|||||||
getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1);
|
getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1);
|
||||||
|
|
||||||
MinecraftServer.getServer().getPropertyManager().setProperty("debug", true);
|
MinecraftServer.getServer().getPropertyManager().setProperty("debug", true);
|
||||||
|
|
||||||
|
getServer().setWhitelist(false); // TODO: remove
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String prettifyName(Material material)
|
public static String prettifyName(Material material)
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -20,6 +21,7 @@ import mineplex.core.account.CoreClientManager;
|
|||||||
import mineplex.core.achievement.AchievementManager;
|
import mineplex.core.achievement.AchievementManager;
|
||||||
import mineplex.core.blockrestore.BlockRestore;
|
import mineplex.core.blockrestore.BlockRestore;
|
||||||
import mineplex.core.chat.Chat;
|
import mineplex.core.chat.Chat;
|
||||||
|
import mineplex.core.common.Rank;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.NautHashMap;
|
import mineplex.core.common.util.NautHashMap;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
@ -606,4 +608,15 @@ public class ClansManager extends MiniClientPlugin<ClientClan> implements IRelat
|
|||||||
_blockRestore.onDisable();
|
_blockRestore.onDisable();
|
||||||
_worldEvent.onDisable();
|
_worldEvent.onDisable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onJoin(PlayerLoginEvent event)
|
||||||
|
{
|
||||||
|
Rank rank = _clientManager.Get(event.getPlayer()).GetRank();
|
||||||
|
if (!rank.Has(Rank.HELPER) && !event.getPlayer().isWhitelisted())
|
||||||
|
{
|
||||||
|
event.setResult(PlayerLoginEvent.Result.KICK_OTHER);
|
||||||
|
event.setKickMessage("Only Trainee+ can join this server");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -248,6 +248,9 @@ public class WorldEventManager extends MiniPlugin implements ScoreboardElement
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void gear(PlayerCommandPreprocessEvent event)
|
public void gear(PlayerCommandPreprocessEvent event)
|
||||||
{
|
{
|
||||||
|
if (!event.getPlayer().isOp())
|
||||||
|
return;
|
||||||
|
|
||||||
// TODO: Remove
|
// TODO: Remove
|
||||||
if (event.getMessage().equalsIgnoreCase("/dgear"))
|
if (event.getMessage().equalsIgnoreCase("/dgear"))
|
||||||
{
|
{
|
||||||
|
@ -220,6 +220,7 @@ public abstract class WorldEvent implements Listener
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
task.setBlocksPerTick(100);
|
||||||
task.start();
|
task.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ public class KingHill extends WorldEvent
|
|||||||
// TODO load hills from schematic folder with extra hill data from a config file?
|
// TODO load hills from schematic folder with extra hill data from a config file?
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LOADED_HILLS.add(new HillData("hill.schematic", 28, 28, 28, 5, 5, 5));
|
LOADED_HILLS.add(new HillData("ClansKOTHFinal.schematic", 28, 28, 28, 5, 5, 5));
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
|
@ -29,7 +29,7 @@ public class SlimeBoss extends WorldEvent
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
schematic = UtilSchematic.loadSchematic(new File("schematic/PhiSlimeArena.schematic"));
|
schematic = UtilSchematic.loadSchematic(new File("schematic/ClansSlimeFinal.schematic"));
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
|
@ -207,7 +207,7 @@ public class FieldBlock extends MiniPlugin
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void BlockBreak(BlockBreakEvent event)
|
public void BlockBreak(BlockBreakEvent event)
|
||||||
{
|
{
|
||||||
if (ClansManager.isFields(event.getBlock().getLocation()))
|
if (ClansManager.isFields(event.getBlock().getLocation()))
|
||||||
|
@ -42,7 +42,7 @@ public class GearCommand extends CommandBase<GearManager>
|
|||||||
|
|
||||||
public GearCommand(GearManager plugin)
|
public GearCommand(GearManager plugin)
|
||||||
{
|
{
|
||||||
super(plugin, Rank.ALL, "gear", "custom-gear");
|
super(plugin, Rank.ADMIN, "gear", "custom-gear");
|
||||||
_gearManager = plugin;
|
_gearManager = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user