mirror of
				https://github.com/Aust1n46/VentureChat.git
				synced 2025-10-30 13:32:24 +00:00 
			
		
		
		
	Added networking for BungeeCord /mute.
This commit is contained in:
		
							parent
							
								
									241fe7a319
								
							
						
					
					
						commit
						1da382bb38
					
				| @ -899,6 +899,149 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { | ||||
| 					this.synchronize(p, true); | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Mute")) { | ||||
| 				String identifier = msgin.readUTF(); | ||||
| 				if(identifier.equals("Send")) { | ||||
| 					String server = msgin.readUTF(); | ||||
| 					String senderIdentifier = msgin.readUTF(); | ||||
| 					String temporaryDataInstanceUUIDString = msgin.readUTF(); | ||||
| 					String playerToMute = msgin.readUTF(); | ||||
| 					String channelName = msgin.readUTF(); | ||||
| 					long time = msgin.readLong(); | ||||
| 					MineverseChatPlayer playerToMuteMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(playerToMute); | ||||
| 					if(playerToMuteMCP == null) { | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("Offline"); | ||||
| 						out.writeUTF(server); | ||||
| 						out.writeUTF(temporaryDataInstanceUUIDString); | ||||
| 						out.writeUTF(senderIdentifier); | ||||
| 						out.writeUTF(playerToMute); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 						return; | ||||
| 					} | ||||
| 					if(!ChatChannel.isChannel(channelName)) { | ||||
| 						return; | ||||
| 					} | ||||
| 					ChatChannel chatChannelObj = ChatChannel.getChannel(channelName); | ||||
| 					if (playerToMuteMCP.isMuted(chatChannelObj.getName())) { | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("AlreadyMuted"); | ||||
| 						out.writeUTF(server); | ||||
| 						out.writeUTF(senderIdentifier); | ||||
| 						out.writeUTF(playerToMute); | ||||
| 						out.writeUTF(channelName); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 						return; | ||||
| 					} | ||||
| 					if(time > 0) { | ||||
| 						playerToMuteMCP.addMute(chatChannelObj.getName(), time); | ||||
| 						String timeString = Format.parseTimeStringFromMillis(time); | ||||
| 						playerToMuteMCP.getPlayer() | ||||
| 								.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() | ||||
| 								.replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 								.replace("{channel_name}", chatChannelObj.getName()) | ||||
| 								.replace("{time}", timeString)); | ||||
| 					} | ||||
| 					else { | ||||
| 						playerToMuteMCP.addMute(chatChannelObj.getName(), 0); | ||||
| 						playerToMuteMCP.getPlayer() | ||||
| 								.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString() | ||||
| 								.replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 								.replace("{channel_name}", chatChannelObj.getName()));	 | ||||
| 					} | ||||
| 					synchronize(playerToMuteMCP, true); | ||||
| 					out.writeUTF("Mute"); | ||||
| 					out.writeUTF("Valid"); | ||||
| 					out.writeUTF(server); | ||||
| 					out.writeUTF(senderIdentifier); | ||||
| 					out.writeUTF(playerToMute); | ||||
| 					out.writeUTF(channelName); | ||||
| 					out.writeLong(time); | ||||
| 					player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					return; | ||||
| 				} | ||||
| 				if(identifier.equals("Valid")) { | ||||
| 					String senderIdentifier = msgin.readUTF(); | ||||
| 					String playerToMute = msgin.readUTF(); | ||||
| 					String channelName = msgin.readUTF(); | ||||
| 					long time = msgin.readLong(); | ||||
| 					if(!ChatChannel.isChannel(channelName)) { | ||||
| 						return; | ||||
| 					} | ||||
| 					ChatChannel chatChannelObj = ChatChannel.getChannel(channelName); | ||||
| 					if(time > 0) { | ||||
| 						String timeString = Format.parseTimeStringFromMillis(time); | ||||
| 						if(senderIdentifier.equals("VentureChat:Console")) { | ||||
| 							Bukkit.getConsoleSender().sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() | ||||
| 									.replace("{player}", playerToMute) | ||||
| 									.replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 									.replace("{channel_name}", chatChannelObj.getName()) | ||||
| 									.replace("{time}", timeString)); | ||||
| 						} | ||||
| 						else { | ||||
| 							UUID sender = UUID.fromString(senderIdentifier); | ||||
| 							MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender); | ||||
| 							senderMCP.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() | ||||
| 									.replace("{player}", playerToMute) | ||||
| 									.replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 									.replace("{channel_name}", chatChannelObj.getName()) | ||||
| 									.replace("{time}", timeString)); | ||||
| 						} | ||||
| 					} | ||||
| 					else { | ||||
| 						if(senderIdentifier.equals("VentureChat:Console")) { | ||||
| 							Bukkit.getConsoleSender().sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() | ||||
| 									.replace("{player}", playerToMute) | ||||
| 									.replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 									.replace("{channel_name}", chatChannelObj.getName())); | ||||
| 						} | ||||
| 						else { | ||||
| 							UUID sender = UUID.fromString(senderIdentifier); | ||||
| 							MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender); | ||||
| 							senderMCP.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() | ||||
| 									.replace("{player}", playerToMute) | ||||
| 									.replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 									.replace("{channel_name}", chatChannelObj.getName())); | ||||
| 						} | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(identifier.equals("Offline")) { | ||||
| 					String senderIdentifier = msgin.readUTF(); | ||||
| 					String playerToMute = msgin.readUTF(); | ||||
| 					if(senderIdentifier.equals("VentureChat:Console")) { | ||||
| 						Bukkit.getConsoleSender().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() | ||||
| 								.replace("{args}", playerToMute)); | ||||
| 						return; | ||||
| 					} | ||||
| 					UUID sender = UUID.fromString(senderIdentifier); | ||||
| 					MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender); | ||||
| 					senderMCP.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString() | ||||
| 							.replace("{args}", playerToMute)); | ||||
| 					return; | ||||
| 				} | ||||
| 				if(identifier.equals("AlreadyMuted")) { | ||||
| 					String senderIdentifier = msgin.readUTF(); | ||||
| 					String playerToMute = msgin.readUTF(); | ||||
| 					String channelName = msgin.readUTF(); | ||||
| 					if(!ChatChannel.isChannel(channelName)) { | ||||
| 						return; | ||||
| 					} | ||||
| 					ChatChannel chatChannelObj = ChatChannel.getChannel(channelName); | ||||
| 					if(senderIdentifier.equals("VentureChat:Console")) { | ||||
| 						Bukkit.getConsoleSender().sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() | ||||
| 								.replace("{player}", playerToMute).replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 								.replace("{channel_name}", chatChannelObj.getName())); | ||||
| 						return; | ||||
| 					} | ||||
| 					UUID sender = UUID.fromString(senderIdentifier); | ||||
| 					MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender); | ||||
| 					senderMCP.getPlayer().sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() | ||||
| 							.replace("{player}", playerToMute).replace("{channel_color}", chatChannelObj.getColor()) | ||||
| 							.replace("{channel_name}", chatChannelObj.getName())); | ||||
| 					return; | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Message")) { | ||||
| 				String identifier = msgin.readUTF(); | ||||
| 				if(identifier.equals("Send")) { | ||||
| @ -912,7 +1055,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { | ||||
| 					String echo = msgin.readUTF(); | ||||
| 					String spy = msgin.readUTF(); | ||||
| 					String msg = msgin.readUTF(); | ||||
| 					if(!this.getConfig().getBoolean("bungeecordmessaging", true) || p == null || !p.isOnline()) { | ||||
| 					if(!this.getConfig().getBoolean("bungeecordmessaging", true) || p == null) { | ||||
| 						out.writeUTF("Message"); | ||||
| 						out.writeUTF("Offline"); | ||||
| 						out.writeUTF(server); | ||||
| @ -1018,313 +1161,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Mute")) { | ||||
| 				String sendplayer = msgin.readUTF(); | ||||
| 				String mutePlayer = msgin.readUTF(); | ||||
| 				String chatchannel = msgin.readUTF(); | ||||
| 				String server = msgin.readUTF(); | ||||
| 				String time = msgin.readUTF(); | ||||
| 				int numtime = 0; | ||||
| 				MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mutePlayer); | ||||
| 				ChatChannel cc = ChatChannel.getChannel(chatchannel); | ||||
| 				if(cc == null) { | ||||
| 					try { | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("Channel"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(chatchannel); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(p == null) { | ||||
| 					try { | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("Player"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(mutePlayer); | ||||
| 						out.writeUTF(server); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(!cc.isMutable()) { | ||||
| 					try { | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("Mutable"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(cc.getName()); | ||||
| 						out.writeUTF(cc.getColor()); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(p.isMuted(cc.getName())) { | ||||
| 					try { | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("Already"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(mutePlayer); | ||||
| 						out.writeUTF(cc.getName()); | ||||
| 						out.writeUTF(cc.getColor()); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(!time.equals("None\n")) { | ||||
| 					try { | ||||
| 						numtime = Integer.parseInt(time); | ||||
| 						if(numtime > 0) { | ||||
| 							Calendar currentDate = Calendar.getInstance(); | ||||
| 							SimpleDateFormat formatter = new SimpleDateFormat("dd:HH:mm:ss"); | ||||
| 							String date = formatter.format(currentDate.getTime()); | ||||
| 							String[] datearray = date.split(":"); | ||||
| 							int datetime = (Integer.parseInt(datearray[0]) * 1440) + (Integer.parseInt(datearray[1]) * 60) + (Integer.parseInt(datearray[2])); | ||||
| 							p.addMute(cc.getName(), datetime + numtime); | ||||
| 							String keyword = "minutes"; | ||||
| 							if(numtime == 1) keyword = "minute"; | ||||
| 							if(p.isOnline()) p.getPlayer().sendMessage(ChatColor.RED + "You have just been muted in: " + ChatColor.valueOf(cc.getColor().toUpperCase()) + cc.getName() + ChatColor.RED + " for " + time + " " + keyword); | ||||
| 							else p.setModified(true); | ||||
| 							if(cc.getBungee()) { | ||||
| 								MineverseChat.getInstance().synchronize(p, true); | ||||
| 							} | ||||
| 							try { | ||||
| 								out.writeUTF("Mute"); | ||||
| 								out.writeUTF("Valid"); | ||||
| 								out.writeUTF(sendplayer); | ||||
| 								out.writeUTF(mutePlayer); | ||||
| 								out.writeUTF(cc.getName()); | ||||
| 								out.writeUTF(cc.getColor()); | ||||
| 								out.writeUTF(time); | ||||
| 								player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 							} | ||||
| 							catch(Exception e) { | ||||
| 								e.printStackTrace(); | ||||
| 							} | ||||
| 							return; | ||||
| 						} | ||||
| 						try { | ||||
| 							out.writeUTF("Mute"); | ||||
| 							out.writeUTF("Time"); | ||||
| 							out.writeUTF(sendplayer); | ||||
| 							out.writeUTF(time); | ||||
| 							player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 						} | ||||
| 						catch(Exception e) { | ||||
| 							e.printStackTrace(); | ||||
| 						} | ||||
| 						return; | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						try { | ||||
| 							out.writeUTF("Mute"); | ||||
| 							out.writeUTF("Time"); | ||||
| 							out.writeUTF(sendplayer); | ||||
| 							out.writeUTF(time); | ||||
| 							player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 						} | ||||
| 						catch(Exception e1) { | ||||
| 							e1.printStackTrace(); | ||||
| 						} | ||||
| 						return; | ||||
| 					} | ||||
| 				} | ||||
| 				p.addMute(cc.getName(), 0); | ||||
| 				if(p.isOnline()) p.getPlayer().sendMessage(ChatColor.RED + "You have just been muted in: " + ChatColor.valueOf(cc.getColor().toUpperCase()) + cc.getName()); | ||||
| 				else p.setModified(true); | ||||
| 				if(cc.getBungee()) { | ||||
| 					MineverseChat.getInstance().synchronize(p, true); | ||||
| 				} | ||||
| 				try { | ||||
| 					out.writeUTF("Mute"); | ||||
| 					out.writeUTF("Valid"); | ||||
| 					out.writeUTF(sendplayer); | ||||
| 					out.writeUTF(mutePlayer); | ||||
| 					out.writeUTF(cc.getName()); | ||||
| 					out.writeUTF(cc.getColor()); | ||||
| 					out.writeUTF(time); | ||||
| 					player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 				} | ||||
| 				catch(Exception e) { | ||||
| 					e.printStackTrace(); | ||||
| 				} | ||||
| 				return; | ||||
| 			} | ||||
| 			if(subchannel.equals("Muteall")) { | ||||
| 				String sendplayer = msgin.readUTF(); | ||||
| 				String muteplayer = msgin.readUTF(); | ||||
| 				String server = msgin.readUTF(); | ||||
| 				Player mp = Bukkit.getPlayer(muteplayer); | ||||
| 				MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mp); | ||||
| 				if(mp == null) { | ||||
| 					try { | ||||
| 						out.writeUTF("Muteall"); | ||||
| 						out.writeUTF("Player"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(muteplayer); | ||||
| 						out.writeUTF(server); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				boolean bungee = false; | ||||
| 				for(ChatChannel c : ChatChannel.getChannels()) { | ||||
| 					if(c.isMutable()) { | ||||
| 						p.addMute(c.getName(), 0); | ||||
| 						if(c.getBungee()) { | ||||
| 							bungee = true; | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 				if(bungee) { | ||||
| 					MineverseChat.getInstance().synchronize(p, true); | ||||
| 				} | ||||
| 				if(p.isOnline()) { | ||||
| 					p.getPlayer().sendMessage(ChatColor.RED + "You have just been muted in all channels."); | ||||
| 				} | ||||
| 				else p.setModified(true); | ||||
| 				try { | ||||
| 					out.writeUTF("Muteall"); | ||||
| 					out.writeUTF("Valid"); | ||||
| 					out.writeUTF(sendplayer); | ||||
| 					out.writeUTF(muteplayer); | ||||
| 					player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 				} | ||||
| 				catch(Exception e) { | ||||
| 					e.printStackTrace(); | ||||
| 				} | ||||
| 				return; | ||||
| 			} | ||||
| 			if(subchannel.equals("Unmuteall")) { | ||||
| 				String sendplayer = msgin.readUTF(); | ||||
| 				String muteplayer = msgin.readUTF(); | ||||
| 				String server = msgin.readUTF(); | ||||
| 				Player mp = Bukkit.getPlayer(muteplayer); | ||||
| 				MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mp); | ||||
| 				if(mp == null) { | ||||
| 					try { | ||||
| 						out.writeUTF("Unmuteall"); | ||||
| 						out.writeUTF("Player"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(muteplayer); | ||||
| 						out.writeUTF(server); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				boolean bungee = false; | ||||
| 				for(ChatChannel c : ChatChannel.getChannels()) { | ||||
| 					p.removeMute(c.getName()); | ||||
| 					if(c.getBungee()) { | ||||
| 						bungee = true; | ||||
| 					} | ||||
| 				} | ||||
| 				if(bungee) { | ||||
| 					MineverseChat.getInstance().synchronize(p, true); | ||||
| 				} | ||||
| 				if(p.isOnline()) { | ||||
| 					p.getPlayer().sendMessage(ChatColor.RED + "You have just been unmuted in all channels."); | ||||
| 				} | ||||
| 				else p.setModified(true); | ||||
| 				try { | ||||
| 					out.writeUTF("Unmuteall"); | ||||
| 					out.writeUTF("Valid"); | ||||
| 					out.writeUTF(sendplayer); | ||||
| 					out.writeUTF(muteplayer); | ||||
| 					player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 				} | ||||
| 				catch(Exception e) { | ||||
| 					e.printStackTrace(); | ||||
| 				} | ||||
| 				return; | ||||
| 			} | ||||
| 			if(subchannel.equals("Unmute")) { | ||||
| 				String sendplayer = msgin.readUTF(); | ||||
| 				String mutePlayer = msgin.readUTF(); | ||||
| 				String chatchannel = msgin.readUTF(); | ||||
| 				String server = msgin.readUTF(); | ||||
| 				MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mutePlayer); | ||||
| 				ChatChannel cc = ChatChannel.getChannel(chatchannel); | ||||
| 				if(cc == null) { | ||||
| 					try { | ||||
| 						out.writeUTF("Unmute"); | ||||
| 						out.writeUTF("Channel"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(chatchannel); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(p == null) { | ||||
| 					try { | ||||
| 						out.writeUTF("Unmute"); | ||||
| 						out.writeUTF("Player"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(mutePlayer); | ||||
| 						out.writeUTF(server); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				if(!p.isMuted(cc.getName())) { | ||||
| 					try { | ||||
| 						out.writeUTF("Unmute"); | ||||
| 						out.writeUTF("Already"); | ||||
| 						out.writeUTF(sendplayer); | ||||
| 						out.writeUTF(mutePlayer); | ||||
| 						out.writeUTF(cc.getName()); | ||||
| 						out.writeUTF(cc.getColor()); | ||||
| 						player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 					} | ||||
| 					catch(Exception e) { | ||||
| 						e.printStackTrace(); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				p.removeMute(cc.getName()); | ||||
| 				if(p.isOnline()) p.getPlayer().sendMessage(ChatColor.RED + "You have just been unmuted in: " + ChatColor.valueOf(cc.getColor().toUpperCase()) + cc.getName()); | ||||
| 				else p.setModified(true); | ||||
| 				if(cc.getBungee()) { | ||||
| 					MineverseChat.getInstance().synchronize(p, true); | ||||
| 				} | ||||
| 				try { | ||||
| 					out.writeUTF("Unmute"); | ||||
| 					out.writeUTF("Valid"); | ||||
| 					out.writeUTF(sendplayer); | ||||
| 					out.writeUTF(mutePlayer); | ||||
| 					out.writeUTF(cc.getName()); | ||||
| 					out.writeUTF(cc.getColor()); | ||||
| 					player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); | ||||
| 				} | ||||
| 				catch(Exception e) { | ||||
| 					e.printStackTrace(); | ||||
| 				} | ||||
| 				return; | ||||
| 			} | ||||
| 		} | ||||
| 		catch(Exception e) { | ||||
| 			e.printStackTrace(); | ||||
|  | ||||
| @ -17,9 +17,8 @@ import mineverse.Aust1n46.chat.bungee.command.GlobalMuteAll; | ||||
| import mineverse.Aust1n46.chat.bungee.command.GlobalUnmute; | ||||
| import mineverse.Aust1n46.chat.bungee.command.GlobalUnmuteAll; | ||||
| import mineverse.Aust1n46.chat.database.BungeePlayerData; | ||||
| import mineverse.Aust1n46.chat.database.TemporaryDataInstance; | ||||
| import mineverse.Aust1n46.chat.utilities.UUIDFetcher; | ||||
| import net.md_5.bungee.api.ChatColor; | ||||
| import net.md_5.bungee.api.chat.TextComponent; | ||||
| import net.md_5.bungee.api.connection.ProxiedPlayer; | ||||
| import net.md_5.bungee.api.connection.Server; | ||||
| import net.md_5.bungee.api.event.PluginMessageEvent; | ||||
| @ -309,6 +308,84 @@ public class MineverseChatBungee extends Plugin implements Listener { | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Mute")) { | ||||
| 				String identifier = in.readUTF(); | ||||
| 				if(identifier.equals("Send")) { | ||||
| 					String server = ser.getInfo().getName(); | ||||
| 					String senderIdentifier = in.readUTF(); | ||||
| 					String playerToMute = in.readUTF(); | ||||
| 					String channelName = in.readUTF(); | ||||
| 					long time = in.readLong(); | ||||
| 					UUID temporaryDataInstanceUUID = TemporaryDataInstance.createTemporaryDataInstance(); | ||||
| 					out.writeUTF("Mute"); | ||||
| 					out.writeUTF("Send"); | ||||
| 					out.writeUTF(server); | ||||
| 					out.writeUTF(senderIdentifier); | ||||
| 					out.writeUTF(temporaryDataInstanceUUID.toString()); | ||||
| 					out.writeUTF(playerToMute); | ||||
| 					out.writeUTF(channelName); | ||||
| 					out.writeLong(time); | ||||
| 					for(String send : getProxy().getServers().keySet()) { | ||||
| 						if(getProxy().getServers().get(send).getPlayers().size() > 0) { | ||||
| 							getProxy().getServers().get(send).sendData(MineverseChatBungee.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray()); | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 				if(identifier.equals("Valid")) { | ||||
| 					String server = in.readUTF(); | ||||
| 					String senderIdentifier = in.readUTF(); | ||||
| 					String playerToMute = in.readUTF(); | ||||
| 					String channelName = in.readUTF(); | ||||
| 					long time = in.readLong(); | ||||
| 					out.writeUTF("Mute"); | ||||
| 					out.writeUTF("Valid"); | ||||
| 					out.writeUTF(senderIdentifier); | ||||
| 					out.writeUTF(playerToMute); | ||||
| 					out.writeUTF(channelName); | ||||
| 					out.writeLong(time); | ||||
| 					if(getProxy().getServers().get(server).getPlayers().size() > 0) { | ||||
| 						getProxy().getServers().get(server).sendData(MineverseChatBungee.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray()); | ||||
| 					} | ||||
| 				} | ||||
| 				if(identifier.equals("Offline")) { | ||||
| 					String server = in.readUTF(); | ||||
| 					UUID temporaryDataInstanceUUID = UUID.fromString(in.readUTF()); | ||||
| 					String senderIdentifier = in.readUTF(); | ||||
| 					String playerToMute = in.readUTF(); | ||||
| 					TemporaryDataInstance temporaryDataInstance = TemporaryDataInstance.getTemporaryDataInstance(temporaryDataInstanceUUID); | ||||
| 					temporaryDataInstance.incrementMessagePackets(); | ||||
| 					int servers = 0; | ||||
| 					for(String send : getProxy().getServers().keySet()) { | ||||
| 						if(getProxy().getServers().get(send).getPlayers().size() > 0) { | ||||
| 							servers ++; | ||||
| 						} | ||||
| 					} | ||||
| 					if(temporaryDataInstance.getMessagePackets() >= servers) { | ||||
| 						temporaryDataInstance.destroyInstance(); | ||||
| 						out.writeUTF("Mute"); | ||||
| 						out.writeUTF("Offline"); | ||||
| 						out.writeUTF(senderIdentifier); | ||||
| 						out.writeUTF(playerToMute); | ||||
| 						if(getProxy().getServers().get(server).getPlayers().size() > 0) { | ||||
| 							getProxy().getServers().get(server).sendData(MineverseChatBungee.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray()); | ||||
| 						} | ||||
| 					}	 | ||||
| 				} | ||||
| 				if(identifier.equals("AlreadyMuted")) { | ||||
| 					String server = in.readUTF(); | ||||
| 					String senderIdentifier = in.readUTF(); | ||||
| 					String playerToMute = in.readUTF(); | ||||
| 					String channelName = in.readUTF(); | ||||
| 					out.writeUTF("Mute"); | ||||
| 					out.writeUTF("AlreadyMuted"); | ||||
| 					out.writeUTF(senderIdentifier); | ||||
| 					out.writeUTF(playerToMute); | ||||
| 					out.writeUTF(channelName); | ||||
| 					if(getProxy().getServers().get(server).getPlayers().size() > 0) { | ||||
| 						getProxy().getServers().get(server).sendData(MineverseChatBungee.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray()); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Message")) { | ||||
| 				String identifier = in.readUTF(); | ||||
| 				if(identifier.equals("Send")) { | ||||
| @ -489,124 +566,6 @@ public class MineverseChatBungee extends Plugin implements Listener { | ||||
| 					smcp.setMessageToggle(in.readBoolean()); | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Mute")) { | ||||
| 				String identifier = in.readUTF(); | ||||
| 				if(identifier.equals("Channel")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Invalid channel: " + channel)); | ||||
| 				} | ||||
| 				if(identifier.equals("Player")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String server = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Player: " + ChatColor.GOLD + muteplayer + ChatColor.RED + " is not connected to server: " + server)); | ||||
| 				} | ||||
| 				if(identifier.equals("Mutable")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					String color = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "You cannot mute players in this channel: " + ChatColor.valueOf(color.toUpperCase()) + channel)); | ||||
| 				} | ||||
| 				if(identifier.equals("Already")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					String color = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.GOLD + muteplayer + ChatColor.RED + " is already muted in channel: " + ChatColor.valueOf(color.toUpperCase()) + channel)); | ||||
| 				} | ||||
| 				if(identifier.equals("Time")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					String color = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Muted player " + ChatColor.GOLD + muteplayer + ChatColor.RED + " in: " + ChatColor.valueOf(color.toUpperCase()) + channel)); | ||||
| 				} | ||||
| 				if(identifier.equals("Valid")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					String color = in.readUTF(); | ||||
| 					String time = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					String timedmute = ""; | ||||
| 					if(!time.equals("None\n")) { | ||||
| 						String keyword = "minutes"; | ||||
| 						if(time.equals("1")) keyword = "minute"; | ||||
| 						timedmute = ChatColor.RED + " for " + time + " " + keyword; | ||||
| 					} | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Muted player " + ChatColor.GOLD + muteplayer + ChatColor.RED + " in: " + ChatColor.valueOf(color.toUpperCase()) + channel + timedmute)); | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Muteall")) { | ||||
| 				String identifier = in.readUTF(); | ||||
| 				if(identifier.equals("Player")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String server = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Player: " + ChatColor.GOLD + muteplayer + ChatColor.RED + " is not connected to server: " + server)); | ||||
| 				} | ||||
| 				if(identifier.equals("Valid")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Muted player " + ChatColor.GOLD + muteplayer + ChatColor.RED + " in all channels.")); | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Unmuteall")) { | ||||
| 				String identifier = in.readUTF(); | ||||
| 				if(identifier.equals("Player")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String server = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Player: " + ChatColor.GOLD + muteplayer + ChatColor.RED + " is not connected to server: " + server)); | ||||
| 				} | ||||
| 				if(identifier.equals("Valid")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Unmuted player " + ChatColor.GOLD + muteplayer + ChatColor.RED + " in all channels.")); | ||||
| 				} | ||||
| 			} | ||||
| 			if(subchannel.equals("Unmute")) { | ||||
| 				String identifier = in.readUTF(); | ||||
| 				if(identifier.equals("Channel")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Invalid channel: " + channel)); | ||||
| 				} | ||||
| 				if(identifier.equals("Player")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String server = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Player: " + ChatColor.GOLD + muteplayer + ChatColor.RED + " is not connected to server: " + server)); | ||||
| 				} | ||||
| 				if(identifier.equals("Already")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					String color = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.GOLD + muteplayer + ChatColor.RED + " is not muted in channel: " + ChatColor.valueOf(color.toUpperCase()) + channel)); | ||||
| 				} | ||||
| 				if(identifier.equals("Valid")) { | ||||
| 					String player = in.readUTF(); | ||||
| 					String muteplayer = in.readUTF(); | ||||
| 					String channel = in.readUTF(); | ||||
| 					String color = in.readUTF(); | ||||
| 					ProxiedPlayer p = getProxy().getPlayer(player); | ||||
| 					p.sendMessage(new TextComponent(ChatColor.RED + "Unmuted player " + ChatColor.GOLD + muteplayer + ChatColor.RED + " in: " + ChatColor.valueOf(color.toUpperCase()) + channel)); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		catch(Exception e) { | ||||
| 			e.printStackTrace(); | ||||
|  | ||||
| @ -1,5 +1,8 @@ | ||||
| package mineverse.Aust1n46.chat.command; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.bukkit.command.Command; | ||||
| import org.bukkit.command.CommandSender; | ||||
| 
 | ||||
| //This class is the parent class of all of the plugins commands.  The execute method runs the command. | ||||
| @ -13,8 +16,12 @@ public abstract class MineverseCommand { | ||||
| 	} | ||||
| 
 | ||||
| 	public abstract void execute(CommandSender sender, String command, String[] args); | ||||
| 
 | ||||
| 	 | ||||
| 	public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { | ||||
| 		return null; | ||||
| 	} | ||||
| 	 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -1,13 +1,14 @@ | ||||
| package mineverse.Aust1n46.chat.command; | ||||
| 
 | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| import org.bukkit.command.Command; | ||||
| import org.bukkit.command.CommandExecutor; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.command.TabExecutor; | ||||
| 
 | ||||
| //This class is a standard command executor that is used to run the MineverseCommand's. | ||||
| public class MineverseCommandExecutor implements CommandExecutor { | ||||
| public class MineverseCommandExecutor implements TabExecutor { | ||||
| 	private Map<String, MineverseCommand> commands; | ||||
| 
 | ||||
| 	public MineverseCommandExecutor(Map<String, MineverseCommand> commands) { | ||||
| @ -16,12 +17,12 @@ public class MineverseCommandExecutor implements CommandExecutor { | ||||
| 
 | ||||
| 	@Override | ||||
| 	public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { | ||||
| 		for(String com : commands.keySet()) { | ||||
| 			if(command.getName().equalsIgnoreCase(com)) { | ||||
| 				commands.get(com).execute(sender, command.getName(), parameters); | ||||
| 				return true; | ||||
| 			} | ||||
| 		} | ||||
| 		return false; | ||||
| 		commands.get(command.getName()).execute(sender, command.getName(), parameters); | ||||
| 		return true; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 	@Override | ||||
| 	public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { | ||||
| 		return commands.get(command.getName()).onTabComplete(sender, command, label, args); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -1,6 +1,15 @@ | ||||
| package mineverse.Aust1n46.chat.command.mute; | ||||
| 
 | ||||
| import java.io.ByteArrayOutputStream; | ||||
| import java.io.DataOutputStream; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.bukkit.command.Command; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.entity.Player; | ||||
| import org.bukkit.util.StringUtil; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.api.MineverseChatAPI; | ||||
| @ -11,6 +20,7 @@ import mineverse.Aust1n46.chat.localization.LocalizedMessage; | ||||
| import mineverse.Aust1n46.chat.utilities.Format; | ||||
| 
 | ||||
| public class Mute extends MineverseCommand { | ||||
| 	private MineverseChat plugin = MineverseChat.getInstance(); | ||||
| 
 | ||||
| 	public Mute(String name) { | ||||
| 		super(name); | ||||
| @ -24,86 +34,81 @@ public class Mute extends MineverseCommand { | ||||
| 						.replace("{args}", "[player] [channel] {time}")); | ||||
| 				return; | ||||
| 			} | ||||
| 			MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); | ||||
| 			if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { | ||||
| 				sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); | ||||
| 				return; | ||||
| 			} | ||||
| 			if (args.length == 2) { | ||||
| 				if (ChatChannel.isChannel(args[1])) { | ||||
| 					ChatChannel channel = ChatChannel.getChannel(args[1]); | ||||
| 					if (player.isMuted(channel.getName())) { | ||||
| 						sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() | ||||
| 								.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) | ||||
| 								.replace("{channel_name}", channel.getName())); | ||||
| 						return; | ||||
| 					} | ||||
| 					if (channel.isMutable()) { | ||||
| 						player.addMute(channel.getName(), 0); | ||||
| 						sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() | ||||
| 								.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) | ||||
| 								.replace("{channel_name}", channel.getName())); | ||||
| 						if (player.isOnline()) | ||||
| 							player.getPlayer() | ||||
| 									.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString() | ||||
| 											.replace("{channel_color}", channel.getColor()) | ||||
| 											.replace("{channel_name}", channel.getName())); | ||||
| 						else | ||||
| 							player.setModified(true); | ||||
| 						if (channel.getBungee()) { | ||||
| 							MineverseChat.getInstance().synchronize(player, true); | ||||
| 						} | ||||
| 						return; | ||||
| 					} | ||||
| 					sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() | ||||
| 							.replace("{channel_color}", channel.getColor()) | ||||
| 							.replace("{channel_name}", channel.getName())); | ||||
| 					return; | ||||
| 				} | ||||
| 				sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1])); | ||||
| 				return; | ||||
| 			} | ||||
| 			if (ChatChannel.isChannel(args[1])) { | ||||
| 				ChatChannel channel = ChatChannel.getChannel(args[1]); | ||||
| 				if (player.isMuted(channel.getName())) { | ||||
| 					sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() | ||||
| 							.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor()) | ||||
| 							.replace("{channel_name}", channel.getName())); | ||||
| 					return; | ||||
| 				} | ||||
| 				if (channel.isMutable()) { | ||||
| 					try { | ||||
| 						long datetime = System.currentTimeMillis(); | ||||
| 						long time = Format.parseTimeStringToMillis(args[2]); | ||||
| 						if (time > 0) { | ||||
| 							player.addMute(channel.getName(), datetime + time); | ||||
| 							String timeString = Format.parseTimeStringFromMillis(time); | ||||
| 							sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() | ||||
| 									.replace("{player}", player.getName()) | ||||
| 									.replace("{channel_color}", channel.getColor()) | ||||
| 									.replace("{channel_name}", channel.getName()) | ||||
| 									.replace("{time}", timeString)); | ||||
| 							if (player.isOnline()) | ||||
| 								player.getPlayer() | ||||
| 										.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() | ||||
| 												.replace("{channel_color}", channel.getColor()) | ||||
| 												.replace("{channel_name}", channel.getName()) | ||||
| 												.replace("{time}", timeString)); | ||||
| 							else | ||||
| 								player.setModified(true); | ||||
| 							if (channel.getBungee()) { | ||||
| 								MineverseChat.getInstance().synchronize(player, true); | ||||
| 					long datetime = System.currentTimeMillis(); | ||||
| 					long time = 0; | ||||
| 					if(args.length > 2) { | ||||
| 						try { | ||||
| 							time = Format.parseTimeStringToMillis(args[2]); | ||||
| 							if (time <= 0) { | ||||
| 								sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | ||||
| 								return; | ||||
| 							} | ||||
| 						}  | ||||
| 						catch (Exception e) { | ||||
| 							sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | ||||
| 							return; | ||||
| 						} | ||||
| 						sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | ||||
| 					} catch (Exception e) { | ||||
| 						sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | ||||
| 					} | ||||
| 					if(channel.getBungee()) { | ||||
| 						if(args.length > 2) { | ||||
| 							sendBungeeCordMute(sender, args[0], channel, datetime + time); | ||||
| 							return; | ||||
| 						} | ||||
| 						sendBungeeCordMute(sender, args[0], channel, 0); | ||||
| 						return; | ||||
| 					} | ||||
| 					MineverseChatPlayer playerToMute = MineverseChatAPI.getMineverseChatPlayer(args[0]); | ||||
| 					if (playerToMute == null || (!playerToMute.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) { | ||||
| 						sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0])); | ||||
| 						return; | ||||
| 					} | ||||
| 					if (playerToMute.isMuted(channel.getName())) { | ||||
| 						sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() | ||||
| 								.replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor()) | ||||
| 								.replace("{channel_name}", channel.getName())); | ||||
| 						return; | ||||
| 					} | ||||
| 					if(args.length > 2) { | ||||
| 						playerToMute.addMute(channel.getName(), datetime + time); | ||||
| 						String timeString = Format.parseTimeStringFromMillis(time); | ||||
| 						sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() | ||||
| 								.replace("{player}", playerToMute.getName()) | ||||
| 								.replace("{channel_color}", channel.getColor()) | ||||
| 								.replace("{channel_name}", channel.getName()) | ||||
| 								.replace("{time}", timeString)); | ||||
| 						if (playerToMute.isOnline()) { | ||||
| 							playerToMute.getPlayer() | ||||
| 									.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() | ||||
| 											.replace("{channel_color}", channel.getColor()) | ||||
| 											.replace("{channel_name}", channel.getName()) | ||||
| 											.replace("{time}", timeString)); | ||||
| 						} | ||||
| 						else { | ||||
| 							playerToMute.setModified(true); | ||||
| 						} | ||||
| 						return; | ||||
| 					} | ||||
| 					playerToMute.addMute(channel.getName(), 0); | ||||
| 					sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() | ||||
| 							.replace("{player}", playerToMute.getName()).replace("{channel_color}", channel.getColor()) | ||||
| 							.replace("{channel_name}", channel.getName())); | ||||
| 					if (playerToMute.isOnline()) { | ||||
| 						playerToMute.getPlayer() | ||||
| 								.sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString() | ||||
| 										.replace("{channel_color}", channel.getColor()) | ||||
| 										.replace("{channel_name}", channel.getName())); | ||||
| 					} | ||||
| 					else { | ||||
| 						playerToMute.setModified(true); | ||||
| 					} | ||||
| 					return; | ||||
| 				} | ||||
| 				sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() | ||||
| 						.replace("{channel_color}", channel.getColor()).replace("{channel_name}", channel.getName())); | ||||
| 						.replace("{channel_color}", channel.getColor()) | ||||
| 						.replace("{channel_name}", channel.getName())); | ||||
| 				return; | ||||
| 			} | ||||
| 			sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1])); | ||||
| @ -111,4 +116,36 @@ public class Mute extends MineverseCommand { | ||||
| 		} | ||||
| 		sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { | ||||
| 		List<String> completions = new ArrayList<>(); | ||||
| 		StringUtil.copyPartialMatches(args[args.length - 1], MineverseChat.networkPlayerNames, completions); | ||||
| 		completions.add("tester"); | ||||
| 		Collections.sort(completions); | ||||
|         return completions; | ||||
| 	} | ||||
| 	 | ||||
| 	private void sendBungeeCordMute(CommandSender sender, String playerToMute, ChatChannel channel, long time) { | ||||
| 		ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); | ||||
| 		DataOutputStream out = new DataOutputStream(byteOutStream); | ||||
| 		try { | ||||
| 			out.writeUTF("Mute"); | ||||
| 			out.writeUTF("Send"); | ||||
| 			if(sender instanceof Player) { | ||||
| 				out.writeUTF(((Player) sender).getUniqueId().toString()); | ||||
| 			} | ||||
| 			else { | ||||
| 				out.writeUTF("VentureChat:Console"); | ||||
| 			} | ||||
| 			out.writeUTF(playerToMute); | ||||
| 			out.writeUTF(channel.getName()); | ||||
| 			out.writeLong(time); | ||||
| 			plugin.getServer().getOnlinePlayers().iterator().next().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); | ||||
| 			out.close(); | ||||
| 		} | ||||
| 		catch(Exception e) { | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -0,0 +1,37 @@ | ||||
| package mineverse.Aust1n46.chat.database; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.UUID; | ||||
| 
 | ||||
| public class TemporaryDataInstance { | ||||
| 	private int messagePackets; | ||||
| 	private UUID uuid; | ||||
| 
 | ||||
| 	private static HashMap<UUID, TemporaryDataInstance> temporaryDataInstances = new HashMap<UUID, TemporaryDataInstance>(); | ||||
| 
 | ||||
| 	private TemporaryDataInstance(UUID uuid) { | ||||
| 		this.uuid = uuid; | ||||
| 	} | ||||
| 
 | ||||
| 	public static UUID createTemporaryDataInstance() { | ||||
| 		UUID uuid = UUID.randomUUID(); | ||||
| 		temporaryDataInstances.put(uuid, new TemporaryDataInstance(uuid)); | ||||
| 		return uuid; | ||||
| 	} | ||||
| 
 | ||||
| 	public static TemporaryDataInstance getTemporaryDataInstance(UUID uuid) { | ||||
| 		return temporaryDataInstances.get(uuid); | ||||
| 	} | ||||
| 
 | ||||
| 	public int getMessagePackets() { | ||||
| 		return this.messagePackets; | ||||
| 	} | ||||
| 
 | ||||
| 	public void incrementMessagePackets() { | ||||
| 		this.messagePackets++; | ||||
| 	} | ||||
| 
 | ||||
| 	public void destroyInstance() { | ||||
| 		temporaryDataInstances.remove(uuid); | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Aust1n46
						Aust1n46