mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-23 10:39:05 +00:00
205 lines
8.0 KiB
Java
205 lines
8.0 KiB
Java
package mineverse.Aust1n46.chat.command.message;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.DataOutputStream;
|
|
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.Sound;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import mineverse.Aust1n46.chat.MineverseChat;
|
|
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
|
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
|
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
|
import mineverse.Aust1n46.chat.utilities.Format;
|
|
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
|
|
|
public class Message extends MineverseCommand {
|
|
private MineverseChat plugin = MineverseChat.getInstance();
|
|
|
|
public Message(String name) {
|
|
super(name);
|
|
}
|
|
|
|
@Override
|
|
public void execute(CommandSender sender, String command, String[] args) {
|
|
if(!(sender instanceof Player)) {
|
|
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
|
|
return;
|
|
}
|
|
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
|
|
if(args.length == 0) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + command + " [player] [msg]");
|
|
return;
|
|
}
|
|
if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
|
|
if(args.length < 2) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + command + " [player] [msg]");
|
|
return;
|
|
}
|
|
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
|
DataOutputStream out = new DataOutputStream(byteOutStream);
|
|
String msg = "";
|
|
String send = "";
|
|
String echo = "";
|
|
String spy = "";
|
|
String tellColor = plugin.getConfig().getString("tellcolor", "gray");
|
|
for(int r = 1; r < args.length; r++) {
|
|
msg += " " + args[r];
|
|
}
|
|
if(mcp.hasFilter()) {
|
|
msg = Format.FilterChat(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
|
msg = Format.FormatStringColor(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
|
msg = Format.FormatString(msg);
|
|
}
|
|
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
|
send = "{playerfrom} messages you:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
|
echo = "You message {playerto}:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
|
spy = "{playerfrom} messages {playerto}:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy")) + msg;
|
|
}
|
|
try {
|
|
out.writeUTF("Message");
|
|
out.writeUTF("Send");
|
|
// out.writeUTF(mcp.getPlayer().getServer().getServerName());
|
|
out.writeUTF(args[0]);
|
|
out.writeUTF(mcp.getUUID().toString());
|
|
out.writeUTF(mcp.getName());
|
|
out.writeUTF(send);
|
|
out.writeUTF(echo);
|
|
out.writeUTF(spy);
|
|
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
|
out.close();
|
|
}
|
|
catch(Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return;
|
|
}
|
|
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
|
|
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
|
if(ChatColor.stripColor(p.getNickname()).equals(args[0])) {
|
|
player = p;
|
|
break;
|
|
}
|
|
}
|
|
if(player == null || !player.isOnline()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online.");
|
|
return;
|
|
}
|
|
if(!mcp.getPlayer().canSee(player.getPlayer())) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Player: " + ChatColor.GOLD + args[0] + ChatColor.RED + " is not online.");
|
|
return;
|
|
}
|
|
if(player.getIgnores().contains(mcp.getUUID())) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getName() + " is currently ignoring your messages.");
|
|
return;
|
|
}
|
|
if(!player.getMessageToggle()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getName() + " is currently blocking messages.");
|
|
return;
|
|
}
|
|
if(args.length >= 2) {
|
|
String msg = "";
|
|
String echo = "";
|
|
String send = "";
|
|
String spy = "";
|
|
String tellColor = plugin.getConfig().getString("tellcolor", "gray");
|
|
if(args[1].length() > 0) {
|
|
for(int r = 1; r < args.length; r++) {
|
|
msg += " " + args[r];
|
|
}
|
|
if(mcp.hasFilter()) {
|
|
msg = Format.FilterChat(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
|
msg = Format.FormatStringColor(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
|
msg = Format.FormatString(msg);
|
|
}
|
|
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
|
echo = "You message " + player.getNickname() + ":" + ChatColor.valueOf(tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto").replace("{playerto}", player.getNickname()).replace("{playerfrom}", mcp.getNickname())) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
|
send = mcp.getNickname() + " messages you:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom").replace("{playerto}", player.getNickname()).replace("{playerfrom}", mcp.getNickname())) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
|
spy = mcp.getName() + " messages " + player.getName() + ":" + ChatColor.valueOf(tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy").replace("{playerto}", player.getName()).replace("{playerfrom}", mcp.getName())) + msg;
|
|
}
|
|
player.setReplyPlayer(mcp.getUUID());
|
|
mcp.setReplyPlayer(player.getUUID());
|
|
player.getPlayer().sendMessage(send);
|
|
mcp.getPlayer().sendMessage(echo);
|
|
if(player.hasNotifications()) {
|
|
if(VersionHandler.is1_8() || VersionHandler.is1_7_10() || VersionHandler.is1_7_2() || VersionHandler.is1_7_9()) {
|
|
player.getPlayer().playSound(player.getPlayer().getLocation(), Sound.valueOf("LEVEL_UP"), 1, 0);
|
|
}
|
|
else {
|
|
player.getPlayer().playSound(player.getPlayer().getLocation(), Sound.valueOf("ENTITY_PLAYER_LEVELUP"), 1, 0);
|
|
}
|
|
}
|
|
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
|
|
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
|
if(sp.isSpy()) {
|
|
sp.getPlayer().sendMessage(spy);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(args.length == 1) {
|
|
if(args[0].length() > 0) {
|
|
if(!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) {
|
|
mcp.setConversation(player.getUUID());
|
|
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
|
|
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
|
if(sp.isSpy()) {
|
|
sp.getPlayer().sendMessage(mcp.getName() + " started a private conversation with " + player.getName() + ".");
|
|
}
|
|
}
|
|
}
|
|
mcp.getPlayer().sendMessage("You are now in private conversation with " + player.getNickname() + ".");
|
|
}
|
|
else {
|
|
mcp.setConversation(null);
|
|
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
|
|
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
|
if(sp.isSpy()) {
|
|
sp.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + player.getName() + ".");
|
|
}
|
|
}
|
|
}
|
|
mcp.getPlayer().sendMessage("You are no longer in private conversation with " + player.getNickname() + ".");
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
} |