mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 04:26:42 +00:00
attempt to fix once again
This commit is contained in:
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user