mirror of
				https://github.com/Aust1n46/VentureChat.git
				synced 2025-10-30 21:52:23 +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); | 					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")) { | 			if(subchannel.equals("Message")) { | ||||||
| 				String identifier = msgin.readUTF(); | 				String identifier = msgin.readUTF(); | ||||||
| 				if(identifier.equals("Send")) { | 				if(identifier.equals("Send")) { | ||||||
| @ -912,7 +1055,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { | |||||||
| 					String echo = msgin.readUTF(); | 					String echo = msgin.readUTF(); | ||||||
| 					String spy = msgin.readUTF(); | 					String spy = msgin.readUTF(); | ||||||
| 					String msg = 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("Message"); | ||||||
| 						out.writeUTF("Offline"); | 						out.writeUTF("Offline"); | ||||||
| 						out.writeUTF(server); | 						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) { | 		catch(Exception e) { | ||||||
| 			e.printStackTrace(); | 			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.GlobalUnmute; | ||||||
| import mineverse.Aust1n46.chat.bungee.command.GlobalUnmuteAll; | import mineverse.Aust1n46.chat.bungee.command.GlobalUnmuteAll; | ||||||
| import mineverse.Aust1n46.chat.database.BungeePlayerData; | import mineverse.Aust1n46.chat.database.BungeePlayerData; | ||||||
|  | import mineverse.Aust1n46.chat.database.TemporaryDataInstance; | ||||||
| import mineverse.Aust1n46.chat.utilities.UUIDFetcher; | 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.ProxiedPlayer; | ||||||
| import net.md_5.bungee.api.connection.Server; | import net.md_5.bungee.api.connection.Server; | ||||||
| import net.md_5.bungee.api.event.PluginMessageEvent; | 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")) { | 			if(subchannel.equals("Message")) { | ||||||
| 				String identifier = in.readUTF(); | 				String identifier = in.readUTF(); | ||||||
| 				if(identifier.equals("Send")) { | 				if(identifier.equals("Send")) { | ||||||
| @ -489,124 +566,6 @@ public class MineverseChatBungee extends Plugin implements Listener { | |||||||
| 					smcp.setMessageToggle(in.readBoolean()); | 					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) { | 		catch(Exception e) { | ||||||
| 			e.printStackTrace(); | 			e.printStackTrace(); | ||||||
|  | |||||||
| @ -1,5 +1,8 @@ | |||||||
| package mineverse.Aust1n46.chat.command; | package mineverse.Aust1n46.chat.command; | ||||||
| 
 | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | import org.bukkit.command.Command; | ||||||
| import org.bukkit.command.CommandSender; | import org.bukkit.command.CommandSender; | ||||||
| 
 | 
 | ||||||
| //This class is the parent class of all of the plugins commands.  The execute method runs the command. | //This class is the parent class of all of the plugins commands.  The execute method runs the command. | ||||||
| @ -14,6 +17,10 @@ public abstract class MineverseCommand { | |||||||
| 
 | 
 | ||||||
| 	public abstract void execute(CommandSender sender, String command, String[] args); | 	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() { | 	public String getName() { | ||||||
| 		return name; | 		return name; | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -1,13 +1,14 @@ | |||||||
| package mineverse.Aust1n46.chat.command; | package mineverse.Aust1n46.chat.command; | ||||||
| 
 | 
 | ||||||
|  | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| 
 | 
 | ||||||
| import org.bukkit.command.Command; | import org.bukkit.command.Command; | ||||||
| import org.bukkit.command.CommandExecutor; |  | ||||||
| import org.bukkit.command.CommandSender; | 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. | //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; | 	private Map<String, MineverseCommand> commands; | ||||||
| 
 | 
 | ||||||
| 	public MineverseCommandExecutor(Map<String, MineverseCommand> commands) { | 	public MineverseCommandExecutor(Map<String, MineverseCommand> commands) { | ||||||
| @ -16,12 +17,12 @@ public class MineverseCommandExecutor implements CommandExecutor { | |||||||
| 
 | 
 | ||||||
| 	@Override | 	@Override | ||||||
| 	public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { | 	public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { | ||||||
| 		for(String com : commands.keySet()) { | 		commands.get(command.getName()).execute(sender, command.getName(), parameters); | ||||||
| 			if(command.getName().equalsIgnoreCase(com)) { | 		return true; | ||||||
| 				commands.get(com).execute(sender, command.getName(), parameters); | 	} | ||||||
| 				return true; | 
 | ||||||
| 			} | 	@Override | ||||||
| 		} | 	public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { | ||||||
| 		return false; | 		return commands.get(command.getName()).onTabComplete(sender, command, label, args); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -1,6 +1,15 @@ | |||||||
| package mineverse.Aust1n46.chat.command.mute; | 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.command.CommandSender; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | import org.bukkit.util.StringUtil; | ||||||
| 
 | 
 | ||||||
| import mineverse.Aust1n46.chat.MineverseChat; | import mineverse.Aust1n46.chat.MineverseChat; | ||||||
| import mineverse.Aust1n46.chat.api.MineverseChatAPI; | import mineverse.Aust1n46.chat.api.MineverseChatAPI; | ||||||
| @ -11,6 +20,7 @@ import mineverse.Aust1n46.chat.localization.LocalizedMessage; | |||||||
| import mineverse.Aust1n46.chat.utilities.Format; | import mineverse.Aust1n46.chat.utilities.Format; | ||||||
| 
 | 
 | ||||||
| public class Mute extends MineverseCommand { | public class Mute extends MineverseCommand { | ||||||
|  | 	private MineverseChat plugin = MineverseChat.getInstance(); | ||||||
| 
 | 
 | ||||||
| 	public Mute(String name) { | 	public Mute(String name) { | ||||||
| 		super(name); | 		super(name); | ||||||
| @ -24,86 +34,81 @@ public class Mute extends MineverseCommand { | |||||||
| 						.replace("{args}", "[player] [channel] {time}")); | 						.replace("{args}", "[player] [channel] {time}")); | ||||||
| 				return; | 				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])) { | 			if (ChatChannel.isChannel(args[1])) { | ||||||
| 				ChatChannel channel = ChatChannel.getChannel(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()) { | 				if (channel.isMutable()) { | ||||||
| 					try { | 					long datetime = System.currentTimeMillis(); | ||||||
| 						long datetime = System.currentTimeMillis(); | 					long time = 0; | ||||||
| 						long time = Format.parseTimeStringToMillis(args[2]); | 					if(args.length > 2) { | ||||||
| 						if (time > 0) { | 						try { | ||||||
| 							player.addMute(channel.getName(), datetime + time); | 							time = Format.parseTimeStringToMillis(args[2]); | ||||||
| 							String timeString = Format.parseTimeStringFromMillis(time); | 							if (time <= 0) { | ||||||
| 							sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() | 								sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | ||||||
| 									.replace("{player}", player.getName()) | 								return; | ||||||
| 									.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); |  | ||||||
| 							} | 							} | ||||||
|  | 						}  | ||||||
|  | 						catch (Exception e) { | ||||||
|  | 							sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | ||||||
| 							return; | 							return; | ||||||
| 						} | 						} | ||||||
| 						sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | 					} | ||||||
| 					} catch (Exception e) { | 					if(channel.getBungee()) { | ||||||
| 						sender.sendMessage(LocalizedMessage.INVALID_TIME.toString().replace("{args}", args[2])); | 						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; | 					return; | ||||||
| 				} | 				} | ||||||
| 				sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() | 				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; | 				return; | ||||||
| 			} | 			} | ||||||
| 			sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1])); | 			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()); | 		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