All structure terminal menus and functionalities implemented

Dropped items add nowto the buildings itemlist
Some databse work for permissions
This commit is contained in:
CharonInferar
2014-04-12 02:30:17 +02:00
parent 1ab23231f6
commit 7cd8d8d742
11 changed files with 836 additions and 150 deletions
@@ -21,10 +21,13 @@
******************************************************************************/
package resources.objects.building;
import java.util.Vector;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import main.NGECore;
import resources.objects.cell.CellObject;
import resources.objects.creature.CreatureObject;
import com.sleepycat.je.Environment;
import com.sleepycat.je.Transaction;
@@ -40,7 +43,7 @@ import engine.resources.scene.Planet;
import engine.resources.scene.Point3D;
import engine.resources.scene.Quaternion;
@Entity(version=2)
@Entity(version=5)
public class BuildingObject extends TangibleObject implements IPersistent {
@NotPersistent
@@ -49,7 +52,16 @@ public class BuildingObject extends TangibleObject implements IPersistent {
private Transaction txn;
private float maintenanceAmount = 0;
private String deedTemplate;
private int BMR = 0;
private String deedTemplate="";
private boolean residency=false;
private byte privacy=(byte)0;
public static byte PRIVATE = (byte)0;
public static byte PUBLIC = (byte)1;
private Vector<TangibleObject> itemsList = new Vector<TangibleObject>();
private short maximumStorageCapacity=0;
private Vector<Long> entryList = new Vector<Long>(); // Preferably the OIDs should be stored, because of name changes
private Vector<Long> banList = new Vector<Long>();
public BuildingObject() {
super();
@@ -93,6 +105,117 @@ public class BuildingObject extends TangibleObject implements IPersistent {
public String getDeedTemplate(){
return this.deedTemplate;
}
public String getBuildingName() {
return this.getCustomName();
}
public void setBuildingName(String buildingName, CreatureObject owner) {
//owner.getClient().getSession().write(messageBuilder.buildCustomNameDelta(this,buildingName));
this.setCustomName(buildingName);
((CreatureObject)owner).sendSystemMessage("Structure renamed.", (byte) 0);
}
public int getBMR() {
return BMR;
}
public void setBMR(int BMR) {
this.BMR = BMR;
}
public void setResidency(CreatureObject owner){
owner.sendSystemMessage("@player_structure:declared_residency", (byte) 1);
residency = true;
}
public boolean getResidency(){
return this.residency;
}
public byte getPrivacy() {
return privacy;
}
public String getPrivacyString() {
if (privacy==PRIVATE)
return "private";
if (privacy==PUBLIC)
return "public";
return "42";
}
public void setPrivacy(byte privacy) {
this.privacy = privacy;
}
public Vector<TangibleObject> getItemsList() {
return itemsList;
}
public void setItemsList(Vector<TangibleObject> itemsList) {
this.itemsList = itemsList;
}
public short getMaximumStorageCapacity() {
return maximumStorageCapacity;
}
public void setMaximumStorageCapacity(short maximumStorageCapacity) {
this.maximumStorageCapacity = maximumStorageCapacity;
}
public void setPermissionEntry(String name,CreatureObject owner){
Vector<String> entryListFirstNames = new Vector<String>();
for (long oid : entryList){
String firstName = NGECore.getInstance().characterService.getPlayerFirstName(oid);
entryListFirstNames.add(firstName);
}
entryListFirstNames.add("Peter");
entryListFirstNames.add("Jackson");
owner.getClient().getSession().write(messageBuilder.buildPermissionListCreate(entryListFirstNames, name));
}
public void setPermissionBan(String name,CreatureObject owner){
Vector<String> banListFirstNames = new Vector<String>();
for (long oid : banList){
String firstName = NGECore.getInstance().characterService.getPlayerFirstName(oid);
banListFirstNames.add(firstName);
}
banListFirstNames.add("Peter");
banListFirstNames.add("Smith");
owner.getClient().getSession().write(messageBuilder.buildPermissionListCreate(banListFirstNames, name));
}
public void addPlayerToEntryList(CreatureObject owner,long oid, String firstName){
if (!entryList.contains(oid)){
this.entryList.add(oid);
owner.sendSystemMessage(firstName+ " added to the list.", (byte)1); // player_added %NO added to the list.
}
}
public void removePlayerFromEntryList(CreatureObject owner,long oid, String firstName){
if (entryList.contains(oid)){
this.entryList.remove(oid);
owner.sendSystemMessage(firstName+ " removed to the list.", (byte)1); // player_removed %NO removed from the list.
}
}
public void addPlayerToBanList(CreatureObject owner,long oid, String firstName){
if (!banList.contains(oid)){
this.banList.add(oid);
owner.sendSystemMessage(firstName+ " added to the list.", (byte)1);
}
}
public void removePlayerFromBanList(CreatureObject owner,long oid, String firstName){
if (banList.contains(oid)){
this.banList.remove(oid);
owner.sendSystemMessage(firstName+ " removed to the list.", (byte)1);
}
}
@Override
public void sendBaselines(Client destination) {
@@ -115,5 +238,4 @@ public class BuildingObject extends TangibleObject implements IPersistent {
txn = env.beginTransaction(null, null);
txn.setLockTimeout(500, TimeUnit.MILLISECONDS);
}
}