@EventHandler
 public void HeMan(PlayerChatEvent e) {
   if (e.isCancelled()) return;
   if (!e.getMessage().matches("(?i)by the power of gr[a|e]yskull!?")) return;
   Player p = e.getPlayer();
   if (!plugin.isAuthorized(p, "rcmds.heman")) return;
   ItemStack is = p.getItemInHand();
   if (is.getType() != Material.DIAMOND_SWORD) return;
   if (is.getEnchantments().isEmpty()) return;
   e.setCancelled(true);
   p.getWorld().strikeLightningEffect(p.getLocation());
   Matcher m = Pattern.compile("(?i)by the power of gr[a|e]yskull!?").matcher(e.getMessage());
   StringBuilder sb = new StringBuilder();
   int last = 0;
   while (m.find()) {
     sb.append(e.getMessage().substring(last, m.start()));
     sb.append(m.group(0).toUpperCase());
     last = m.end();
   }
   sb.append(e.getMessage().substring(last));
   plugin
       .getServer()
       .broadcastMessage(
           e.getFormat().replaceAll("(?i)by the power of gr[a|e]yskull!?", sb.toString()));
   e.setFormat("");
   List<PotionEffect> effects = new ArrayList<PotionEffect>();
   effects.add(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 1200, 2));
   effects.add(new PotionEffect(PotionEffectType.REGENERATION, 1200, 2));
   effects.add(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 1200, 2));
   effects.add(new PotionEffect(PotionEffectType.SPEED, 1200, 2));
   p.addPotionEffects(effects);
 }
  @Override
  public void onPlayerChat(final PlayerChatEvent event) {
    if (isAborted(event)) {
      return;
    }

    /**
     * This file should handle detection of the local chat features... if local chat is enabled, we
     * need to handle it here
     */
    final User user = ess.getUser(event.getPlayer());
    final String chatType = getChatType(event.getMessage());
    long radius = ess.getSettings().getChatRadius();
    if (radius < 1) {
      return;
    }
    radius *= radius;
    try {
      if (event.getMessage().length() > 0 && chatType.length() > 0) {
        StringBuilder permission = new StringBuilder();
        permission.append("essentials.chat.").append(chatType);

        StringBuilder command = new StringBuilder();
        command.append("chat-").append(chatType);

        StringBuilder format = new StringBuilder();
        format.append(chatType).append("Format");

        StringBuilder errorMsg = new StringBuilder();
        errorMsg
            .append("notAllowedTo")
            .append(chatType.substring(0, 1).toUpperCase())
            .append(chatType.substring(1));

        if (user.isAuthorized(permission.toString())) {
          charge(user, command.toString());
          event.setMessage(event.getMessage().substring(1));
          event.setFormat(Util.format(format.toString(), event.getFormat()));
          return;
        }

        user.sendMessage(Util.i18n(errorMsg.toString()));
        event.setCancelled(true);
        return;
      }
    } catch (ChargeException ex) {
      ess.showError(user, ex, "Shout");
      event.setCancelled(true);
      return;
    }
    sendLocalChat(user, radius, event);
  }
 @Override
 public void onPlayerChat(PlayerChatEvent event) {
   Player player = event.getPlayer();
   if (event.getMessage().toLowerCase().contains("ready")) {
     new ReadyJob(player).run();
   }
 }
Beispiel #4
0
  public boolean chat(String s) {
    if (!this.player.dead) {
      if (s.startsWith("/")) {
        this.handleCommand(s);
        return true;
      } else {
        Player player = getPlayer();
        PlayerChatEvent event = new PlayerChatEvent(player, s);
        server.getPluginManager().callEvent(event);

        if (event.isCancelled()) {
          return true;
        }

        s =
            String.format(
                event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage());
        a.info(s);
        for (Player recipient : event.getRecipients()) {
          recipient.sendMessage(s);
        }
      }
    }

    return false;
    // CraftBukkit end
  }
Beispiel #5
0
 @Override
 public void onPlayerChat(PlayerChatEvent event) {
   if (event.isCancelled()) return;
   Player player = event.getPlayer();
   String message = event.getMessage();
   if (message == null) return;
   event.setFormat(ichat.API.parseChat(player, message, ichat.chatFormat));
 }
  @EventHandler
  public void onPlayerChat(PlayerChatEvent event) {
    Player player = event.getPlayer();

    String newFormat = plugin.formatMessage(player);

    String.format(newFormat, event.getPlayer(), event.getMessage());
    event.setFormat(newFormat);
  }
Beispiel #7
0
  @EventHandler
  public void syncChatTrigger(final PlayerChatEvent event) {
    if (event.isCancelled()) return;

    // Return if "Use asynchronous event" is true in config file
    if (Settings.ChatAsynchronous()) return;

    Boolean cancelled = process(event.getPlayer(), event.getMessage());
    event.setCancelled(cancelled);
  }
  @Override
  public void onPlayerCommand(PlayerChatEvent event) {
    String[] split = event.getMessage().split(" ");
    Player player = event.getPlayer();
    String command = split[0];

    if ((!event.isCancelled()) && command.equalsIgnoreCase("/" + DailyBibleVerse.command)) {
      plugin.displayVOTD(player);
      event.setCancelled(true);
    }
  }
 @Override
 public void onPlayerCommand(PlayerChatEvent event) {
   String[] split = event.getMessage().split(" ");
   Player player = event.getPlayer();
   if (split[0].equalsIgnoreCase(debugCommand)) {
     addDebugee(player);
     event.setCancelled(true);
   } else if (split[0].equalsIgnoreCase(undebugCommand)) {
     removeDebugee(player);
     event.setCancelled(true);
   }
 }
Beispiel #10
0
 public void onPlayerChat(PlayerChatEvent event) {
   Player p = event.getPlayer();
   Builder fb = plugin.getBattlefieldManager().getBuilder(p);
   if (fb == null) return;
   if (fb.getTool() != null) {
     Tool tool = fb.getTool();
     if (tool == null) return;
     if (tool.isAwaitingText()) {
       tool.retrieveText(event.getMessage());
       event.setCancelled(true);
     }
   }
 }
 public void onPlayerChat(PlayerChatEvent event) {
   Player player = event.getPlayer();
   PlayerProfile PP = Users.getProfile(player);
   String x = ChatColor.GREEN + "(" + ChatColor.WHITE + player.getName() + ChatColor.GREEN + ") ";
   String y = ChatColor.AQUA + "{" + ChatColor.WHITE + player.getName() + ChatColor.AQUA + "} ";
   if (Config.getInstance().isPartyToggled(player.getName())) {
     event.setCancelled(true);
     log.log(
         Level.INFO,
         "[P](" + PP.getParty() + ")" + "<" + player.getName() + "> " + event.getMessage());
     for (Player herp : plugin.getServer().getOnlinePlayers()) {
       if (Users.getProfile(herp).inParty()) {
         if (Party.getInstance().inSameParty(herp, player)) {
           herp.sendMessage(x + event.getMessage());
         }
       }
     }
     return;
   }
   if ((player.isOp() || mcPermissions.getInstance().adminChat(player))
       && Config.getInstance().isAdminToggled(player.getName())) {
     log.log(Level.INFO, "[A]" + "<" + player.getName() + "> " + event.getMessage());
     event.setCancelled(true);
     for (Player herp : plugin.getServer().getOnlinePlayers()) {
       if ((herp.isOp() || mcPermissions.getInstance().adminChat(herp))) {
         herp.sendMessage(y + event.getMessage());
       }
     }
     return;
   }
   /*
    * Remove from normal chat if toggled
   for(Player z : event.getRecipients()){
   	if(Users.getProfile(z.getName()).getPartyChatOnlyToggle() == true)
   		event.getRecipients().remove(z);
   }
   */
 }
Beispiel #12
0
  public void onPlayerChat(PlayerChatEvent event) {
    for (myPlayer player : parent.universe.players.values()) {
      if (player.player == event.getPlayer()) {
        if (player.target != null) {

          // System.out.println("npcx : player chat event ("+ player.player.getName()+")");
          player.player.sendMessage(
              "You say to " + player.target.getName() + ", '" + event.getMessage() + "'");

          if (player.target.parent != null) {
            // this is not a temporary spawn

            // does it have a category set?
            if (player.target.parent.category != null) {

              // check what type of category it is
              if (player.target.parent.category.matches("merchant")) {
                // merchant
                player.target.parent.onPlayerChat(player, event.getMessage(), "merchant");

              } else {
                // normal chat event / unknown category
                player.target.parent.onPlayerChat(player, event.getMessage(), "");
              }
            } else {
              // normal chat event
              player.target.parent.onPlayerChat(player, event.getMessage(), "");
            }
          } else {
            player.player.sendMessage("You cannot talk to temporary spawns");
          }
          event.setCancelled(true);
        }
      }
    }
  }
Beispiel #13
0
  @EventHandler(event = PlayerChatEvent.class)
  public void onPlayerChat(PlayerChatEvent event) {
    if (event.isCancelled()) {
      return;
    }

    Matcher matcher = cuipattern.matcher(event.getMessage());
    if (matcher.find()) {
      String type = matcher.group(1);
      String args = matcher.group(2);

      if (type.equals("v")) {
        try {
          plugin.getSession(event.getPlayer()).setCUIVersion(Integer.parseInt(args));
          event.setCancelled(true);
        } catch (NumberFormatException e) {
        }
      }
    }
  }
  public void onPlayerChat(PlayerChatEvent event) {
    String eventplayer = event.getPlayer().getName();
    if (admin.freeze.contains(eventplayer)) {
      // player in hashmap chats
      String msg = event.getMessage();
      admin.tellAdmin(ChatColor.DARK_AQUA + "Blocked message by " + eventplayer + ": " + msg);

      Random rand = new Random();
      int number;
      number = 1 + rand.nextInt(10);

      if (number == 1) {
        event.setMessage("Lolz.");
      } else if (number == 2) {
        event.setMessage("This is funny!");
      } else if (number == 3) {
        event.setMessage("I wish i was a cool server-owner! :3");
      } else if (number == 4) {
        event.setMessage("Turtles are round");
      } else if (number == 5) {
        event.setMessage("I'm a kitty! purr :3");
      } else if (number == 6) {
        event.setMessage("This place is great!");
      } else if (number == 7) {
        event.setMessage("Hurr Durr");
      } else if (number == 8) {
        event.setMessage("How did i get here?");
      } else if (number == 9) {
        event.setMessage("My friends are lions");
      } else if (number == 10) {
        event.setMessage("<('_'<) (>'_')>");
      } else {
        // error lolz
        event.getPlayer().sendMessage("error lolz.");
        admin.logInfo("ZOMG THERE WAS A JAVA ERROR! ERROR: failed to generate random number(lolz)");
      }
    } else {
      // nothing.
    }
  }
 @Override
 public void onPlayerChat(PlayerChatEvent event) {
   if (ChatManager.handleMessage(event.getPlayer(), event.getMessage())) event.setCancelled(true);
 }
	/***
	 * The main function which replaces chat with matched replacements.
	 * @param e
	 * @return
	 */
	@EventHandler(priority = EventPriority.LOWEST)
	public void replaceChat(PlayerChatEvent e) {
		if (e.isCancelled()) return;
		
		try {
			ScriptEnvironment env = new ScriptEnvironment(); {
				env.setCommandSender(e.getPlayer());
				env.setServer(e.getPlayer().getServer());
			}
			ArrayList<ReplacementPair> preparedEffects = new ArrayList<ReplacementPair>(); //holds all effects until all replacements done

			for (ReplacementPair rp : pairs) {
				StringBuffer sb = new StringBuffer();
				Matcher m = rp.getRegex().matcher(e.getMessage());
				if (!m.find()) continue;
				env.setMatcher(m);

				if (rp.playerWillVanish()) { //the player will vanish as a result of this, special handling
					int cutlen = CommandsEX.getConf().getInt("replacements.cutoff.length", 1);
					String cuttext = CommandsEX.getConf().getString("replacements.cutoff.indicator", "--*");
	
					String rep = m.group().substring(0, cutlen).concat(cuttext);
					m.appendReplacement(sb, rep);
					e.setMessage(sb.toString());
					//e.setCancelled(true);
					//e.getPlayer().chat(sb.toString()); //chat first
	
					rp.executeEffects(env); //then execute the replacement
					return;
				}

				//loop through with find/replace
				do { //use do while, due to the find() invocation above
					// test if it is all upper, and replace with all upper (if we have this set up in the regex itself - in config file)
					if (rp.getSameOutputCase() && allUpper && m.group().toUpperCase().equals(m.group())) {
						m.appendReplacement(sb, rp.executeString(env).toUpperCase());
					} else {
						m.appendReplacement(sb, rp.executeString(env));
					}
				} while (m.find());
				m.appendTail(sb);

				if (!preparedEffects.contains(rp)) {
					preparedEffects.add(rp);
				}
				e.setMessage(sb.toString());
			}
			
			//after all replacements are in: execute the effects
			if (!preparedEffects.isEmpty()) {
				//e.setCancelled(true);
				//e.getPlayer().chat(sb.toString()); //chat first
	
				env.setMatcher(null);
				for (ReplacementPair rp : preparedEffects){
					rp.executeEffects(env);
				}
			}
		} catch (Exception ex){
			LogHelper.logSevere("[CommandsEX] " + _("cmdOrChatreplacementFailed", ""));
			LogHelper.logDebug("Message: " + ex.getMessage() + ", cause: " + ex.getCause());
		}
	}
  @Override
  public void onPlayerChat(PlayerChatEvent event) {
    if (event.isCancelled()) {
      return;
    }

    Player talkingPlayer = event.getPlayer();
    String msg = event.getMessage();

    // ... it was not a command. This means that it is a chat message!
    FPlayer me = FPlayer.get(talkingPlayer);

    // Are we to insert the Faction tag into the format?
    // If we are not to insert it - we are done.
    if (!Conf.chatTagEnabled || Conf.chatTagHandledByAnotherPlugin) {
      return;
    }

    int InsertIndex = 0;
    String eventFormat = event.getFormat();

    if (!Conf.chatTagReplaceString.isEmpty() && eventFormat.contains(Conf.chatTagReplaceString)) {
      // we're using the "replace" method of inserting the faction tags
      // if they stuck "{FACTION_TITLE}" in there, go ahead and do it too
      if (eventFormat.contains("{FACTION_TITLE}")) {
        eventFormat = eventFormat.replace("{FACTION_TITLE}", me.getTitle());
      }
      InsertIndex = eventFormat.indexOf(Conf.chatTagReplaceString);
      eventFormat = eventFormat.replace(Conf.chatTagReplaceString, "");
      Conf.chatTagPadAfter = false;
      Conf.chatTagPadBefore = false;
    } else if (!Conf.chatTagInsertAfterString.isEmpty()
        && eventFormat.contains(Conf.chatTagInsertAfterString)) {
      // we're using the "insert after string" method
      InsertIndex =
          eventFormat.indexOf(Conf.chatTagInsertAfterString)
              + Conf.chatTagInsertAfterString.length();
    } else if (!Conf.chatTagInsertBeforeString.isEmpty()
        && eventFormat.contains(Conf.chatTagInsertBeforeString)) {
      // we're using the "insert before string" method
      InsertIndex = eventFormat.indexOf(Conf.chatTagInsertBeforeString);
    } else {
      // we'll fall back to using the index place method
      InsertIndex = Conf.chatTagInsertIndex;
      if (InsertIndex > eventFormat.length()) return;
    }

    String formatStart =
        eventFormat.substring(0, InsertIndex)
            + ((Conf.chatTagPadBefore && !me.getChatTag().isEmpty()) ? " " : "");
    String formatEnd =
        ((Conf.chatTagPadAfter && !me.getChatTag().isEmpty()) ? " " : "")
            + eventFormat.substring(InsertIndex);

    String nonColoredMsgFormat = formatStart + me.getChatTag().trim() + formatEnd;

    // Relation Colored?
    if (Conf.chatTagRelationColored) {
      // We must choke the standard message and send out individual messages to all players
      // Why? Because the relations will differ.
      event.setCancelled(true);

      for (Player listeningPlayer : event.getRecipients()) {
        FPlayer you = FPlayer.get(listeningPlayer);
        String yourFormat = formatStart + me.getChatTag(you).trim() + formatEnd;
        try {
          listeningPlayer.sendMessage(
              String.format(yourFormat, talkingPlayer.getDisplayName(), msg));
        } catch (UnknownFormatConversionException ex) {
          Factions.log(
              Level.SEVERE,
              "Critical error in chat message formatting! Complete format string: " + yourFormat);
          Factions.log(Level.SEVERE, "First half of event.getFormat() string: " + formatStart);
          Factions.log(Level.SEVERE, "Second half of event.getFormat() string: " + formatEnd);
          Factions.log(
              Level.SEVERE,
              "NOTE: To fix this quickly, running this command should work: f config chatTagInsertIndex 0");
          Factions.log(
              Level.SEVERE,
              "For a more proper fix, please read the chat configuration notes on the configuration page of the Factions user guide.");
          ex.printStackTrace();
          return;
        }
      }

      // Write to the log... We will write the non colored message.
      String nonColoredMsg =
          ChatColor.stripColor(
              String.format(nonColoredMsgFormat, talkingPlayer.getDisplayName(), msg));
      Logger.getLogger("Minecraft").info(nonColoredMsg);
    } else {
      // No relation color.
      event.setFormat(nonColoredMsgFormat);
    }
  }
  public void onPlayerCommand(PlayerChatEvent event) {
    String[] split = event.getMessage().split(" ");
    if (split.length >= 1) {
      if (split[0].equalsIgnoreCase("/follow")) {
        HashMap<Player, ArrayList<Player>> players = plugin.getPlayers();
        Player player = event.getPlayer();
        if (split.length == 1) {
          // Stop following
          for (Entry<Player, ArrayList<Player>> entry : players.entrySet()) {
            for (Player iter : entry.getValue()) {
              if (iter.getName().equalsIgnoreCase(player.getName())) {
                // System.out.println(player.getName() + " has stopped following " +
                // entry.getKey().getName());
                player.sendMessage("§eYou stopped following " + entry.getKey().getName());
                entry.getValue().remove(iter);
              }
            }
          }
          player.sendMessage("§eYou weren't following anybody.");
        } else if (split.length >= 2) {
          String name = split[1].trim();

          Player target = plugin.getServer().getPlayer(name);
          if (target != null) {
            // Check the distance between the two to disallow teleporting using it
            double distance =
                Math.sqrt(
                    Math.pow((target.getLocation().getX() - player.getLocation().getX()), 2)
                        + Math.pow((target.getLocation().getY() - player.getLocation().getY()), 2)
                        + Math.pow((target.getLocation().getZ() - player.getLocation().getZ()), 2));
            if (distance > 4) {
              player.sendMessage("§eYou are too far away.");
            }

            for (Entry<Player, ArrayList<Player>> entry : players.entrySet()) {
              for (Player iter : entry.getValue()) {
                if (iter.getName().equalsIgnoreCase(player.getName())) {
                  // System.out.println(player.getName() + " forcibly stopped following " +
                  // entry.getKey().getName());
                  entry.getValue().remove(player);
                  break;
                }
              }
            }

            // Find the player
            boolean foundTarget = false;
            boolean foundPlayer = false;
            for (Player iter : players.keySet()) {
              if (iter.getName().equalsIgnoreCase(name)) {
                foundTarget = true;
                for (Player iter2 : players.get(target)) {
                  if (iter2.getName().equalsIgnoreCase(player.getName())) {
                    // Already following, don't add
                    foundPlayer = true;
                    // System.out.println(player.getName() + " is already following " +
                    // target.getName());
                    player.sendMessage("You are already following " + target.getName());
                  }
                }
              }
            }
            if (!foundTarget) {
              // System.out.println("New player to follow. Adding " + target.getName() + " to the
              // follow list and adding "
              // + player.getName() + " to follow them.");
              // Make a new follow list and tie it to the player to follow
              ArrayList<Player> temp = new ArrayList<Player>();
              temp.add(player);
              players.put(target, temp);
            }
            if (!foundPlayer) {
              // System.out.println("Player not found on the following list, adding them");
              players.get(target).add(player);
              player.sendMessage("§eYou are now following " + target.getName());
            }
          } else {
            player.sendMessage("§ePlease give a valid player name.");
          }
        } else {
          player.sendMessage("§eUsage is /follow [player]");
        }
        event.setCancelled(true);
      }
    }
  }
Beispiel #19
0
  /**
   * Monitor PlayerChat events.
   *
   * @param event The event to watch
   */
  @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
  public void onPlayerChat(PlayerChatEvent event) {
    Player player = event.getPlayer();
    PlayerProfile profile = Users.getProfile(player);

    if (profile == null) {
      return;
    }

    if (profile.getPartyChatMode()) {
      Party party = profile.getParty();

      if (party == null) {
        player.sendMessage(
            "You're not in a party, type /p to leave party chat mode."); // TODO: Use mcLocale
        return;
      }

      String partyName = party.getName();
      String playerName = player.getName();
      McMMOPartyChatEvent chatEvent =
          new McMMOPartyChatEvent(playerName, partyName, event.getMessage());
      plugin.getServer().getPluginManager().callEvent(chatEvent);

      if (chatEvent.isCancelled()) {
        return;
      }

      String prefix = ChatColor.GREEN + "(" + ChatColor.WHITE + playerName + ChatColor.GREEN + ") ";

      plugin
          .getLogger()
          .info("[P](" + partyName + ")" + "<" + playerName + "> " + chatEvent.getMessage());

      for (Player member : party.getOnlineMembers()) {
        member.sendMessage(prefix + chatEvent.getMessage());
      }

      event.setCancelled(true);
    } else if (profile.getAdminChatMode()) {
      String playerName = player.getName();
      McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(playerName, event.getMessage());
      plugin.getServer().getPluginManager().callEvent(chatEvent);

      if (chatEvent.isCancelled()) {
        return;
      }

      String prefix = ChatColor.AQUA + "{" + ChatColor.WHITE + playerName + ChatColor.AQUA + "} ";

      plugin.getLogger().info("[A]<" + playerName + "> " + chatEvent.getMessage());

      for (Player otherPlayer : plugin.getServer().getOnlinePlayers()) {
        if (Permissions.getInstance().adminChat(otherPlayer) || otherPlayer.isOp()) {
          otherPlayer.sendMessage(prefix + chatEvent.getMessage());
        }
      }

      event.setCancelled(true);
    }
  }
Beispiel #20
0
 @EventHandler(priority = EventPriority.MONITOR)
 public void onPlayerChat(PlayerChatEvent event) {
   if (isLogging(event.getPlayer().getWorld(), Logging.CHAT))
     consumer.queueChat(event.getPlayer().getName(), event.getMessage());
 }
Beispiel #21
0
 @EventHandler
 public void playerChatEvent(PlayerChatEvent event) {
   Player player = event.getPlayer();
   plugin.bot.sendMessage(
       plugin.getIRCChannel(), "[" + player.getName() + "] " + event.getMessage());
 }