/** * Grab all the player names from all the regions in the given collection. * * @param regions a collection of regions * @return a set of names */ private static Set<String> getNames(Collection<ProtectedRegion> regions) { Set<String> names = new HashSet<>(); for (ProtectedRegion region : regions) { // Names are already lower case names.addAll(region.getOwners().getPlayers()); names.addAll(region.getMembers().getPlayers()); } return names; }
public void updateRegionProperties(ProtectedRegion region) { if (region.getParent() != null) { parentsToSet.add(region); } flagsToReplace.add(region); domainsToReplace.add(region); addDomain(region.getOwners()); addDomain(region.getMembers()); }
/** * Add information about members. */ public void appendDomain() { builder.append(Style.BLUE); builder.append("Owners: "); addDomainString(region.getOwners()); newLine(); builder.append(Style.BLUE); builder.append("Members: "); addDomainString(region.getMembers()); newLine(); }
/** * Convert all the names to UUIDs. * * @param regions a collection of regions */ private void convert(Collection<ProtectedRegion> regions) { for (ProtectedRegion region : regions) { convert(region.getOwners()); convert(region.getMembers()); } }
@Test public void testQueryValueBuildFlagRegionsOverlapping() 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 = 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) null)); assertThat(result.queryValue(memberBoth, Flags.BUILD), is(State.ALLOW)); }
@Test public void testQueryValueBuildFlagWildernessAndGlobalRegionMembership() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer member = mock.createPlayer(); ProtectedRegion global = mock.global(); global.getMembers().addPlayer(member); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(member, Flags.BUILD), is(State.ALLOW)); assertThat(result.queryValue(nonMember, Flags.BUILD), is((State) null)); }
@Test public void testQueryValueBuildFlagRegion() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer member = mock.createPlayer(); ProtectedRegion region = mock.add(0); region.getMembers().addPlayer(member); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(nonMember, Flags.BUILD), is((State) null)); assertThat(result.queryValue(member, Flags.BUILD), is(State.ALLOW)); }
@Test public void testQueryValueBuildFlagWildernessAndGlobalRegionMembershipAndDeny() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer member = mock.createPlayer(); ProtectedRegion global = mock.global(); global.getMembers().addPlayer(member); global.setFlag(Flags.BUILD, State.DENY); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(member, Flags.BUILD), is(State.DENY)); assertThat(result.queryValue(nonMember, Flags.BUILD), is(State.DENY)); }
@Test public void testQueryValueBuildFlagWildernessAndGlobalRegionMembershipAndAllow() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer member = mock.createPlayer(); ProtectedRegion global = mock.global(); global.getMembers().addPlayer(member); global.setFlag(Flags.BUILD, State.ALLOW); // Cannot set ALLOW on BUILD FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(member, Flags.BUILD), is(State.ALLOW)); assertThat(result.queryValue(nonMember, Flags.BUILD), is((State) null)); }
public RegionReport(ProtectedRegion region) { super("Region: " + region.getId()); append("Type", region.getType()); append("Priority", region.getPriority()); append("Owners", region.getOwners()); append("Members", region.getMembers()); append("FlagUtil", region.getFlags()); }
@Test public void testGetMembershipPassthroughAndRegionMemberOf() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); ProtectedRegion region = mock.add(0); region.setFlag(Flags.PASSTHROUGH, State.ALLOW); region = mock.add(0); LocalPlayer player = mock.createPlayer(); region.getMembers().addPlayer(player); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.SUCCESS)); }
@Test public void testGetMembershipPassthroughAndRegionMemberOfAndAnotherNotWithHigherPriority() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); ProtectedRegion region = mock.add(0); region.setFlag(Flags.PASSTHROUGH, State.ALLOW); region = mock.add(0); LocalPlayer player = mock.createPlayer(); region.getMembers().addPlayer(player); region = mock.add(10); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.FAIL)); }
@Test public void testGetMembershipPassthroughAndRegionMemberOfWithHigherPriorityAndAnotherNot() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); ProtectedRegion region = mock.add(0); region.setFlag(Flags.PASSTHROUGH, State.ALLOW); region = mock.add(10); LocalPlayer player = mock.createPlayer(); region.getMembers().addPlayer(player); region = mock.add(0); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.SUCCESS)); }
@Test public void testWildernessBuildWithRegion() { MockApplicableRegionSet mock = new MockApplicableRegionSet(); LocalPlayer member = mock.createPlayer(); LocalPlayer nonMember = mock.createPlayer(); ProtectedRegion region = mock.add(0); region.getMembers().addPlayer(member); ApplicableRegionSet set = mock.getApplicableSet(); assertThat(set.testState(member, Flags.BUILD), is(true)); assertThat(set.testState(nonMember, Flags.BUILD), is(false)); }
@Test public void testQueryValueFlagsWithRegionGroupsAndPriority() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); StateFlag flag1 = new StateFlag("test1", false); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer member = mock.createPlayer(); ProtectedRegion lower = mock.add(-1); lower.setFlag(flag1, State.DENY); lower.setFlag(flag1.getRegionGroupFlag(), RegionGroup.NON_MEMBERS); ProtectedRegion region = mock.add(0); region.getMembers().addPlayer(member); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(nonMember, flag1), is(State.DENY)); assertThat(result.queryValue(member, flag1), is(State.DENY)); }
@Test public void testGetMembershipPassthroughAndRegionMemberOfWithAnotherChild() 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); LocalPlayer player = mock.createPlayer(); parent.getMembers().addPlayer(player); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.SUCCESS)); }
@Test public void testGetMembershipPassthroughAndRegionMemberOfWithAnotherParent() 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); LocalPlayer player = mock.createPlayer(); region.getMembers().addPlayer(player); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.SUCCESS)); }
@Test public void testQueryValueFlagsWithRegionGroupsAndInheritance() throws Exception { MockApplicableRegionSet mock = new MockApplicableRegionSet(); StateFlag flag1 = new StateFlag("test1", false); LocalPlayer nonMember = mock.createPlayer(); LocalPlayer member = mock.createPlayer(); ProtectedRegion parent = mock.add(0); parent.setFlag(flag1, State.DENY); parent.setFlag(flag1.getRegionGroupFlag(), RegionGroup.NON_MEMBERS); ProtectedRegion region = mock.add(0); region.getMembers().addPlayer(member); region.setParent(parent); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.queryValue(nonMember, flag1), is(State.DENY)); assertThat(result.queryValue(member, flag1), is((State) null)); }
@Test public void testGetMembershipPassthroughAndRegionMemberOfWithAnotherChildAndAnother() 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); LocalPlayer player = mock.createPlayer(); parent.getMembers().addPlayer(player); FlagValueCalculator result = mock.getFlagCalculator(); assertThat(result.getMembership(player), is(Result.FAIL)); }
@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)); }