Search in sources :

Example 1 with PacketTrackingChoices

use of com.solinia.solinia.Models.PacketTrackingChoices in project solinia3-core by mixxit.

the class PacketTrackingChoicesTest method WhenGivenMultiplePacketDataReturnExpectedFormat.

@Test
public void WhenGivenMultiplePacketDataReturnExpectedFormat() {
    String testForPacketData = "1|RED|Name|NPCID_333^2|GREEN|Ted|NPCID_334^";
    String foundPacketData = "";
    try {
        PacketTrackingChoices vitals = new PacketTrackingChoices();
        vitals.fromPacketData(testForPacketData);
        foundPacketData = vitals.toPacketData();
    } catch (InvalidPacketException e) {
        e.printStackTrace();
    }
    assertEquals(testForPacketData, foundPacketData);
}
Also used : PacketTrackingChoices(com.solinia.solinia.Models.PacketTrackingChoices) InvalidPacketException(com.solinia.solinia.Exceptions.InvalidPacketException) Test(org.junit.Test)

Example 2 with PacketTrackingChoices

use of com.solinia.solinia.Models.PacketTrackingChoices in project solinia3-core by mixxit.

the class PacketTrackingChoicesTest method WhenGivenPacketDataReturnExpectedFormat.

@Test
public void WhenGivenPacketDataReturnExpectedFormat() {
    String testForPacketData = "1|RED|Him|NPCID_333^";
    String foundPacketData = "";
    try {
        PacketTrackingChoices vitals = new PacketTrackingChoices();
        vitals.fromPacketData(testForPacketData);
        foundPacketData = vitals.toPacketData();
    } catch (InvalidPacketException e) {
        e.printStackTrace();
    }
    assertEquals(testForPacketData, foundPacketData);
}
Also used : PacketTrackingChoices(com.solinia.solinia.Models.PacketTrackingChoices) InvalidPacketException(com.solinia.solinia.Exceptions.InvalidPacketException) Test(org.junit.Test)

Example 3 with PacketTrackingChoices

use of com.solinia.solinia.Models.PacketTrackingChoices in project solinia3-core by mixxit.

the class CommandTrack method onCommand.

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (!(sender instanceof Player) && !(sender instanceof CommandSender))
        return false;
    if (!(sender instanceof Player)) {
        sender.sendMessage("This is a player only command");
        return false;
    }
    Player player = (Player) sender;
    try {
        ISoliniaPlayer solPlayer = SoliniaPlayerAdapter.Adapt((Player) sender);
        if (solPlayer.getClassObj() == null) {
            player.sendMessage("You do not have the tracking ability");
            return true;
        }
        if (solPlayer.getMentorLevel() < solPlayer.getClassObj().getTrackingLevel()) {
            player.sendMessage("You do not have the tracking ability");
            return true;
        }
        if (args.length < 1) {
            // Send Tracking Choices
            PacketTrackingChoices trackingChoicesPacket = new PacketTrackingChoices();
            List<TrackingChoice> trackingChoices = solPlayer.getTrackingChoices();
            trackingChoicesPacket.fromData(trackingChoices);
            int startsize = trackingChoices.size();
            int limititeration = 100;
            int currentiteration = 1;
            int currentlength = trackingChoicesPacket.toPacketData().getBytes().length;
            while (currentlength > 65535) {
                if (currentiteration > limititeration)
                    break;
                trackingChoices = trackingChoices.stream().limit(startsize - (currentiteration * 100)).collect(Collectors.toList());
                trackingChoicesPacket.fromData(trackingChoices);
                currentlength = trackingChoicesPacket.toPacketData().getBytes().length;
                currentiteration++;
            }
            trackingChoicesPacket.fromData(trackingChoices);
            if (trackingChoicesPacket.toPacketData().getBytes().length > 65535) {
                player.sendMessage("There are way too many tracking targets, making it difficult for you know which track is which (found: " + trackingChoices.size() + ")");
                return true;
            }
            ForgeUtils.sendForgeMessage(((Player) solPlayer.getBukkitPlayer()), Solinia3UIChannelNames.Outgoing, Solinia3UIPacketDiscriminators.TRACKING, trackingChoicesPacket.toPacketData());
            player.sendMessage("You check for tracks...");
            player.sendMessage("/track stop to stop tracking");
            return true;
        } else {
            if (args[0].toUpperCase().equals("STOP")) {
                try {
                    StateManager.getInstance().getEntityManager().stopTracking(player.getUniqueId());
                    player.sendMessage("You stop tracking");
                } catch (CoreStateInitException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return true;
            }
            // Start Track
            String spawngroupId = args[0];
            int spawnGroup = Integer.parseInt(spawngroupId.split("SPAWNGROUPID_")[1]);
            player.sendMessage("You check for tracks...");
            player.sendMessage("/track stop to stop tracking");
            // Get spawngroup
            solPlayer.startTracking(StateManager.getInstance().getConfigurationManager().getSpawnGroup(spawnGroup).getLocation());
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return true;
}
Also used : PacketTrackingChoices(com.solinia.solinia.Models.PacketTrackingChoices) TrackingChoice(com.solinia.solinia.Models.TrackingChoice) Player(org.bukkit.entity.Player) ISoliniaPlayer(com.solinia.solinia.Interfaces.ISoliniaPlayer) CoreStateInitException(com.solinia.solinia.Exceptions.CoreStateInitException) CommandSender(org.bukkit.command.CommandSender) ISoliniaPlayer(com.solinia.solinia.Interfaces.ISoliniaPlayer) CoreStateInitException(com.solinia.solinia.Exceptions.CoreStateInitException)

Aggregations

PacketTrackingChoices (com.solinia.solinia.Models.PacketTrackingChoices)3 InvalidPacketException (com.solinia.solinia.Exceptions.InvalidPacketException)2 Test (org.junit.Test)2 CoreStateInitException (com.solinia.solinia.Exceptions.CoreStateInitException)1 ISoliniaPlayer (com.solinia.solinia.Interfaces.ISoliniaPlayer)1 TrackingChoice (com.solinia.solinia.Models.TrackingChoice)1 CommandSender (org.bukkit.command.CommandSender)1 Player (org.bukkit.entity.Player)1