attempt to fix once again

This commit is contained in:
Paul Reilly
2023-04-13 14:37:55 -05:00
parent f4f60a7993
commit 9138d1856b
17 changed files with 237 additions and 108 deletions

View File

@ -48,6 +48,21 @@ public class Hierarchy
return hierarchy;
}
public TrackWrapper tw()
{
return trackWrapper;
}
public GroupWrapper gw()
{
return groupWrapper;
}
public UserWrapper uw()
{
return userWrapper;
}
public PlayerAdapter<Player> getPlayerAdapter()
{
return playerAdapter;
@ -76,12 +91,30 @@ public class Hierarchy
return trackWrapper.getTrack("ADMIN").join();
}
public void addInheritance(DisplayableGroup previous, DisplayableGroup current)
@SuppressWarnings("unchecked")
public <T> T getWrapper(Class<T> clazz)
{
if (clazz == GroupWrapper.class)
{
return (T) groupWrapper;
} else if (clazz == TrackWrapper.class)
{
return clazz.cast(trackWrapper);
} else if (clazz == UserWrapper.class)
{
return clazz.cast(userWrapper);
} else
{
throw new IllegalArgumentException("Invalid class type");
}
}
public void asyncInheritFrom(DisplayableGroup inherited, DisplayableGroup inheritor)
{
CompletableFuture.runAsync(() ->
{
current.getLuckPermsGroup().data().add(InheritanceNode.builder(previous.getLuckPermsGroup()).build());
groupWrapper.saveGroup(current.getLuckPermsGroup().getName());
inheritor.getLuckPermsGroup().data().add(inherited.getInheritance());
groupWrapper.saveGroupAsync(inheritor.getLuckPermsGroup().getName());
}).whenComplete((a, b) ->
{
if (b != null)
@ -96,7 +129,7 @@ public class Hierarchy
return groupWrapper.getGroup(name).join();
}
public void addGroupToTrack(Track track, DisplayableGroup group)
public void asyncTrackGroup(Track track, DisplayableGroup group)
{
trackWrapper.getTrack(track.getName()).thenAccept(t ->
{
@ -111,7 +144,7 @@ public class Hierarchy
});
}
public void addUserData(Player player)
public void asyncAddUserData(Player player)
{
userWrapper.addUserData(player).whenComplete((a, b) ->
{
@ -122,7 +155,7 @@ public class Hierarchy
});
}
public void updateUserData(Player player)
public void asyncUpdateUserData(Player player)
{
userWrapper.updateUserData(player).whenComplete((a, b) ->
{
@ -133,7 +166,7 @@ public class Hierarchy
});
}
public void dropUserData(Player player)
public void asyncUserDrop(Player player)
{
userWrapper.removeUserData(player).whenComplete((a, b) ->
{
@ -185,7 +218,7 @@ public class Hierarchy
if (data.getUser().getNodes(NodeType.INHERITANCE)
.contains(InheritanceNode.builder(g).build()))
userWrapper.removeFromGroup(data.getUser(), g);
userWrapper.removeFromGroup(data.getUser(), GroupProvider.fromLuckPermsGroup(g).getGroup());
});
}
}).whenComplete((a, b) ->
@ -216,30 +249,40 @@ public class Hierarchy
private void onNodeAdd(NodeAddEvent event)
{
if (event.isUser())
if (event.getTarget() instanceof User user)
{
User user = (User) event.getTarget();
Player player = Bukkit.getPlayer(user.getUniqueId());
if (player != null)
{
TotalFreedomMod.getPlugin().rm.updateDisplay(player);
updateUserData(player);
asyncUpdateUserData(player);
uw().saveUser(user);
}
}
if (event.getTarget() instanceof Group group)
{
gw().saveGroupAsync(group.getName());
}
}
private void onNodeRemove(NodeRemoveEvent event)
{
if (event.isUser())
if (event.getTarget() instanceof User user)
{
User user = (User) event.getTarget();
Player player = Bukkit.getPlayer(user.getUniqueId());
if (player != null)
{
TotalFreedomMod.getPlugin().rm.updateDisplay(player);
updateUserData(player);
asyncUpdateUserData(player);
uw().saveUser(user);
}
}
if (event.getTarget() instanceof Group group)
{
gw().saveGroupAsync(group.getName());
}
}
}
}