Worked on fixing issues with groups
This commit is contained in:
parent
f5bbcbd925
commit
a6c868e7da
7 changed files with 34 additions and 63 deletions
|
@ -52,7 +52,7 @@ public class Group<J>
|
||||||
return memebers.contains(obj);
|
return memebers.contains(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String name()
|
public String getName()
|
||||||
{
|
{
|
||||||
return this.groupName;
|
return this.groupName;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class AccessGroup extends Group<AccessUser>
|
||||||
|
|
||||||
public NBTTagCompound save(NBTTagCompound nbt)
|
public NBTTagCompound save(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
nbt.setString("groupName", this.name());
|
nbt.setString("groupName", this.getName());
|
||||||
NBTTagList usersTag = new NBTTagList();
|
NBTTagList usersTag = new NBTTagList();
|
||||||
for (AccessUser user : this.memebers)
|
for (AccessUser user : this.memebers)
|
||||||
{
|
{
|
||||||
|
@ -73,7 +73,7 @@ public class AccessGroup extends Group<AccessUser>
|
||||||
usersTag.appendTag(accessData);
|
usersTag.appendTag(accessData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nbt.setTag("Users", usersTag);
|
nbt.setTag("users", usersTag);
|
||||||
NBTTagList nodesTag = new NBTTagList();
|
NBTTagList nodesTag = new NBTTagList();
|
||||||
for (String str : this.nodes)
|
for (String str : this.nodes)
|
||||||
{
|
{
|
||||||
|
@ -91,12 +91,12 @@ public class AccessGroup extends Group<AccessUser>
|
||||||
NBTTagList userList = nbt.getTagList("users");
|
NBTTagList userList = nbt.getTagList("users");
|
||||||
for (int i = 0; i < userList.tagCount(); ++i)
|
for (int i = 0; i < userList.tagCount(); ++i)
|
||||||
{
|
{
|
||||||
memebers.add(AccessUser.loadFromNBT((NBTTagCompound) userList.tagAt(i)));
|
this.addMemeber(AccessUser.loadFromNBT((NBTTagCompound) userList.tagAt(i)));
|
||||||
}
|
}
|
||||||
userList = nbt.getTagList("nodes");
|
NBTTagList nodeList = nbt.getTagList("nodes");
|
||||||
for (int i = 0; i < userList.tagCount(); ++i)
|
for (int i = 0; i < nodeList.tagCount(); ++i)
|
||||||
{
|
{
|
||||||
this.nodes.add(((NBTTagCompound) userList.tagAt(i)).getString("name"));
|
this.nodes.add(((NBTTagCompound) nodeList.tagAt(i)).getString("name"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,7 @@ public class GuiGlobalList extends GuiContainer implements IScroll
|
||||||
if (object instanceof AccessUser)
|
if (object instanceof AccessUser)
|
||||||
{
|
{
|
||||||
AccessUser accesInfo = (AccessUser) object;
|
AccessUser accesInfo = (AccessUser) object;
|
||||||
line = accesInfo.getName() + " (" + accesInfo.getGroup().name() + ")";
|
line = accesInfo.getName() + " (" + accesInfo.getGroup().getName() + ")";
|
||||||
}
|
}
|
||||||
else if (object instanceof String)
|
else if (object instanceof String)
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,10 +36,6 @@ public class TileEntityInv extends TileEntityAdvanced implements IExternalInv, I
|
||||||
public void initiate()
|
public void initiate()
|
||||||
{
|
{
|
||||||
thisPos = new Vector3(this);
|
thisPos = new Vector3(this);
|
||||||
if (this.groups == null || this.groups.isEmpty())
|
|
||||||
{
|
|
||||||
TerminalCommandRegistry.loadNewGroupSet(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector3 getThisPos()
|
public Vector3 getThisPos()
|
||||||
|
@ -264,9 +260,9 @@ public class TileEntityInv extends TileEntityAdvanced implements IExternalInv, I
|
||||||
@Override
|
@Override
|
||||||
public AccessGroup getGroup(String name)
|
public AccessGroup getGroup(String name)
|
||||||
{
|
{
|
||||||
for (AccessGroup group : this.groups)
|
for (AccessGroup group : this.getGroups())
|
||||||
{
|
{
|
||||||
if (group.name().equalsIgnoreCase(name))
|
if (group.getName().equalsIgnoreCase(name))
|
||||||
{
|
{
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
@ -281,7 +277,7 @@ public class TileEntityInv extends TileEntityAdvanced implements IExternalInv, I
|
||||||
{
|
{
|
||||||
for (AccessGroup g : this.groups)
|
for (AccessGroup g : this.groups)
|
||||||
{
|
{
|
||||||
if (group.name().equalsIgnoreCase(g.name()))
|
if (group.getName().equalsIgnoreCase(g.getName()))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -294,16 +290,16 @@ public class TileEntityInv extends TileEntityAdvanced implements IExternalInv, I
|
||||||
@Override
|
@Override
|
||||||
public AccessGroup getOwnerGroup()
|
public AccessGroup getOwnerGroup()
|
||||||
{
|
{
|
||||||
if (this.getGroup("owner") == null)
|
|
||||||
{
|
|
||||||
this.groups.add(new AccessGroup("owner"));
|
|
||||||
}
|
|
||||||
return this.getGroup("owner");
|
return this.getGroup("owner");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AccessGroup> getGroups()
|
public List<AccessGroup> getGroups()
|
||||||
{
|
{
|
||||||
|
if (this.groups == null || this.groups.isEmpty())
|
||||||
|
{
|
||||||
|
TerminalCommandRegistry.loadNewGroupSet(this);
|
||||||
|
}
|
||||||
return this.groups;
|
return this.groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,37 +308,10 @@ public class TileEntityInv extends TileEntityAdvanced implements IExternalInv, I
|
||||||
{
|
{
|
||||||
super.readFromNBT(nbt);
|
super.readFromNBT(nbt);
|
||||||
this.getInventory().loadInv(nbt);
|
this.getInventory().loadInv(nbt);
|
||||||
// Read user list
|
NBTTagList userList = nbt.getTagList("groups");
|
||||||
if (!nbt.hasKey("group"))
|
if (userList != null && userList.tagCount() > 0)
|
||||||
{
|
{
|
||||||
NBTTagList userList = nbt.getTagList("Users");
|
this.groups.clear();
|
||||||
AccessGroup usr = new AccessGroup("user");
|
|
||||||
AccessGroup admin = new AccessGroup("admin");
|
|
||||||
AccessGroup owner = new AccessGroup("owner");
|
|
||||||
this.groups.add(usr);
|
|
||||||
this.groups.add(admin);
|
|
||||||
this.groups.add(owner);
|
|
||||||
for (int i = 0; i < userList.tagCount(); ++i)
|
|
||||||
{
|
|
||||||
AccessUser user = new AccessUser(((NBTTagCompound) userList.tagAt(i)).getString("username"));
|
|
||||||
switch (nbt.getInteger("ID"))
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
usr.addMemeber(user);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
admin.addMemeber(user);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
owner.addMemeber(user);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NBTTagList userList = nbt.getTagList("groups");
|
|
||||||
for (int i = 0; i < userList.tagCount(); i++)
|
for (int i = 0; i < userList.tagCount(); i++)
|
||||||
{
|
{
|
||||||
AccessGroup group = new AccessGroup("");
|
AccessGroup group = new AccessGroup("");
|
||||||
|
@ -357,9 +326,9 @@ public class TileEntityInv extends TileEntityAdvanced implements IExternalInv, I
|
||||||
{
|
{
|
||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
this.getInventory().saveInv(nbt);
|
this.getInventory().saveInv(nbt);
|
||||||
// Write user list
|
|
||||||
NBTTagList usersTag = new NBTTagList();
|
NBTTagList usersTag = new NBTTagList();
|
||||||
for (AccessGroup group : this.groups)
|
for (AccessGroup group : this.getGroups())
|
||||||
{
|
{
|
||||||
usersTag.appendTag(group.save(new NBTTagCompound()));
|
usersTag.appendTag(group.save(new NBTTagCompound()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,10 +67,7 @@ public abstract class TileEntityMachine extends TileEntityInv implements ISidedI
|
||||||
{
|
{
|
||||||
this.sendPowerUpdate();
|
this.sendPowerUpdate();
|
||||||
}
|
}
|
||||||
if (this.ticks % 5 == 0)
|
this.sendGUIPacket();
|
||||||
{
|
|
||||||
this.sendGUIPacket();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.disabledTicks > 0)
|
if (this.disabledTicks > 0)
|
||||||
|
@ -179,7 +176,7 @@ public abstract class TileEntityMachine extends TileEntityInv implements ISidedI
|
||||||
}
|
}
|
||||||
if (id.equalsIgnoreCase(SimplePacketTypes.NBT.name))
|
if (id.equalsIgnoreCase(SimplePacketTypes.NBT.name))
|
||||||
{
|
{
|
||||||
this.readFromNBT(Packet.readNBTTagCompound(dis));
|
this.readFromNBT(PacketHandler.instance().readNBTTagCompound(dis));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,15 +216,18 @@ public abstract class TileEntityMachine extends TileEntityInv implements ISidedI
|
||||||
|
|
||||||
public void sendGUIPacket()
|
public void sendGUIPacket()
|
||||||
{
|
{
|
||||||
if (this.hasGUI && this.getContainer() != null)
|
if (this.hasGUI && this.getContainer() != null && this.ticks % 5 == 0)
|
||||||
{
|
{
|
||||||
this.playersUsingMachine = 0;
|
this.playersUsingMachine = 0;
|
||||||
for (Object entity : this.worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 10, yCoord - 10, zCoord - 10, xCoord + 10, yCoord + 10, zCoord + 10)))
|
for (Object entity : this.worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).expand(10, 10, 10)))
|
||||||
{
|
{
|
||||||
if (entity instanceof EntityPlayer && ((EntityPlayer) entity).openContainer.getClass().equals(this.getContainer()))
|
if (entity instanceof EntityPlayer && ((EntityPlayer) entity).openContainer != null)
|
||||||
{
|
{
|
||||||
this.playersUsingMachine += 1;
|
if (((EntityPlayer) entity).openContainer.getClass().isAssignableFrom(this.getContainer()))
|
||||||
this.sendGUIPacket(((EntityPlayer) entity));
|
{
|
||||||
|
this.playersUsingMachine += 1;
|
||||||
|
this.sendGUIPacket(((EntityPlayer) entity));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,7 @@ public class TerminalCommandRegistry
|
||||||
group.addNode(string);
|
group.addNode(string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
groups.add(group);
|
||||||
}
|
}
|
||||||
return groups;
|
return groups;
|
||||||
}
|
}
|
||||||
|
@ -104,7 +105,7 @@ public class TerminalCommandRegistry
|
||||||
List<AccessGroup> groups = getNewGroupSet();
|
List<AccessGroup> groups = getNewGroupSet();
|
||||||
for (AccessGroup group : groups)
|
for (AccessGroup group : groups)
|
||||||
{
|
{
|
||||||
terminal.addGroup(group);
|
terminal.addGroup(group);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,8 @@ public abstract class TileEntityTerminal extends TileEntityEnergyMachine impleme
|
||||||
super(wattsPerTick, maxEnergy);
|
super(wattsPerTick, maxEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void senGUIPacket(EntityPlayer entity)
|
@Override
|
||||||
|
public void sendGUIPacket(EntityPlayer entity)
|
||||||
{
|
{
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue