mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-28 13:12:54 -04:00
Refactored Building and Harvester Permission Lists, fixed AI pathing into cells
This commit is contained in:
@@ -35,6 +35,7 @@ import resources.datatables.Options;
|
||||
import resources.objects.ObjectMessageBuilder;
|
||||
import resources.objects.cell.CellObject;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.player.PlayerObject;
|
||||
import resources.objects.tangible.TangibleObject;
|
||||
import engine.clientdata.ClientFileManager;
|
||||
import engine.clientdata.visitors.PortalVisitor;
|
||||
@@ -54,6 +55,7 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria
|
||||
|
||||
private Vector<Long> entryList = new Vector<Long>();
|
||||
private Vector<Long> banList = new Vector<Long>();
|
||||
private Vector<Long> adminList = new Vector<Long>();
|
||||
|
||||
public static final byte PRIVATE = (byte) 0;
|
||||
public static final byte PUBLIC = (byte) 1;
|
||||
@@ -289,6 +291,18 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria
|
||||
owner.getClient().getSession().write(messageBuilder.buildPermissionListCreate(banListFirstNames, name));
|
||||
}
|
||||
|
||||
public void setPermissionAdmin(String name, CreatureObject owner){
|
||||
Vector<String> adminListFirstNames = new Vector<String>();
|
||||
|
||||
for (long oid : adminList) {
|
||||
String firstName = NGECore.getInstance().characterService.getPlayerFirstName(oid);
|
||||
adminListFirstNames.add(firstName);
|
||||
}
|
||||
|
||||
owner.getClient().getSession().write(messageBuilder.buildPermissionListCreate(adminListFirstNames, name));
|
||||
}
|
||||
|
||||
|
||||
public void addPlayerToEntryList(CreatureObject owner, long oid, String firstName){
|
||||
if (!entryList.contains(oid)){
|
||||
SWGObject obj = NGECore.getInstance().objectService.getObject(oid);
|
||||
@@ -329,6 +343,22 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria
|
||||
}
|
||||
}
|
||||
|
||||
public void addPlayerToAdminList(CreatureObject owner, long oid, String firstName){
|
||||
if (!adminList.contains(oid)){
|
||||
adminList.add(oid);
|
||||
if(owner != null)
|
||||
owner.sendSystemMessage(OutOfBand.ProsePackage("@player_structure:player_added", "TO", NGECore.getInstance().objectService.getObject(oid).getCustomName()), DisplayType.Screen);
|
||||
}
|
||||
}
|
||||
|
||||
public void removePlayerFromAdminList(CreatureObject owner, long oid, String firstName){
|
||||
if (adminList.contains(oid)){
|
||||
adminList.remove(oid);
|
||||
if(owner != null)
|
||||
owner.sendSystemMessage(OutOfBand.ProsePackage("@player_structure:player_removed", "TO", NGECore.getInstance().objectService.getObject(oid).getCustomName()), DisplayType.Screen);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyClients(IoBuffer buffer, boolean notifySelf) {
|
||||
notifyObservers(buffer, false);
|
||||
@@ -365,7 +395,7 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria
|
||||
}
|
||||
|
||||
public boolean canEnter(SWGObject object) {
|
||||
return (getPrivacy() == PRIVATE && entryList.contains(object.getObjectID())) || !banList.contains(object.getObjectID());
|
||||
return (getPrivacy() == PRIVATE && (entryList.contains(object.getObjectID()) || adminList.contains(object.getObjectID()))) || !banList.contains(object.getObjectID()) || object.getClient().isGM();
|
||||
}
|
||||
|
||||
public void updateCellPermissions(SWGObject obj) {
|
||||
@@ -374,4 +404,17 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria
|
||||
viewChildren(this, true, false, (cell) -> ((CellObject) cell).sendPermissionMessage(obj.getClient()));
|
||||
}
|
||||
|
||||
public boolean isOnEntryList(CreatureObject creature) {
|
||||
return entryList.contains(creature.getObjectID());
|
||||
}
|
||||
|
||||
public boolean isOnBanList(CreatureObject creature) {
|
||||
return banList.contains(creature.getObjectID());
|
||||
}
|
||||
|
||||
public boolean isOnAdminList(CreatureObject creature) {
|
||||
return adminList.contains(creature.getObjectID());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user