CoopCommand.java 1.53 KB
Newer Older
Kengxxiao's avatar
Kengxxiao committed
1
2
package emu.grasscutter.command.commands;

方块君's avatar
方块君 committed
3
import emu.grasscutter.Grasscutter;
Kengxxiao's avatar
Kengxxiao committed
4
5
6
7
8
9
10
11
import emu.grasscutter.command.Command;
import emu.grasscutter.command.CommandHandler;
import emu.grasscutter.game.player.Player;

import java.util.List;

@Command(label = "coop", usage = "coop",
        description = "Forces someone to join the world of others", permission = "server.coop")
KingRainbow44's avatar
KingRainbow44 committed
12
public final class CoopCommand implements CommandHandler {
Kengxxiao's avatar
Kengxxiao committed
13
    @Override
AnimeGitB's avatar
AnimeGitB committed
14
    public void execute(Player sender, Player targetPlayer, List<String> args) {
Kengxxiao's avatar
Kengxxiao committed
15
        if (args.size() < 2) {
方块君's avatar
方块君 committed
16
            CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Coop_usage);
Kengxxiao's avatar
Kengxxiao committed
17
18
            return;
        }
KingRainbow44's avatar
KingRainbow44 committed
19
        
Kengxxiao's avatar
Kengxxiao committed
20
21
22
23
24
25
        try {
            int tid = Integer.parseInt(args.get(0));
            int hostId = Integer.parseInt(args.get(1));
            Player host = sender.getServer().getPlayerByUid(hostId);
            Player want = sender.getServer().getPlayerByUid(tid);
            if (host == null || want == null) {
方块君's avatar
方块君 committed
26
                CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Player_is_offline);
Kengxxiao's avatar
Kengxxiao committed
27
28
29
30
31
32
33
34
                return;
            }
            if (want.isInMultiplayer()) {
                sender.getServer().getMultiplayerManager().leaveCoop(want);
            }
            sender.getServer().getMultiplayerManager().applyEnterMp(want, hostId);
            sender.getServer().getMultiplayerManager().applyEnterMpReply(host, tid, true);
        } catch (Exception e) {
方块君's avatar
方块君 committed
35
            CommandHandler.sendMessage(sender, Grasscutter.getLanguage().Invalid_playerId);
Kengxxiao's avatar
Kengxxiao committed
36
37
38
        }
    }
}