public UserInfo createDetails(IUser user) { UserInfo details = (UserInfo) cache.get(user); if (details == null) { details = new UserInfoDetails(user.getOID(), user.getId(), PerformerUtils.getQualifiedName(user)); cache.put(user, details); } return details; }
public String format(String format, IUser user) { return format .replace('&', '§') .replace("§§", "&") .replace("{PLAYER}", user.getDisplayName()) .replace("{DISPLAYNAME}", user.getDisplayName()) .replace("{GROUP}", user.getGroup()) .replace("{USERNAME}", user.getName()) .replace("{ADDRESS}", user.getAddress().toString()); }
@Override public Object visiteUser(final NodeUser parent, final Object data) { final IUser user = new ObjUser(); user.setInfo("FIRSTNAME", parent._firstname); user.setInfo("LASTNAME", parent._lastname); user.setId(parent._id); user.setInfo("SEXE", parent._sexe); loadObject(user, parent); return user; }
@Deprecated public boolean isIgnoredPlayer(final String userName) { final IUser user = ess.getUser(userName); if (user == null || !user.isOnline()) { return false; } return isIgnoredPlayer(user); }
public void setIgnoredPlayer(IUser user, boolean set) { if (set) { ignoredPlayers.add(user.getName().toLowerCase(Locale.ENGLISH)); } else { ignoredPlayers.remove(user.getName().toLowerCase(Locale.ENGLISH)); } setIgnoredPlayers(ignoredPlayers); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; return user.equals(((UserKey) obj).user); }
@Override public void sendToJail(final IUser user, final String jail) throws Exception { acquireReadLock(); try { if (user.isOnline()) { Location loc = getJail(jail); user.getTeleport().now(loc, false, TeleportCause.COMMAND); } user.setJail(jail); } finally { unlock(); } }
protected void index(HttpServletRequest request, HttpServletResponse response) { ISocialmore sm = Socialmore.connect(this); IUser user = User.getSession(request); if (sm == null || user == null) { forwardTo(request, response, "Sessions/login"); return; } try { ArrayList<IMessage> inbox = (ArrayList<IMessage>) user.getInbox(); request.setAttribute("inbox", inbox); } catch (RemoteException e) { request.setAttribute("flash", "We are sorry! :( Your inbox is temporaly unavailable..."); forwardTo(request, response, "Users/index"); } forwardTo(request, response, "Messages/index"); }
@Override public void payUser(final IUser reciever, final double value) throws Exception { if (value == 0) { return; } if (canAfford(value)) { setMoney(getMoney() - value); reciever.setMoney(reciever.getMoney() + value); sendMessage(_("{0} has been sent to {1}", FormatUtil.displayCurrency(value, ess), reciever.getPlayer().getDisplayName())); reciever.sendMessage(_("{0} has been received from {1}", FormatUtil.displayCurrency(value, ess), getPlayer().getDisplayName())); } else { throw new Exception(_("You do not have sufficient funds.")); } }
private String editUserPermission(Operation op, Permission permission, IUser user) { DiscordUser u = cacheService.findUserById(user.getID()).orElseGet(() -> new DiscordUser(user)); changePermission(op, permission, u); u = cacheService.saveUser(u); log.info("Saving new user permission settings: {}", u); permissionService.evict(); return String.format( "Modified user %s: %s permission %s", u.getName(), op.name().toLowerCase(), permission.getName()); }
/** * copy constructor * * @param copyFrom */ public UserInfo(IUser copyFrom) { this.id = copyFrom.getObjectId(); this.login = copyFrom.getLogin(); this.password = copyFrom.getPassword(); this.username = copyFrom.getUsername(); this.description = copyFrom.getDescription(); this.enabled = copyFrom.isEnabled(); }
protected void update(String[] params, HttpServletRequest request, HttpServletResponse response) { ISocialmore sm; IUser user; IPost post; HttpSession session = request.getSession(); if (session.getAttribute("user") == null) { forwardTo(request, response, "Sessions/login"); return; } sm = Socialmore.connect(this); user = User.getSession(request); int post_id = -1; try { post_id = Integer.parseInt(params[1]); } catch (Exception e) { } String content = request.getParameter("content"); try { post = sm.getPost(post_id); if (post != null && !content.isEmpty()) { System.out.println("Edit: " + user.getID() + " with " + content); post.edit(user.getID(), content); System.out.println("Edited!!! :D"); } } catch (RemoteException e) { System.out.println("Fail!"); } forwardTo(request, response, "Users/index"); }
@Override public int broadcastMessage(final IUser sender, final String message) { if (sender == null) { return getServer().broadcastMessage(message); } if (sender.isHidden()) { return 0; } final Player[] players = getServer().getOnlinePlayers(); for (Player player : players) { final User user = getUser(player); if (!user.isIgnoredPlayer(sender.getName())) { player.sendMessage(message); } } return players.length; }
protected void delete(String[] params, HttpServletRequest request, HttpServletResponse response) { IUser user; ISocialmore sm; IPost post; IMessage msg; int msg_id, post_id = -1; HttpSession session = request.getSession(); sm = Socialmore.connect(this); user = User.getSession(request); if (sm == null || user == null) { forwardTo(request, response, "Sessions/login"); return; } if (params[0].equalsIgnoreCase("cancel-message")) { try { ArrayList<IMessage> inbox = (ArrayList<IMessage>) user.getInbox(); request.setAttribute("inbox", inbox); } catch (RemoteException e1) { forwardTo(request, response, "Users/index"); return; } try { msg_id = Integer.parseInt(params[1]); msg = user.getSentMessage(msg_id); if (user.getID() == msg.getSenderID() && msg.getReceiving() == null) { if (user.removeMessage(msg_id)) { request.setAttribute("flash_type", "alert-success"); request.setAttribute("flash", "Your scheduled message was cancelled!"); forwardTo(request, response, "Messages/index"); return; } } } catch (Exception e) { } request.setAttribute("flash_type", "alert-error"); request.setAttribute( "flash", "It was <b>not</b> possible to remove the schedule message specified"); forwardTo(request, response, "Messages/index"); return; } try { post_id = Integer.parseInt(params[1]); } catch (Exception e) { } try { post = sm.getPost(post_id); if (post != null) { post.delete(user.getID()); System.out.println("Delete " + post_id); } } catch (RemoteException e) { } forwardTo(request, response, "Users/index"); }
@Override public int hashCode() { return 31 + user.hashCode(); }
public boolean isIgnoredPlayer(IUser user) { return (ignoredPlayers.contains(user.getName().toLowerCase(Locale.ENGLISH)) && !user.isIgnoreExempt()); }
public void updateTweetList() { tweetList.setListData(user.getMessages().toArray()); }
public void updateFollowingList() { followingList.setListData(user.getFollowers().toArray()); }
private String editPermission( Operation op, IMessage message, Permission permission, List<String> args) { String first = args.size() >= 1 ? args.get(0) : ""; String second = args.size() >= 2 ? args.get(1) : ""; String third = args.size() >= 3 ? args.get(2) : ""; String fourth = args.size() >= 4 ? args.get(3) : ""; if (first.equalsIgnoreCase("this")) { // this <channel|guild> if (second.equalsIgnoreCase("channel")) { // this channel return editChannelPermission(op, permission, message.getChannel()); } else if (second.equalsIgnoreCase("server")) { // this guild if (message.getChannel().isPrivate()) { return "Not a valid call from private channels"; } IGuild guild = message.getChannel().getGuild(); return editGuildPermission(op, permission, guild); } else { return "Use `this channel` or `this server`"; } } else if (first.equalsIgnoreCase("user")) { // user <name or id> List<IUser> matching = discordService .getClient() .getGuilds() .stream() .flatMap(g -> g.getUsers().stream()) .filter(u -> u.getName().equalsIgnoreCase(second) || u.getID().equals(second)) .distinct() .collect(Collectors.toList()); if (matching.size() > 1) { StringBuilder builder = new StringBuilder("Multiple users matched, please narrow search or use ID\n"); for (IUser user : matching) { builder.append(user.getName()).append(" has id `").append(user.getID()).append("`\n"); } return builder.toString(); } else if (matching.isEmpty()) { return "User " + second + " not found in cache"; } else { return editUserPermission(op, permission, matching.get(0)); } } else if (first.equalsIgnoreCase("channel")) { // channel <name or id> List<IChannel> matching = discordService .getClient() .getGuilds() .stream() .flatMap(g -> g.getChannels().stream()) .filter(c -> c.getName().equalsIgnoreCase(second) || c.getID().equals(second)) .distinct() .collect(Collectors.toList()); if (matching.size() > 1) { StringBuilder builder = new StringBuilder("Multiple channels matched, please narrow search or use ID\n"); for (IChannel channel : matching) { builder .append(channel.getName()) .append(" has id `") .append(channel.getID()) .append("`\n"); } return builder.toString(); } else if (matching.isEmpty()) { return "Channel " + second + " not found in cache"; } else { return editChannelPermission(op, permission, matching.get(0)); } } else if (first.equalsIgnoreCase("server")) { // guild <name or id> List<IGuild> matching = discordService .getClient() .getGuilds() .stream() .filter(g -> g.getName().equalsIgnoreCase(second) || g.getID().equals(second)) .distinct() .collect(Collectors.toList()); if (matching.size() > 1) { StringBuilder builder = new StringBuilder("Multiple servers matched, please narrow search or use ID\n"); for (IGuild guild : matching) { builder.append(guild.getName()).append(" has id `").append(guild.getID()).append("`\n"); } return builder.toString(); } else if (matching.isEmpty()) { return "Server " + second + " not found in cache"; } else { return editGuildPermission(op, permission, matching.get(0)); } } else if (first.equalsIgnoreCase("role")) { // role <name or id> [in <guild name or id>] // when a guild name/id is not specified: // if triggered from a private channel, all case insensitive matches are picked up // if triggered from a public channel, only the channel's guild is searched boolean isPrivate = message.getChannel().isPrivate(); boolean specific = third.equalsIgnoreCase("in") && !fourth.isEmpty(); List<IRole> matching = discordService .getClient() .getGuilds() .stream() .filter( g -> { if (isPrivate) { return !specific || g.getName().equalsIgnoreCase(fourth) || g.getID().equals(fourth); } else { if (!specific) { return g.equals(message.getChannel().getGuild()); } else { return g.getName().equalsIgnoreCase(fourth) || g.getID().equals(fourth); } } }) .flatMap(g -> g.getRoles().stream()) .filter(r -> r.getName().equalsIgnoreCase(second) || r.getID().equals(second)) .distinct() .collect(Collectors.toList()); if (matching.size() > 1) { StringBuilder builder = new StringBuilder("Multiple role matched, please narrow search or use ID\n"); for (IRole role : matching) { builder.append(role.getName()).append(" has id `").append(role.getID()).append("`\n"); } return builder.toString(); } else if (matching.isEmpty()) { return "Role " + second + " not found in cache"; } else { return editRolePermission(op, permission, matching.get(0)); } } else { return "Invalid argument format! Check details with `.perm -?`"; } }
@Override public int compareTo(final IUser t) { return FormatUtil.stripColor(this.getPlayer().getDisplayName()).compareTo(FormatUtil.stripColor(t.getPlayer().getDisplayName())); }
@Override public boolean handleCommand(final CommandSender sender, final Command command, final String commandLabel, final String[] args) { boolean disabled = false; boolean overridden = false; ISettings settings = ess.getSettings(); settings.acquireReadLock(); try { disabled = settings.getData().getCommands().isDisabled(command.getName()); overridden = !disabled || settings.getData().getCommands().isOverridden(command.getName()); } finally { settings.unlock(); } // Allow plugins to override the command via onCommand if (!overridden && (!commandLabel.startsWith("e") || commandLabel.equalsIgnoreCase(command.getName()))) { final PluginCommand pc = getAlternative(commandLabel); if (pc != null) { executed(commandLabel, pc.getLabel()); try { return pc.execute(sender, commandLabel, args); } catch (final Exception ex) { final ArrayList<StackTraceElement> elements = new ArrayList<StackTraceElement>(Arrays.asList(ex.getStackTrace())); elements.remove(0); final ArrayList<StackTraceElement> toRemove = new ArrayList<StackTraceElement>(); for (final StackTraceElement e : elements) { if (e.getClassName().equals("net.ess3.Essentials")) { toRemove.add(e); } } elements.removeAll(toRemove); final StackTraceElement[] trace = elements.toArray(new StackTraceElement[elements.size()]); ex.setStackTrace(trace); ex.printStackTrace(); sender.sendMessage(ChatColor.RED + "An internal error occurred while attempting to perform this command"); return true; } } } try { IUser user = null; if (sender instanceof Player) { user = ess.getUserMap().getUser((Player)sender); LOGGER.log(Level.INFO, String.format("[PLAYER_COMMAND] %s: /%s %s ", ((Player)sender).getName(), commandLabel, EssentialsCommand.getFinalArg(args, 0))); } // Check for disabled commands if (disabled) { return true; } final String commandName = command.getName().toLowerCase(Locale.ENGLISH); IEssentialsCommand cmd = commands.get(commandName); if (cmd == null) { try { cmd = (IEssentialsCommand)classLoader.loadClass(commandPath + commandName).newInstance(); cmd.init(ess, commandName); cmd.setEssentialsModule(module); commands.put(commandName, cmd); } catch (Exception ex) { sender.sendMessage(_("commandNotLoaded", commandName)); LOGGER.log(Level.SEVERE, _("commandNotLoaded", commandName), ex); return true; } } // Check authorization if (sender != null && !cmd.isAuthorized(sender)) { LOGGER.log(Level.WARNING, _("deniedAccessCommand", user.getName())); user.sendMessage(_("noAccessCommand")); return true; } // Run the command try { if (user == null) { cmd.run(sender, command, commandLabel, args); } else { user.acquireReadLock(); try { cmd.run(user, command, commandLabel, args); } finally { user.unlock(); } } return true; } catch (NoChargeException ex) { return true; } catch (NotEnoughArgumentsException ex) { sender.sendMessage(command.getDescription()); sender.sendMessage(command.getUsage().replaceAll("<command>", commandLabel)); if (!ex.getMessage().isEmpty()) { sender.sendMessage(ex.getMessage()); } return true; } catch (Throwable ex) { showCommandError(sender, commandLabel, ex); return true; } } catch (Throwable ex) { LOGGER.log(Level.SEVERE, _("commandFailed", commandLabel), ex); return true; } }