Aust1n46 93a405ccbd Merge remote-tracking branch 'origin/localization'
Conflicts:
	MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Channel.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Chlist.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Kickchannel.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Kickchannelall.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Leave.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Removemessage.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/Setchannel.java
	MineverseChat/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java
	MineverseChat/mineverse/Aust1n46/chat/command/message/Ignore.java
	MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java
	MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java
2020-03-20 06:53:02 -04:00

220 lines
8.5 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.localization.LocalizedMessage;
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(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString());
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
if(args.length == 0) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/" + command)
.replace("{args}", "[player] [message]"));
return;
}
if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) {
if(args.length < 2) {
mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/" + command)
.replace("{args}", "[player] [message]"));
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(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return;
}
if(!mcp.getPlayer().canSee(player.getPlayer())) {
mcp.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
.replace("{args}", args[0]));
return;
}
if(player.getIgnores().contains(mcp.getUUID())) {
mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString()
.replace("{player}", player.getName()));
return;
}
if(!player.getMessageToggle()) {
mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString()
.replace("{player}", player.getName()));
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(LocalizedMessage.ENTER_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", player.getName()));
}
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.ENTER_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", player.getName()));
}
else {
mcp.setConversation(null);
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
if(sp.isSpy()) {
sp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName())
.replace("{player_receiver}", player.getName()));
}
}
}
mcp.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION.toString()
.replace("{player_receiver}", player.getName()));
}
}
}
return;
}
}