Browse Source

init от NeonGC

master
Misterzym 7 years ago
commit
c2d7fb5a11
  1. 6
      .gitignore
  2. 10
      src/plugin.yml
  3. 52
      src/ru/upworld/chat/ChatListener.java
  4. 29
      src/ru/upworld/chat/ChatUtil.java
  5. 48
      src/ru/upworld/chat/CommandMsg.java
  6. 26
      src/ru/upworld/chat/HideStream.java
  7. 25
      src/ru/upworld/chat/UpWorldChat.java

6
.gitignore vendored

@ -0,0 +1,6 @@
dist
build
nbproject
test
build.xml
manifest.mf

10
src/plugin.yml

@ -0,0 +1,10 @@
name: UpWorldChat
main: ru.upworld.chat.UpWorldChat
description: Chat plugin
author: NeonGC
version: 1.13
softdepend: []
commands:
msg:
description: 'Private message command'
aliases: [m, м, ьып]

52
src/ru/upworld/chat/ChatListener.java

@ -0,0 +1,52 @@
package ru.upworld.chat;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
public class ChatListener implements Listener {
private static final String format = "%chatPrefix" + ChatColor.DARK_GRAY + "%player: " + ChatColor.WHITE + "%message";
@EventHandler
public void AsyncPlayerChatEvent(AsyncPlayerChatEvent e) {
String message = e.getMessage();
Player player = e.getPlayer();
String formated = ChatUtil.translateColorCodes(format);
if (message.startsWith("%tcc%") && player.hasPermission("upworld.translateColorCodes")) {
message = ChatUtil.translateColorCodes(message).replace("%tcc%", "");
}
Chat chat = message.startsWith("!") ? Chat.LOCAL : Chat.GLOBAL;
if (chat == Chat.LOCAL) {
Bukkit.getOnlinePlayers().stream().filter((p) -> (p.getLocation().distance(player.getLocation()) <= 100)).forEachOrdered((p) -> {
e.getRecipients().clear();
e.getRecipients().add(p);
});
} else {
message = message.replaceFirst("!", "");
}
formated = formated.replace("%chatPrefix", chat.getPrefix());
formated = formated.replace(" ", "");
formated = formated.replace(":", ": ");
formated = formated.replace("%player", player.getDisplayName());
formated = formated.replace("%message", message);
e.setFormat(formated);
}
public enum Chat {
GLOBAL("§9[§6G§9]§f "), LOCAL("§9[§aL§9]§f ");
private final String prefix;
public String getPrefix() {
return prefix;
}
private Chat(String prefix) {
this.prefix = prefix;
}
}
}

29
src/ru/upworld/chat/ChatUtil.java

@ -0,0 +1,29 @@
package ru.upworld.chat;
import java.util.regex.Pattern;
public class ChatUtil {
private static final Pattern chatColorPattern = Pattern.compile("(?i)&([0-9A-F])");
private static final Pattern chatMagicPattern = Pattern.compile("(?i)&([K])");
private static final Pattern chatBoldPattern = Pattern.compile("(?i)&([L])");
private static final Pattern chatStrikethroughPattern = Pattern.compile("(?i)&([M])");
private static final Pattern chatUnderlinePattern = Pattern.compile("(?i)&([N])");
private static final Pattern chatItalicPattern = Pattern.compile("(?i)&([O])");
private static final Pattern chatResetPattern = Pattern.compile("(?i)&([R])");
public static String translateColorCodes(String string) {
if (string == null) {
return "";
}
String newstring = string;
newstring = chatColorPattern.matcher(newstring).replaceAll("§$1");
newstring = chatMagicPattern.matcher(newstring).replaceAll("§$1");
newstring = chatBoldPattern.matcher(newstring).replaceAll("§$1");
newstring = chatStrikethroughPattern.matcher(newstring).replaceAll("§$1");
newstring = chatUnderlinePattern.matcher(newstring).replaceAll("§$1");
newstring = chatItalicPattern.matcher(newstring).replaceAll("§$1");
newstring = chatResetPattern.matcher(newstring).replaceAll("§$1");
return newstring;
}
}

48
src/ru/upworld/chat/CommandMsg.java

@ -0,0 +1,48 @@
package ru.upworld.chat;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CommandMsg implements CommandExecutor {
private final String usage = ChatColor.RED + "/msg <игрок> <сообщение>";
private final String noMessage = ChatColor.RED + "Введите сообщение.";
private final String playerIsOffline = ChatColor.RED + "Введите ник игрока.";
@Override
public boolean onCommand(CommandSender sender, Command cmnd, String string, String[] args) {
if (args.length == 0) {
sender.sendMessage(usage);
return true;
} else if (args.length == 1) {
sender.sendMessage(noMessage);
return true;
}
boolean exist = false;
for (Player player : Bukkit.getOnlinePlayers()) {
if (player.getName().equals(args[0])) {
exist = true;
}
}
if (!exist) {
sender.sendMessage(playerIsOffline);
return true;
}
sender.sendMessage("&e[&fВы &e-> &f" + args[0] + "&e] " + joiner(args));
Bukkit.getPlayer(args[0]).sendMessage("&e[&f" + sender.getName() + "&e -> &fВы&e] " + joiner(args));
return true;
}
private String joiner(String[] args) {
String message = "";
for (int i = 1;i < args.length;++i) {
message = message + args[i] + " ";
}
return message;
}
}

26
src/ru/upworld/chat/HideStream.java

@ -0,0 +1,26 @@
package ru.upworld.chat;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class HideStream implements Listener {
@EventHandler(priority = EventPriority.HIGHEST)
public void PlayerJoinEvent(PlayerJoinEvent event) {
event.setJoinMessage(null);
}
@EventHandler(priority = EventPriority.HIGHEST)
public void PlayerQuitEvent(PlayerQuitEvent event) {
event.setQuitMessage(null);
}
@EventHandler(priority = EventPriority.HIGHEST)
public void PlayerDeathEvent(PlayerDeathEvent event) {
event.setDeathMessage(null);
}
}

25
src/ru/upworld/chat/UpWorldChat.java

@ -0,0 +1,25 @@
package ru.upworld.chat;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class UpWorldChat extends JavaPlugin {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(new ChatListener(), this);
Bukkit.getPluginManager().registerEvents(new HideStream(), this);
getCommand("msg").setExecutor(new CommandMsg());
log("Enabled!");
}
@Override
public void onDisable() {
log("Disabled!");
}
public void log(String msg) {
Bukkit.getServer().getConsoleSender().sendMessage("[§3Chat§9] §4" + msg);
}
}
Loading…
Cancel
Save