use of com.voxelgameslib.voxelgameslib.components.user.User in project VoxelGamesLibv2 by VoxelGamesLib.
the class EloHandler method handleGameEnd.
/**
* Handles the elo calculation for generic games
*
* @param game the game that ended
* @param users the users which played this game, in order, first = winner
*/
public void handleGameEnd(@Nonnull Game game, @Nonnull User... users) {
List<ITeam> teams = new ArrayList<>();
for (User user : users) {
teams.add(new jskills.Team(user, user.getRating(game.getGameMode())));
}
Map<IPlayer, Rating> newRatings = calculator.calculateNewRatings(game.getGameMode(), teams, IntStream.of(users.length).toArray());
update(game, newRatings);
}
use of com.voxelgameslib.voxelgameslib.components.user.User in project VoxelGamesLibv2 by VoxelGamesLib.
the class TeamSelectFeature method disable.
@Override
public void disable() {
Map<String, Integer> sizes = calcSizes();
// add everyone who isn't in a team yet to the smallest team
for (User user : getPhase().getGame().getPlayers()) {
if (!getTeam(user).isPresent()) {
Team t = getTeam(findSmallest(sizes)).orElseThrow(() -> new RuntimeException("Null team encountered"));
t.join(user, user.getRating(getPhase().getGame().getGameMode()));
Lang.msg(user, LangKey.TEAM_AUTO_ASSIGNED, t.getName());
sizes.put(t.getName(), sizes.get(t.getName()) + 1);
}
}
// make teams balanced
balance();
// save teams for next phase
DefaultGameData defaultGameData = getPhase().getGame().getGameData(DefaultGameData.class).orElse(new DefaultGameData());
defaultGameData.teams = teams;
getPhase().getGame().putGameData(defaultGameData);
}
use of com.voxelgameslib.voxelgameslib.components.user.User in project VoxelGamesLibv2 by VoxelGamesLib.
the class FeatureTest method getMockUser.
@Nonnull
public User getMockUser(@Nonnull String name) {
User user = Mockito.spy(new GamePlayer());
user.setDisplayName(name);
return user;
}
use of com.voxelgameslib.voxelgameslib.components.user.User in project VoxelGamesLibv2 by VoxelGamesLib.
the class ChatHandler method removeChannel.
/**
* Removes a channel
*
* @param id the id of the channel that should be removed
*/
public void removeChannel(@Nonnull String id) {
// remove any existing listeners from the channel, set them to the default channel.
// you should *really* handle this yourself if you're removing a channel
getChannel(id).ifPresent(chatChannel -> {
Iterator<User> itr = chatChannel.getListeners().iterator();
while (itr.hasNext()) {
User user = itr.next();
user.removeListeningChannel(id);
if (user.getActiveChannel().equals(chatChannel)) {
user.setActiveChannel("default");
}
}
});
activeChannels.remove(id);
}
use of com.voxelgameslib.voxelgameslib.components.user.User in project VoxelGamesLibv2 by VoxelGamesLib.
the class SignListener method signBreakEvent.
@EventHandler
public void signBreakEvent(@Nonnull BlockBreakEvent event) {
// is block a sign?
if (event.getBlock().getState() instanceof Sign) {
User user = userHandler.getUser(event.getPlayer().getUniqueId()).orElseThrow(() -> new UserException("Unknown user " + event.getPlayer().getDisplayName() + "(" + event.getPlayer().getUniqueId() + ")"));
Sign sign = (Sign) event.getBlock().getState();
for (int i = 0; i < sign.getLines().length; i++) {
String line = sign.getLines()[i];
for (String key : signHandler.getSignPlaceholders().getPlaceHolders().keySet()) {
if (line.contains("%" + key + "%")) {
// has user permission for that?
if (user.hasPermission(placeHolderSignBreak)) {
Lang.msg(user, LangKey.SIGNS_BREAK_SUCCESS, key);
event.getBlock().setType(Material.AIR);
return;
} else {
event.setCancelled(true);
Lang.msg(user, LangKey.SIGNS_BREAK_NO_PERM, key, placeHolderSignBreak.getRole().getName());
return;
}
}
}
for (String key : signHandler.getSignButtons().getButtons().keySet()) {
if (line.contains("%" + key + "%")) {
// has user permission for that?
if (user.hasPermission(buttonSignBreak)) {
Lang.msg(user, LangKey.SIGNS_BREAK_SUCCESS, key);
event.getBlock().setType(Material.AIR);
return;
} else {
event.setCancelled(true);
Lang.msg(user, LangKey.SIGNS_BREAK_NO_PERM, key, buttonSignBreak.getRole().getName());
return;
}
}
}
}
}
}
Aggregations