mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 17:05:20 +01:00
Command Targeting overhaul fixes
This commit is contained in:
@@ -20,17 +20,21 @@ public final class CoopCommand implements CommandHandler {
|
||||
Player host = sender;
|
||||
switch (args.size()) {
|
||||
case 0: // Summon target to self
|
||||
if (sender == null) { // Console doesn't have a self to summon to
|
||||
CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Coop_usage);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 1: // Summon target to argument
|
||||
try {
|
||||
int hostId = Integer.parseInt(args.get(1));
|
||||
host = sender.getServer().getPlayerByUid(hostId);
|
||||
int hostId = Integer.parseInt(args.get(0));
|
||||
host = Grasscutter.getGameServer().getPlayerByUid(hostId);
|
||||
if (host == null) {
|
||||
CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Player_is_offline);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
} catch (NumberFormatException ignored) {
|
||||
CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Invalid_playerId);
|
||||
return;
|
||||
}
|
||||
@@ -39,12 +43,12 @@ public final class CoopCommand implements CommandHandler {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// There's no target==host check but this just places them in multiplayer in their own world which seems fine.
|
||||
if (targetPlayer.isInMultiplayer()) {
|
||||
sender.getServer().getMultiplayerManager().leaveCoop(targetPlayer);
|
||||
targetPlayer.getServer().getMultiplayerManager().leaveCoop(targetPlayer);
|
||||
}
|
||||
sender.getServer().getMultiplayerManager().applyEnterMp(targetPlayer, host.getUid());
|
||||
sender.getServer().getMultiplayerManager().applyEnterMpReply(host, targetPlayer.getUid(), true);
|
||||
host.getServer().getMultiplayerManager().applyEnterMp(targetPlayer, host.getUid());
|
||||
targetPlayer.getServer().getMultiplayerManager().applyEnterMpReply(host, targetPlayer.getUid(), true);
|
||||
CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Coop_success.replace("{host}", host.getNickname()).replace("{target}", targetPlayer.getNickname()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user