Skip to content

Commit b4e51df

Browse files
Merge pull request #43 from CivClassic/civ14
Up to Civ14
2 parents fe3fc61 + a6f93ce commit b4e51df

56 files changed

Lines changed: 725 additions & 692 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,7 @@ release.properties
164164
dependency-reduced-pom.xml
165165
buildNumber.properties
166166
.mvn/timing.properties
167+
168+
.idea/
169+
170+
*.iml

namelayer-all/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<artifactId>NameLayer</artifactId>
1414
<!-- My Mavenfu is weak, you must update in 2 places. -->
15-
<version>2.12.0</version>
15+
<version>2.13.0</version>
1616

1717
<dependencies>
1818
<dependency>

namelayer-spigot/pom.xml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@
1717
<dependencies>
1818
<dependency>
1919
<groupId>vg.civcraft.mc.namelayer</groupId>
20-
<artifactId>namelayer-nms-v1_13_R2</artifactId>
20+
<artifactId>namelayer-nms-v1_14_R1</artifactId>
2121
<version>1.0.1</version>
2222
</dependency>
2323

2424
<!-- Spigot -->
2525
<dependency>
2626
<groupId>org.spigotmc</groupId>
2727
<artifactId>spigot-api</artifactId>
28-
<version>1.13.2-R0.1-SNAPSHOT</version>
28+
<version>1.14.4-R0.1-SNAPSHOT</version>
2929
<scope>provided</scope>
3030
</dependency>
3131
<dependency>
3232
<groupId>vg.civcraft.mc.civmodcore</groupId>
3333
<artifactId>CivModCore</artifactId>
34-
<version>1.7.0</version>
34+
<version>1.7.5</version>
3535
<scope>provided</scope>
3636
</dependency>
3737
</dependencies>
@@ -121,6 +121,16 @@
121121
<artifactId>namelayer-nms-v1_12_R1</artifactId>
122122
<version>1.0.1</version>
123123
</dependency>
124+
<dependency>
125+
<groupId>vg.civcraft.mc.namelayer</groupId>
126+
<artifactId>namelayer-nms-v1_13_R2</artifactId>
127+
<version>1.0.1</version>
128+
</dependency>
129+
<dependency>
130+
<groupId>vg.civcraft.mc.namelayer</groupId>
131+
<artifactId>namelayer-nms-v1_14_R1</artifactId>
132+
<version>1.0.1</version>
133+
</dependency>
124134
</dependencies>
125135
</profile>
126136
</profiles>

namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/GroupManager.java

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package vg.civcraft.mc.namelayer;
22

3-
import java.sql.Timestamp;
43
import java.util.ArrayList;
54
import java.util.HashMap;
6-
import java.util.LinkedList;
75
import java.util.List;
86
import java.util.Map;
9-
import java.util.Map.Entry;
107
import java.util.UUID;
118
import java.util.concurrent.ConcurrentHashMap;
129
import java.util.logging.Level;
@@ -32,8 +29,8 @@ public class GroupManager{
3229
private static GroupManagerDao groupManagerDao;
3330
private PermissionHandler permhandle;
3431

35-
private static Map<String, Group> groupsByName = new ConcurrentHashMap<String, Group>();
36-
private static Map<Integer, Group> groupsById = new ConcurrentHashMap<Integer, Group>();
32+
private static Map<String, Group> groupsByName = new ConcurrentHashMap<>();
33+
private static Map<Integer, Group> groupsById = new ConcurrentHashMap<>();
3734

3835
public GroupManager(){
3936
groupManagerDao = NameLayerPlugin.getGroupManagerDao();
@@ -42,7 +39,8 @@ public GroupManager(){
4239

4340
/**
4441
* Saves the group into caching and saves it into the db. Also fires the GroupCreateEvent.
45-
* @param The group to create to db.
42+
* @param group the group to create to db.
43+
* @return the internal ID of the group created.
4644
*/
4745
public int createGroup(Group group){
4846
return createGroup(group,true);
@@ -232,6 +230,9 @@ public void transferGroup(Group g, UUID uuid, boolean savetodb){
232230
* _for now_ simply invalidating the cache on servers.
233231
*
234232
* Eventually, we'll need to go line-by-line through the db code and just replicate in cache. That day is not today.
233+
*
234+
* @param group the origin group
235+
* @param toMerge the group to merge in
235236
*/
236237
public void doneMergeGroup(Group group, Group toMerge) {
237238
if (group == null || toMerge == null) {
@@ -410,6 +411,9 @@ public static Group getSpecialCircumstanceGroup(String name){
410411
/**
411412
* DO NOT WORK WITH THE PERMISSION OBJECT ITSELF TO DETERMINE ACCESS. Use the methods provided in this class instead, as they
412413
* respect all the permission inheritation stuff
414+
*
415+
* @param group the group to retrieve permissions from
416+
* @return the actual permissions for this object or null
413417
*/
414418
public GroupPermission getPermissionforGroup(Group group){
415419
if (group == null) {
@@ -432,7 +436,7 @@ public boolean hasAccess(Group group, UUID player, PermissionType perm) {
432436
if (p != null && (p.isOp() || p.hasPermission("namelayer.admin"))) {
433437
return true;
434438
}
435-
if (group == null || player == null || perm == null) {
439+
if (group == null || perm == null) {
436440
NameLayerPlugin.getInstance().getLogger().log(Level.INFO, "hasAccess failed, caller passed in null", new Exception());
437441
return false;
438442
}
@@ -443,26 +447,25 @@ public boolean hasAccess(Group group, UUID player, PermissionType perm) {
443447
return false;
444448
}
445449
}
446-
GroupPermission perms = getPermissionforGroup(group);
447-
for(PlayerType rank : getRecursivePlayerTypes(group, player)) {
448-
if (perms.hasPermission(rank, perm)) {
449-
//player has right rank in the group itself or at least one super group
450+
return hasPlayerInheritsPerms(group, player, perm);
451+
}
452+
453+
/**
454+
* Checks if a player has a permission in a group or one of its parent groups
455+
* @param group the group, and its parents etc to check
456+
* @param player the player
457+
* @param perm the permission to check
458+
* @return if the player has the specified permission in a group or one of its parents
459+
*/
460+
private boolean hasPlayerInheritsPerms(Group group, UUID player, PermissionType perm) {
461+
while (group != null) {
462+
PlayerType type = group.getPlayerType(player);
463+
if (type != null && getPermissionforGroup(group).hasPermission(type, perm)) {
450464
return true;
451465
}
452-
}
453-
return false;
454-
}
455-
456-
private List<PlayerType> getRecursivePlayerTypes(Group group, UUID player) {
457-
List<PlayerType> perms = new LinkedList<PlayerType>();
458-
PlayerType type = group.getPlayerType(player);
459-
if (type != null) {
460-
perms.add(type);
466+
group = group.getSuperGroup();
461467
}
462-
if (group.hasSuperGroup()) {
463-
perms.addAll(getRecursivePlayerTypes(group.getSuperGroup(), player));
464-
}
465-
return perms;
468+
return false;
466469
}
467470

468471
// == PERMISSION HANDLING ============================================================= //
@@ -478,7 +481,7 @@ private void deleteGroupPerms(Group group){
478481
public List<String> getAllGroupNames(UUID uuid){
479482
if (uuid == null) {
480483
NameLayerPlugin.getInstance().getLogger().log(Level.INFO, "getAllGroupNames failed, caller passed in null", new Exception());
481-
return new ArrayList<String>();
484+
return new ArrayList<>();
482485
}
483486
return groupManagerDao.getGroupNames(uuid);
484487
}
@@ -491,11 +494,7 @@ private void initiateDefaultPerms(Integer groupId){
491494
Map <PlayerType, List <PermissionType>> defaultPermMapping = new HashMap<GroupManager.PlayerType, List<PermissionType>>();
492495
for(PermissionType perm : PermissionType.getAllPermissions()) {
493496
for(PlayerType type : perm.getDefaultPermLevels()) {
494-
List <PermissionType> perms = defaultPermMapping.get(type);
495-
if (perms == null) {
496-
perms = new LinkedList<PermissionType>();
497-
defaultPermMapping.put(type, perms);
498-
}
497+
List<PermissionType> perms = defaultPermMapping.computeIfAbsent(type, k -> new ArrayList<>());
499498
perms.add(perm);
500499
}
501500
}
@@ -512,7 +511,7 @@ public String getDefaultGroup(UUID uuid){
512511

513512
/**
514513
* Invalidates a group from cache.
515-
* @param group
514+
* @param group the group to invalidate cache for
516515
*/
517516
public static void invalidateCache(String group){
518517
if (group == null) {

namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/NameLayerPlugin.java

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,6 @@ public void onEnable() {
6767
}
6868
}
6969

70-
// Calling this for ACivMod
71-
@Override
72-
public void onLoad(){
73-
super.onLoad();
74-
}
75-
7670
public void registerListeners(){
7771
getServer().getPluginManager().registerEvents(new AssociationListener(), this);
7872
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
@@ -215,26 +209,6 @@ else if (level == Level.SEVERE)
215209
message +
216210
"\n --------------------------------------");
217211
}
218-
/**
219-
* Updates the version number for a plugin. You must specify what
220-
* the current version number is.
221-
* @param currentVersion- The current version of the plugin.
222-
* @param pluginName- The plugin name.
223-
* @return Returns the new version of the db.
224-
*/
225-
@Deprecated
226-
public static void insertVersionNum(int currentVersion, String pluginName){
227-
throw new UnsupportedOperationException("insertVersionNum is no longer supported. Extend CivModCore and use ManagedDatasource");
228-
}
229-
/**
230-
* Checks the version of a specific plugin's db.
231-
* @param name- The name of the plugin.
232-
* @return Returns the version of the plugin or 0 if none was found.
233-
*/
234-
@Deprecated
235-
public static int getVersionNum(String pluginName){
236-
throw new UnsupportedOperationException("getVersionNum is no longer supported. Extend CivModCore and use ManagedDatasource");
237-
}
238212

239213
public static String getSpecialAdminGroup(){
240214
return "Name_Layer_Special";
@@ -244,11 +218,6 @@ public static boolean createGroupOnFirstJoin() {
244218
return createGroupOnFirstJoin;
245219
}
246220

247-
@Override
248-
protected String getPluginName() {
249-
return "NameLayerPlugin";
250-
}
251-
252221
public int getGroupLimit(){
253222
return groupLimit;
254223
}

namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/CommandHandler.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,42 @@
1010
import vg.civcraft.mc.civmodcore.command.Command;
1111
import vg.civcraft.mc.namelayer.command.commands.AcceptInvite;
1212
import vg.civcraft.mc.namelayer.command.commands.AddBlacklist;
13-
import vg.civcraft.mc.namelayer.command.commands.LinkGroups;
1413
import vg.civcraft.mc.namelayer.command.commands.ChangePlayerName;
1514
import vg.civcraft.mc.namelayer.command.commands.CreateGroup;
1615
import vg.civcraft.mc.namelayer.command.commands.DeleteGroup;
1716
import vg.civcraft.mc.namelayer.command.commands.DisciplineGroup;
17+
import vg.civcraft.mc.namelayer.command.commands.GetDefaultGroup;
1818
import vg.civcraft.mc.namelayer.command.commands.GlobalStats;
1919
import vg.civcraft.mc.namelayer.command.commands.GroupStats;
2020
import vg.civcraft.mc.namelayer.command.commands.InfoDump;
2121
import vg.civcraft.mc.namelayer.command.commands.InvitePlayer;
2222
import vg.civcraft.mc.namelayer.command.commands.JoinGroup;
2323
import vg.civcraft.mc.namelayer.command.commands.LeaveGroup;
24-
import vg.civcraft.mc.namelayer.command.commands.NameLayerGroupGui;
25-
import vg.civcraft.mc.namelayer.command.commands.ShowBlacklist;
2624
import vg.civcraft.mc.namelayer.command.commands.ListCurrentInvites;
2725
import vg.civcraft.mc.namelayer.command.commands.ListGroups;
2826
import vg.civcraft.mc.namelayer.command.commands.ListMembers;
2927
import vg.civcraft.mc.namelayer.command.commands.ListPermissions;
3028
import vg.civcraft.mc.namelayer.command.commands.ListPlayerTypes;
31-
import vg.civcraft.mc.namelayer.command.commands.ListSubGroups;
3229
import vg.civcraft.mc.namelayer.command.commands.MergeGroups;
3330
import vg.civcraft.mc.namelayer.command.commands.ModifyPermissions;
31+
import vg.civcraft.mc.namelayer.command.commands.NameLayerGroupGui;
32+
import vg.civcraft.mc.namelayer.command.commands.PromotePlayer;
33+
import vg.civcraft.mc.namelayer.command.commands.RejectInvite;
3434
import vg.civcraft.mc.namelayer.command.commands.RemoveBlacklist;
3535
import vg.civcraft.mc.namelayer.command.commands.RemoveMember;
36-
import vg.civcraft.mc.namelayer.command.commands.UnlinkGroups;
36+
import vg.civcraft.mc.namelayer.command.commands.RevokeInvite;
37+
import vg.civcraft.mc.namelayer.command.commands.SetDefaultGroup;
3738
import vg.civcraft.mc.namelayer.command.commands.SetPassword;
39+
import vg.civcraft.mc.namelayer.command.commands.ShowBlacklist;
3840
import vg.civcraft.mc.namelayer.command.commands.ToggleAutoAcceptInvites;
3941
import vg.civcraft.mc.namelayer.command.commands.TransferGroup;
40-
import vg.civcraft.mc.namelayer.command.commands.PromotePlayer;
41-
import vg.civcraft.mc.namelayer.command.commands.RejectInvite;
42-
import vg.civcraft.mc.namelayer.command.commands.RevokeInvite;
43-
import vg.civcraft.mc.namelayer.command.commands.SetDefaultGroup;
44-
import vg.civcraft.mc.namelayer.command.commands.GetDefaultGroup;
4542
import vg.civcraft.mc.namelayer.command.commands.UpdateName;
4643

4744
public class CommandHandler {
48-
public Map<String, Command> commands = new HashMap<String, Command>();
45+
private Map<String, Command> commands = new HashMap<>();
4946

5047
public void registerCommands(){
5148
addCommands(new AcceptInvite("AcceptInvite"));
52-
//addCommands(new LinkGroups("LinkGroups"));
53-
//addCommands(new UnlinkGroups("UnlinkGroups"));
54-
//addCommands(new ListSubGroups("ListSubGroups"));
5549
addCommands(new CreateGroup("CreateGroup"));
5650
addCommands(new DeleteGroup("DeleteGroup"));
5751
addCommands(new DisciplineGroup("DisiplineGroup"));

namelayer-spigot/src/main/java/vg/civcraft/mc/namelayer/command/TabCompleters/GroupTabCompleter.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package vg.civcraft.mc.namelayer.command.TabCompleters;
22

3+
import java.util.LinkedList;
4+
import java.util.List;
5+
import java.util.UUID;
6+
37
import org.bukkit.entity.Player;
8+
49
import vg.civcraft.mc.namelayer.GroupManager;
510
import vg.civcraft.mc.namelayer.NameAPI;
611
import vg.civcraft.mc.namelayer.group.Group;
712
import vg.civcraft.mc.namelayer.permission.PermissionType;
813

9-
import java.util.LinkedList;
14+
import java.util.ArrayList;
1015
import java.util.List;
1116
import java.util.UUID;
1217

@@ -18,30 +23,31 @@ public static List<String> complete(String lastArg, PermissionType accessLevel,
1823
UUID uuid = NameAPI.getUUID(sender.getName());
1924
GroupManager gm = NameAPI.getGroupManager();
2025
List<String> groups = gm.getAllGroupNames(uuid);
21-
List<String> fitting_groups = new LinkedList<>();
22-
List<String> result = new LinkedList<>();
26+
List<String> fittingGroups = new ArrayList<>();
27+
List<String> result = new ArrayList<>();
2328

2429
if (lastArg != null){
2530
for (String group : groups){
2631
if (group.toLowerCase().startsWith(lastArg.toLowerCase())){
27-
fitting_groups.add(group);
28-
} else {
32+
fittingGroups.add(group);
2933
}
30-
}
34+
}
3135
} else {
32-
fitting_groups = groups;
36+
fittingGroups = groups;
3337
}
3438

3539
if (accessLevel == null) {
36-
for (String group_name: fitting_groups){
37-
Group group = gm.getGroup(group_name);
38-
if (group.isMember(uuid))
39-
result.add(group_name);
40+
for (String groupName : fittingGroups){
41+
Group group = GroupManager.getGroup(groupName);
42+
if (group != null && group.isMember(uuid)) {
43+
result.add(groupName);
44+
}
4045
}
4146
} else {
42-
for (String group_name : fitting_groups) {
43-
if (gm.hasAccess(group_name, uuid, accessLevel))
44-
result.add(group_name);
47+
for (String groupName : fittingGroups) {
48+
if (gm.hasAccess(groupName, uuid, accessLevel)) {
49+
result.add(groupName);
50+
}
4551
}
4652
}
4753
return result;

0 commit comments

Comments
 (0)