3030import me .innectic .permissify .api .permission .Permission ;
3131import me .innectic .permissify .api .permission .PermissionGroup ;
3232import org .bukkit .Bukkit ;
33+ import org .bukkit .OfflinePlayer ;
3334import org .bukkit .command .CommandSender ;
3435import org .bukkit .entity .Player ;
3536
@@ -51,13 +52,14 @@ public CommandResponse handleAddPlayerToGroup(CommandSender sender, String[] arg
5152 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_GROUP_ADD ) && !plugin .getPermissifyAPI ().getDatabaseHandler ().get ().isSuperAdmin (((Player ) sender ).getUniqueId ()))
5253 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
5354 if (args .length < 2 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_PLAYER_ADD_GROUP , false );
54- Player targetPlayer = Bukkit .getPlayer (args [0 ]);
55- if (targetPlayer == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
55+ OfflinePlayer targetPlayer = Bukkit .getPlayer (args [0 ]);
56+ if (targetPlayer == null || ! targetPlayer . hasPlayedBefore () ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
5657 Optional <PermissionGroup > group = plugin .getPermissifyAPI ().getDatabaseHandler ().get ().getGroups ().stream ()
5758 .filter (permissionGroup -> permissionGroup .getName ().equals (args [1 ])).findFirst ();
5859 if (!group .isPresent ()) return new CommandResponse (PermissifyConstants .INVALID_GROUP , false );
5960 plugin .getPermissifyAPI ().getDatabaseHandler ().get ().addPlayerToGroup (targetPlayer .getUniqueId (), group .get ());
60- group .get ().getPermissions ().forEach (permission -> targetPlayer .addAttachment (plugin , permission .getPermission (), true ));
61+ if (targetPlayer .isOnline ()) group .get ().getPermissions ().forEach (permission ->
62+ targetPlayer .getPlayer ().addAttachment (plugin , permission .getPermission (), true ));
6163 return new CommandResponse (PermissifyConstants .PLAYER_ADDED_TO_GROUP
6264 .replace ("<PLAYER>" , targetPlayer .getName ()).replace ("<GROUP>" , group .get ().getName ()), true );
6365 }
@@ -69,13 +71,14 @@ public CommandResponse handleRemovePlayerFromGroup(CommandSender sender, String[
6971 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_GROUP_REMOVE ) && !plugin .getPermissifyAPI ().getDatabaseHandler ().get ().isSuperAdmin (((Player ) sender ).getUniqueId ()))
7072 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
7173 if (args .length < 2 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_PLAYER_REMOVE_GROUP , false );
72- Player targetPlayer = Bukkit .getPlayer (args [0 ]);
73- if (targetPlayer == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
74+ OfflinePlayer targetPlayer = Bukkit .getPlayer (args [0 ]);
75+ if (targetPlayer == null || ! targetPlayer . hasPlayedBefore () ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
7476 Optional <PermissionGroup > group = plugin .getPermissifyAPI ().getDatabaseHandler ().get ().getGroups ().stream ()
7577 .filter (permissionGroup -> permissionGroup .getName ().equals (args [1 ])).findFirst ();
7678 if (!group .isPresent ()) return new CommandResponse (PermissifyConstants .INVALID_GROUP , false );
7779 plugin .getPermissifyAPI ().getDatabaseHandler ().get ().removePlayerFromGroup (targetPlayer .getUniqueId (), group .get ());
78- group .get ().getPermissions ().forEach (permission -> targetPlayer .addAttachment (plugin , permission .getPermission (), false ));
80+ if (targetPlayer .isOnline ()) group .get ().getPermissions ().forEach (permission ->
81+ targetPlayer .getPlayer ().addAttachment (plugin , permission .getPermission (), false ));
7982 return new CommandResponse (PermissifyConstants .PLAYER_REMOVED_FROM_GROUP
8083 .replace ("<PLAYER>" , targetPlayer .getName ()).replace ("<GROUP>" , group .get ().getName ()), true );
8184 }
@@ -87,8 +90,8 @@ public CommandResponse handleSetMainGroup(CommandSender sender, String[] args) {
8790 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_SET_MAIN_GROUP ))
8891 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
8992 if (args .length < 2 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_SET_MAIN_GROUP , false );
90- Player player = Bukkit .getPlayer (args [0 ]);
91- if (player == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
93+ OfflinePlayer player = Bukkit .getPlayer (args [0 ]);
94+ if (player == null || ! player . hasPlayedBefore () ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
9295 Optional <PermissionGroup > group = plugin .getPermissifyAPI ().getDatabaseHandler ().get ().getGroups ().stream ()
9396 .filter (permissionGroup -> permissionGroup .getName ().equals (args [1 ])).findFirst ();
9497 if (!group .isPresent ()) return new CommandResponse (PermissifyConstants .INVALID_GROUP , false );
@@ -108,10 +111,10 @@ public CommandResponse handleAddPermission(CommandSender sender, String[] args)
108111 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_PERMISSION_ADD ) && !plugin .getPermissifyAPI ().getDatabaseHandler ().get ().isSuperAdmin (((Player ) sender ).getUniqueId ()))
109112 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
110113 if (args .length < 2 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_PLAYER_ADD_PERMISSION , false );
111- Player targetPlayer = Bukkit .getPlayer (args [1 ]);
112- if (targetPlayer == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
114+ OfflinePlayer targetPlayer = Bukkit .getPlayer (args [1 ]);
115+ if (targetPlayer == null || ! targetPlayer . hasPlayedBefore () ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
113116 plugin .getPermissifyAPI ().getDatabaseHandler ().get ().addPermission (targetPlayer .getUniqueId (), args [0 ]);
114- targetPlayer .addAttachment (plugin , args [0 ], true );
117+ if ( targetPlayer . isOnline ()) targetPlayer . getPlayer () .addAttachment (plugin , args [0 ], true );
115118 return new CommandResponse (PermissifyConstants .PERMISSION_ADDED_PLAYER
116119 .replace ("<PLAYER>" , targetPlayer .getName ()).replace ("<PERMISSION>" , args [0 ]), true );
117120 }
@@ -123,10 +126,10 @@ public CommandResponse handleRemovePermission(CommandSender sender, String[] arg
123126 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_PERMISSION_REMOVE ) && !plugin .getPermissifyAPI ().getDatabaseHandler ().get ().isSuperAdmin (((Player ) sender ).getUniqueId ()))
124127 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
125128 if (args .length < 2 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_PLAYER_REMOVE_PERMISSION , false );
126- Player targetPlayer = Bukkit .getPlayer (args [1 ]);
127- if (targetPlayer == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
129+ OfflinePlayer targetPlayer = Bukkit .getPlayer (args [1 ]);
130+ if (targetPlayer == null || ! targetPlayer . hasPlayedBefore () ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
128131 plugin .getPermissifyAPI ().getDatabaseHandler ().get ().removePermission (targetPlayer .getUniqueId (), args [0 ]);
129- targetPlayer .addAttachment (plugin , args [0 ], false );
132+ if ( targetPlayer . isOnline ()) targetPlayer . getPlayer () .addAttachment (plugin , args [0 ], false );
130133 return new CommandResponse (PermissifyConstants .PERMISSION_REMOVED_PLAYER
131134 .replace ("<PLAYER>" , targetPlayer .getName ()).replace ("<PERMISSION>" , args [0 ]), true );
132135 }
@@ -138,8 +141,8 @@ public CommandResponse handleListGroups(CommandSender sender, String[] args) {
138141 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_GROUP_LIST ) && !plugin .getPermissifyAPI ().getDatabaseHandler ().get ().isSuperAdmin (((Player ) sender ).getUniqueId ()))
139142 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
140143 if (args .length < 1 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_PLAYER_LIST_GROUP , false );
141- Player targetPlayer = Bukkit .getPlayer (args [0 ]);
142- if (targetPlayer == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
144+ OfflinePlayer targetPlayer = Bukkit .getPlayer (args [0 ]);
145+ if (targetPlayer == null || ! targetPlayer . hasPlayedBefore () ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
143146 List <String > groups = plugin .getPermissifyAPI ().getDatabaseHandler ().get ().getGroups ().stream ()
144147 .filter (permissionGroup -> permissionGroup .hasPlayer (targetPlayer .getUniqueId ()))
145148 .map (PermissionGroup ::getName )
@@ -155,7 +158,7 @@ public CommandResponse handleListPermissions(CommandSender sender, String[] args
155158 if (!sender .hasPermission (PermissifyConstants .PERMISSIFY_PLAYER_PERMISSION_LIST ) && !plugin .getPermissifyAPI ().getDatabaseHandler ().get ().isSuperAdmin (((Player ) sender ).getUniqueId ()))
156159 return new CommandResponse (PermissifyConstants .INSUFFICIENT_PERMISSIONS , false );
157160 if (args .length < 1 ) return new CommandResponse (PermissifyConstants .NOT_ENOUGH_ARGUMENTS_PLAYER_LIST_PERMISSIONS , false );
158- Player targetPlayer = Bukkit .getPlayer (args [0 ]);
161+ OfflinePlayer targetPlayer = Bukkit .getPlayer (args [0 ]);
159162 if (targetPlayer == null ) return new CommandResponse (PermissifyConstants .INVALID_PLAYER , false );
160163 // This sucks, can probably be cleanup up.
161164 List <PermissionGroup > groups = plugin .getPermissifyAPI ().getDatabaseHandler ().get ().getGroups ().stream ()
0 commit comments