mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-23 18:42:45 +00:00
163 lines
6.7 KiB
Java
163 lines
6.7 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.channel.ChatChannelInfo;
|
|
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
|
import mineverse.Aust1n46.chat.utilities.Format;
|
|
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
|
|
|
public class Reply extends MineverseCommand {
|
|
private MineverseChat plugin;
|
|
private ChatChannelInfo cc = MineverseChat.ccInfo;
|
|
|
|
public Reply(String name) {
|
|
super(name);
|
|
this.plugin = MineverseChat.getInstance();
|
|
}
|
|
|
|
@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) {
|
|
if(mcp.hasReplyPlayer()) {
|
|
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer());
|
|
if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
|
|
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
|
DataOutputStream out = new DataOutputStream(byteOutStream);
|
|
String msg = "";
|
|
String send = "";
|
|
String echo = "";
|
|
String spy = "";
|
|
for(int r = 0; r < args.length; r++) {
|
|
msg += " " + args[r];
|
|
}
|
|
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
|
send = "{playerfrom} replies to you:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
|
echo = "You reply to {playerto}:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
|
spy = "{playerfrom} replied to {playerto}:" + ChatColor.valueOf(cc.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(player.getName());
|
|
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;
|
|
}
|
|
if(player == null || !player.isOnline()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have anyone to reply to.");
|
|
return;
|
|
}
|
|
if(!mcp.getPlayer().canSee(player.getPlayer())) {
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have anyone to reply to.");
|
|
return;
|
|
}
|
|
if(player.getIgnores().contains(mcp.getUUID())) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getNickname() + " is currently ignoring your replies.");
|
|
return;
|
|
}
|
|
if(!player.getMessageToggle()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getNickname() + " is currently blocking messages.");
|
|
return;
|
|
}
|
|
String msg = "";
|
|
String echo = "";
|
|
String send = "";
|
|
String spy = "";
|
|
if(args.length > 0) {
|
|
for(int r = 0; r < args.length; r++)
|
|
msg += " " + args[r];
|
|
if(mcp.hasFilter()) {
|
|
msg = cc.FilterChat(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
|
msg = Format.FormatStringColor(msg);
|
|
}
|
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
|
msg = Format.FormatString(msg);
|
|
}
|
|
if(player.isAFK()) {
|
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + player.getNickname() + " is currently afk and might be unable to chat at this time.");
|
|
}
|
|
if(plugin.getConfig().getString("replyformatto").equalsIgnoreCase("Default")) {
|
|
echo = "You reply to " + player.getNickname() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
echo = Format.FormatStringAll(plugin.getConfig().getString("replyformatto").replace("{playerto}", player.getNickname()).replace("{playerfrom}", mcp.getNickname())) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("replyformatfrom").equalsIgnoreCase("Default")) {
|
|
send = mcp.getNickname() + " replies to you:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
send = Format.FormatStringAll(plugin.getConfig().getString("replyformatfrom").replace("{playerto}", player.getNickname()).replace("{playerfrom}", mcp.getNickname())) + msg;
|
|
}
|
|
if(plugin.getConfig().getString("replyformatspy").equalsIgnoreCase("Default")) {
|
|
spy = mcp.getName() + " replied to " + player.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + msg;
|
|
}
|
|
else {
|
|
spy = Format.FormatStringAll(plugin.getConfig().getString("replyformatspy").replace("{playerto}", player.getName()).replace("{playerfrom}", mcp.getName())) + msg;
|
|
}
|
|
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
|
|
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
|
if(p.isOnline() && p.isSpy()) {
|
|
p.getPlayer().sendMessage(spy);
|
|
}
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
player.setReplyPlayer(mcp.getUUID());
|
|
return;
|
|
}
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have anyone to reply to.");
|
|
return;
|
|
}
|
|
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /reply [msg]");
|
|
}
|
|
} |