private void loadGlobals() throws SQLException { Closer closer = Closer.create(); try { PreparedStatement stmt = closer.register(conn.prepareStatement( "SELECT r.id, r.priority, p.id AS parent " + "FROM " + config.getTablePrefix() + "region AS r " + "LEFT JOIN " + config.getTablePrefix() + "region AS p " + " ON (r.parent = p.id AND r.world_id = p.world_id) " + "WHERE r.type = 'global' AND r.world_id = " + worldId)); ResultSet rs = closer.register(stmt.executeQuery()); while (rs.next()) { ProtectedRegion region = new GlobalProtectedRegion(rs.getString("id")); region.setPriority(rs.getInt("priority")); loaded.put(rs.getString("id"), region); String parentId = rs.getString("parent"); if (parentId != null) { parentSets.put(region, parentId); } } } finally { closer.closeQuietly(); } }
ProtectedRegion region = new ProtectedCuboidRegion(rs.getString("id"), min, max); region.setPriority(rs.getInt("priority"));
region.setPriority(rs.getInt("priority"));
region.setPriority(priority); setFlags(flagRegistry, region, node.getNode("flags")); region.setOwners(parseDomain(node.getNode("owners")));
/** * Copy attributes from another region. * * @param other the other region */ public void copyFrom(ProtectedRegion other) { checkNotNull(other); setMembers(other.getMembers()); setOwners(other.getOwners()); setFlags(other.getFlags()); setPriority(other.getPriority()); try { setParent(other.getParent()); } catch (CircularInheritanceException ignore) { // This should not be thrown } }
@Test public void testPriorities() throws Exception { ApplicableRegionSet appl; courtyard.setPriority(5); fountain.setPriority(0); appl = manager.getApplicableRegions(inCourtyard); assertTrue(appl.testState(null, Flags.FIRE_SPREAD)); appl = manager.getApplicableRegions(inFountain); assertFalse(appl.testState(null, Flags.FIRE_SPREAD)); }
@Test public void testPriorities2() throws Exception { ApplicableRegionSet appl; courtyard.setPriority(0); fountain.setPriority(5); appl = manager.getApplicableRegions(inCourtyard); assertFalse(appl.testState(null, Flags.MOB_SPAWNING)); appl = manager.getApplicableRegions(inFountain); assertTrue(appl.testState(null, Flags.MOB_SPAWNING)); } }
public ProtectedRegion createOutside(int priority) { ProtectedRegion region = new ProtectedCuboidRegion(getNextId(), BlockVector3.at(0, 0, 0), BlockVector3.at(1, 1, 1)); region.setPriority(priority); return region; }
public ProtectedRegion add(int priority) { ProtectedRegion region = new ProtectedCuboidRegion(getNextId(), BlockVector3.at(0, 0, 0), BlockVector3.at(1, 1, 1)); region.setPriority(priority); add(region); return region; }
@Test public void testNoPriorities() throws Exception { ApplicableRegionSet appl; courtyard.setPriority(0); fountain.setPriority(0); appl = manager.getApplicableRegions(inCourtyard); assertTrue(appl.testState(null, Flags.FIRE_SPREAD)); assertFalse(appl.testState(null, Flags.MOB_SPAWNING)); appl = manager.getApplicableRegions(inFountain); assertFalse(appl.testState(null, Flags.FIRE_SPREAD)); assertTrue(appl.testState(null, Flags.MOB_SPAWNING)); }
@Test public void testQueryValueBuildFlagRegionsOverlappingDifferingPriority() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer memberOne = mock.createPlayer(); LocalPlayer memberBoth = mock.createPlayer(); ProtectedRegion region = mock.add(0); region.getMembers().addPlayer(memberOne); region.getMembers().addPlayer(memberBoth); region.setPriority(10); region = mock.add(0); region.getMembers().addPlayer(memberBoth); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(nonMember, Flags.BUILD), is((State) null)); assertThat(result.queryValue(memberOne, Flags.BUILD), is(State.ALLOW)); assertThat(result.queryValue(memberBoth, Flags.BUILD), is(State.ALLOW)); }
public ProtectedRegion add(int priority, ProtectedRegion parent) throws ProtectedRegion.CircularInheritanceException { ProtectedRegion region = new ProtectedCuboidRegion(getNextId(), BlockVector3.at(0, 0, 0), BlockVector3.at(1, 1, 1)); region.setPriority(priority); region.setParent(parent); add(region); return region; }
@Test public void testGetMembershipThirdPriorityLower() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); ProtectedRegion passthrough = mock.add(0); passthrough.setFlag(Flags.PASSTHROUGH, State.ALLOW); ProtectedRegion parent = mock.add(0); ProtectedRegion region = mock.add(0); region.setParent(parent); region = mock.add(0); region.setPriority(-5); LocalPlayer player = mock.createPlayer(); parent.getMembers().addPlayer(player); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.SUCCESS)); }
/** * Set the priority of a region. * * @param args the arguments * @param sender the sender * @throws CommandException any error */ @Command(aliases = {"setpriority", "priority", "pri"}, usage = "<id> <priority>", flags = "w:", desc = "Set the priority of a region", min = 2, max = 2) public void setPriority(CommandContext args, Actor sender) throws CommandException { warnAboutSaveFailures(sender); World world = checkWorld(args, sender, 'w'); // Get the world int priority = args.getInteger(1); // Lookup the existing region RegionManager manager = checkRegionManager(world); ProtectedRegion existing = checkExistingRegion(manager, args.getString(0), false); // Check permissions if (!getPermissionModel(sender).maySetPriority(existing)) { throw new CommandPermissionsException(); } existing.setPriority(priority); sender.print("Priority of '" + existing.getId() + "' set to " + priority + " (higher numbers override)."); }