Pretty much all of security minus the gui.

and all the stuff I did that i forgot to comment.
This commit is contained in:
AlgorithmX2
2014-01-26 22:00:36 -06:00
parent bea039c7b5
commit 0f75db5e80
61 changed files with 2058 additions and 126 deletions
+2 -1
View File
@@ -6,6 +6,7 @@ import appeng.api.definitions.Blocks;
import appeng.api.definitions.Items;
import appeng.api.definitions.Materials;
import appeng.api.definitions.Parts;
import appeng.api.exceptions.FailedConnection;
import appeng.api.features.IRegistryContainer;
import appeng.api.networking.IGridBlock;
import appeng.api.networking.IGridConnection;
@@ -89,7 +90,7 @@ public class Api implements IAppEngApi
}
@Override
public IGridConnection createGridConnection(IGridNode a, IGridNode b)
public IGridConnection createGridConnection(IGridNode a, IGridNode b) throws FailedConnection
{
return new GridConnection( a, b, ForgeDirection.UNKNOWN );
}
+6
View File
@@ -21,6 +21,7 @@ import appeng.api.definitions.Parts;
import appeng.api.implementations.tiles.ITileStorageMonitorable;
import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.networking.pathing.IPathingGrid;
import appeng.api.networking.security.ISecurityGrid;
import appeng.api.networking.spatial.ISpatialCache;
import appeng.api.networking.storage.IStorageGrid;
import appeng.api.networking.ticking.ITickManager;
@@ -40,6 +41,7 @@ import appeng.block.misc.BlockInterface;
import appeng.block.misc.BlockNetworkEmitter;
import appeng.block.misc.BlockQuartzCrystalizer;
import appeng.block.misc.BlockQuartzTorch;
import appeng.block.misc.BlockSecurity;
import appeng.block.misc.BlockTinyTNT;
import appeng.block.misc.BlockVibrationChamber;
import appeng.block.networking.BlockCableBus;
@@ -111,6 +113,7 @@ import appeng.me.cache.EnergyGridCache;
import appeng.me.cache.GridStorageCache;
import appeng.me.cache.P2PCache;
import appeng.me.cache.PathGridCache;
import appeng.me.cache.SecurityCache;
import appeng.me.cache.SpatialPylonCache;
import appeng.me.cache.TickManagerCache;
import appeng.me.storage.AEExternalHandler;
@@ -256,6 +259,8 @@ public class Registration
blocks.blockEnergyCellDense = addFeature( BlockDenseEnergyCell.class );
blocks.blockEnergyCellCreative = addFeature( BlockCreativeEnergyCell.class );
blocks.blockSecurity = addFeature( BlockSecurity.class );
items.itemEncodedAsemblerPattern = addFeature( ItemEncodedPattern.class );
items.itemCellCreative = addFeature( ItemCreativeStorageCell.class );
@@ -410,6 +415,7 @@ public class Registration
AEApi.instance().registries().gridCache().registerGridCache( IStorageGrid.class, GridStorageCache.class );
AEApi.instance().registries().gridCache().registerGridCache( P2PCache.class, P2PCache.class );
AEApi.instance().registries().gridCache().registerGridCache( ISpatialCache.class, SpatialPylonCache.class );
AEApi.instance().registries().gridCache().registerGridCache( ISecurityGrid.class, SecurityCache.class );
AEApi.instance().registries().externalStorage().addExternalStorageInterface( new AEExternalHandler() );
+40
View File
@@ -2,10 +2,13 @@ package appeng.core;
import java.io.File;
import java.lang.ref.WeakReference;
import java.util.Map.Entry;
import java.util.WeakHashMap;
import net.minecraftforge.common.ConfigCategory;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.Property;
import appeng.api.util.WorldCoord;
import appeng.me.GridStorage;
import appeng.me.GridStorageSearch;
@@ -17,16 +20,19 @@ public class WorldSettings extends Configuration
private static WorldSettings instance;
long lastGridStorage = 0;
int lastPlayer = 0;
public WorldSettings(File f) {
super( f );
try
{
lastGridStorage = Long.parseLong( get( "Counters", "lastGridStorage", 0 ).getString() );
lastPlayer = get( "Counters", "lastPlayer", 0 ).getInt();
}
catch (NumberFormatException err)
{
lastGridStorage = 0;
lastPlayer = 0;
}
}
@@ -141,4 +147,38 @@ public class WorldSettings extends Configuration
return r;
}
private long nextPlayer()
{
long r = lastPlayer++;
get( "Counters", "lastPlayer", lastPlayer ).set( lastPlayer );
return r;
}
public String getUsername(int id)
{
ConfigCategory playerList = this.getCategory( "players" );
for (Entry<String, Property> fish : playerList.entrySet())
{
if ( fish.getValue().isIntValue() && fish.getValue().getInt() == id )
return fish.getKey();
}
return null;
}
public int getPlayerID(String username)
{
ConfigCategory playerList = this.getCategory( "players" );
if ( playerList == null )
return -1;
Property prop = playerList.get( username );
if ( prop != null && prop.isIntValue() )
return prop.getInt();
else
{
playerList.put( username, prop = new Property( username, "" + nextPlayer(), Property.Type.INTEGER ) );
save();
return prop.getInt();
}
}
}
+1 -1
View File
@@ -40,7 +40,7 @@ public enum AEFeature
DenseEnergyCells("HigherCapacity"), DenseCables("HigherCapacity"),
P2PTunnelME("P2PTunnels"), P2PTunnelItems("P2PTunnels"), P2PTunnelRedstone("P2PTunnels"), P2PTunnelEU("P2PTunnels"), P2PTunnelMJ("P2PTunnels"), P2PTunnelLiquids(
"P2PTunnels"),
"P2PTunnels"), Security("Security"),
MassCannonBlockDamage("BlockFeatures"), TinyTNTBlockDamage("BlockFeatures"), Facades("Facades"),
@@ -0,0 +1,28 @@
package appeng.core.features.registries;
import net.minecraft.entity.player.EntityPlayer;
import appeng.api.features.IPlayerRegistry;
import appeng.core.WorldSettings;
public class PlayerRegistry implements IPlayerRegistry
{
@Override
public int getID(String username)
{
return WorldSettings.getInstance().getPlayerID( username );
}
@Override
public int getID(EntityPlayer player)
{
return WorldSettings.getInstance().getPlayerID( player.username );
}
@Override
public String getUsername(int id)
{
return WorldSettings.getInstance().getUsername( id );
}
}
@@ -4,6 +4,7 @@ import appeng.api.features.IGrinderRegistry;
import appeng.api.features.ILocateableRegistry;
import appeng.api.features.IMatterCannonAmmoRegistry;
import appeng.api.features.IP2PTunnelRegistry;
import appeng.api.features.IPlayerRegistry;
import appeng.api.features.IRegistryContainer;
import appeng.api.features.ISpecialComparisonRegistry;
import appeng.api.features.IWirelessTermRegistery;
@@ -25,6 +26,7 @@ public class RegistryContainer implements IRegistryContainer
private P2PTunnelRegistry P2PRegistry = new P2PTunnelRegistry();
private MovableTileRegistry MoveableReg = new MovableTileRegistry();
private MatterCannonAmmoRegistry matterCannonReg = new MatterCannonAmmoRegistry();
private PlayerRegistry playerreg = new PlayerRegistry();
@Override
public IWirelessTermRegistery wireless()
@@ -86,4 +88,10 @@ public class RegistryContainer implements IRegistryContainer
return matterCannonReg;
}
@Override
public IPlayerRegistry players()
{
return playerreg;
}
}
+58
View File
@@ -0,0 +1,58 @@
package appeng.core.sync.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.network.INetworkManager;
import net.minecraft.tileentity.TileEntity;
import appeng.container.AEBaseContainer;
import appeng.container.ContainerOpenContext;
import appeng.core.sync.AppEngPacket;
import appeng.core.sync.GuiBridge;
import appeng.util.Platform;
public class PacketSwitchGuis extends AppEngPacket
{
final GuiBridge newGui;
// automatic.
public PacketSwitchGuis(DataInputStream stream) throws IOException {
newGui = GuiBridge.values()[stream.readInt()];
}
@Override
public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player)
{
Container c = player.openContainer;
if ( c instanceof AEBaseContainer )
{
AEBaseContainer bc = (AEBaseContainer) c;
ContainerOpenContext context = bc.openContext;
if ( context != null )
{
TileEntity te = context.w.getBlockTileEntity( context.x, context.y, context.z );
Platform.openGUI( player, te, context.side, newGui );
}
}
}
// api
public PacketSwitchGuis(GuiBridge newGui) throws IOException {
this.newGui = newGui;
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DataOutputStream data = new DataOutputStream( bytes );
data.writeInt( getPacketID() );
data.writeInt( newGui.ordinal() );
isChunkDataPacket = false;
configureWrite( bytes.toByteArray() );
}
}