@@ -90,9 +90,14 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
9090 Player switchingPlayer = (Player ) sender ;
9191 String channelToSwitchTo = args [1 ];
9292 if (!channelManager .getChannels ().containsKey (channelToSwitchTo .toLowerCase ())) { logger .send (sender , Lang .CHANNEL_NOT_FOUND .replace (new String []{channelToSwitchTo })); return true ; }
93-
94- boolean switchedStatus = channelManager .switchChannel (switchingPlayer .getUniqueId (), channelToSwitchTo .toLowerCase ());
95- logger .send (switchingPlayer , Lang .CHANNEL_TOGGLE .replace (new String []{channelToSwitchTo .toUpperCase (), switchedStatus ? Lang .ON .replace (null ) : Lang .OFF .replace (null )}));
93+ if (channelManager .isChannelDisabled (channelToSwitchTo )) { logger .send (sender , Lang .CHANNEL_DISABLED .replace (new String []{channelToSwitchTo .toUpperCase ()})); return true ; }
94+ if (!channelManager .getChannels (switchingPlayer .getUniqueId ()).contains (channelToSwitchTo .toLowerCase ())) { logger .send (sender , Lang .CHANNEL_NOT_SUBSCRIBED .replace (new String []{channelToSwitchTo .toUpperCase ()})); return true ; }
95+ channelManager .setLastChannelUsed (switchingPlayer .getUniqueId (), channelToSwitchTo .toLowerCase ());
96+ String currentChannel = channelManager .getActiveChannel (switchingPlayer );
97+ boolean alreadyActive = channelToSwitchTo .equalsIgnoreCase (currentChannel );
98+
99+ channelManager .setLastActiveChannel (switchingPlayer .getUniqueId (), alreadyActive ? channelManager .getDefaultChannel () : channelToSwitchTo .toLowerCase ());
100+ logger .send (switchingPlayer , Lang .CHANNEL_TOGGLE .replace (new String []{channelToSwitchTo .toUpperCase (), alreadyActive ? Lang .OFF .replace (null ) : Lang .ON .replace (null )}));
96101 break ;
97102
98103 case "status" :
@@ -101,6 +106,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
101106 if (args .length < 2 ) { logger .send (sender , Lang .CHANNEL_HELP .replace (null )); return true ; }
102107
103108 Player statusPlayer = Bukkit .getPlayer (args [1 ]);
109+ if (statusPlayer == null || !statusPlayer .isOnline ()) { logger .send (sender , Lang .PLAYER_NOT_FOUND .replace (new String []{args [1 ]})); return true ; }
104110 Set <String > subscribedChannels = channelManager .getChannels (statusPlayer .getUniqueId ());
105111 String activeChannel = channelManager .getActiveChannel (statusPlayer );
106112 String subsList = subscribedChannels .stream ()
0 commit comments