@Override public Set<String> getOwnerPermissions() { Set<String> rval = new HashSet<String>(); for (CartProperties cprop : this) { rval.addAll(cprop.getOwnerPermissions()); } return rval; }
@Override public boolean parseSet(String key, String arg) { if (key.equals("exitoffset")) { Vector vec = Util.parseVector(arg, null); if (vec != null) { for (CartProperties prop : this) { prop.exitOffset = vec; } } } else if (key.equals("exityaw")) { float yaw = ParseUtil.parseFloat(arg, 0.0f); for (CartProperties prop : this) { prop.exitYaw = yaw; } } else if (key.equals("exitpitch")) { float pitch = ParseUtil.parseFloat(arg, 0.0f); for (CartProperties prop : this) { prop.exitPitch = pitch; } } else if (LogicUtil.contains(key, "exitrot", "exitrotation")) { String[] angletext = Util.splitBySeparator(arg); float yaw = 0.0f; float pitch = 0.0f; if (angletext.length == 2) { yaw = ParseUtil.parseFloat(angletext[0], 0.0f); pitch = ParseUtil.parseFloat(angletext[1], 0.0f); } else if (angletext.length == 1) { yaw = ParseUtil.parseFloat(angletext[0], 0.0f); } for (CartProperties prop : this) { prop.exitYaw = yaw; prop.exitPitch = pitch; } } else if (key.equals("sound") || key.equals("minecartsound")) { this.soundEnabled = ParseUtil.parseBool(arg); } else if (key.equals("mobcollision")) { this.mobCollision = CollisionMode.parse(arg); } else if (key.equals("playercollision")) { this.playerCollision = CollisionMode.parse(arg); } else if (key.equals("misccollision")) { this.miscCollision = CollisionMode.parse(arg); } else if (key.equals("traincollision")) { this.trainCollision = CollisionMode.parse(arg); } else if (LogicUtil.contains(key, "collision", "collide")) { this.setColliding(ParseUtil.parseBool(arg)); } else if (LogicUtil.contains(key, "linking", "link")) { this.trainCollision = CollisionMode.fromLinking(ParseUtil.parseBool(arg)); } else if (LogicUtil.contains(key, "slow", "slowdown")) { this.setSlowingDown(ParseUtil.parseBool(arg)); } else if (LogicUtil.contains(key, "setdefault", "default")) { this.setDefault(arg); } else if (key.equals("pushmobs")) { this.mobCollision = CollisionMode.fromPushing(ParseUtil.parseBool(arg)); } else if (key.equals("pushplayers")) { this.playerCollision = CollisionMode.fromPushing(ParseUtil.parseBool(arg)); } else if (key.equals("pushmisc")) { this.miscCollision = CollisionMode.fromPushing(ParseUtil.parseBool(arg)); } else if (LogicUtil.contains(key, "push", "pushing")) { CollisionMode mode = CollisionMode.fromPushing(ParseUtil.parseBool(arg)); this.playerCollision = this.mobCollision = this.miscCollision = mode; } else if (LogicUtil.contains(key, "speedlimit", "maxspeed")) { this.setSpeedLimit(ParseUtil.parseDouble(arg, 0.4)); } else if (LogicUtil.contains(key, "allowmanual", "manualmove", "manual")) { this.allowManualMovement = ParseUtil.parseBool(arg); } else if (LogicUtil.contains(key, "keepcloaded", "loadchunks", "keeploaded")) { this.keepChunksLoaded = ParseUtil.parseBool(arg); } else if (key.equals("addtag")) { this.addTags(arg); } else if (key.equals("settag")) { this.setTags(arg); } else if (key.equals("destination")) { this.setDestination(arg); } else if (key.equals("remtag")) { this.removeTags(arg); } else if (LogicUtil.contains(key, "name", "rename", "setname")) { this.setName(generateTrainName(arg)); } else if (LogicUtil.contains(key, "dname", "displayname", "setdisplayname", "setdname")) { this.setDisplayName(arg); } else if (LogicUtil.contains(key, "mobenter", "mobsenter")) { this.mobCollision = CollisionMode.fromEntering(ParseUtil.parseBool(arg)); } else if (key.equals("playerenter")) { this.setPlayersEnter(ParseUtil.parseBool(arg)); } else if (key.equals("playerexit")) { this.setPlayersExit(ParseUtil.parseBool(arg)); } else if (LogicUtil.contains(key, "invincible", "godmode")) { this.setInvincible(ParseUtil.parseBool(arg)); } else if (key.equals("setownerperm")) { for (CartProperties prop : this) { prop.clearOwnerPermissions(); prop.getOwnerPermissions().add(arg); } } else if (key.equals("addownerperm")) { for (CartProperties prop : this) { prop.getOwnerPermissions().add(arg); } } else if (key.equals("remownerperm")) { for (CartProperties prop : this) { prop.getOwnerPermissions().remove(arg); } } else if (key.equals("setowner")) { arg = arg.toLowerCase(); for (CartProperties cprop : this) { cprop.clearOwners(); cprop.getOwners().add(arg); } } else if (key.equals("addowner")) { arg = arg.toLowerCase(); for (CartProperties cprop : this) { cprop.getOwners().add(arg); } } else if (key.equals("remowner")) { arg = arg.toLowerCase(); for (CartProperties cprop : this) { cprop.getOwners().remove(arg); } } else if (LogicUtil.contains(key, "spawnitemdrops", "spawndrops", "killdrops")) { this.setSpawnItemDrops(ParseUtil.parseBool(arg)); } else { return false; } return true; }