class AntiBotService implements SettingsDependent {

    public boolean shouldKick() {
        if (antiBotStatus == AntiBotStatus.DISABLED) {
            return false;
        } else if (antiBotStatus == AntiBotStatus.ACTIVE) {
            return true;
        }

        if (lastFlaggedJoin == null) {
            lastFlaggedJoin = Instant.now();
        }
        if (ChronoUnit.SECONDS.between(lastFlaggedJoin, Instant.now()) <= interval) {
            flagged++;
        } else {
            // reset to 1 because this player is also count as not registered
            flagged = 1;
            lastFlaggedJoin = null;
        }
        if (flagged > sensibility) {
            startProtection();
            return true;
        }
        return false;
    }

    @Inject  AntiBotService(Settings settings, Messages messages, PermissionsManager permissionsManager,
                   BukkitService bukkitService);

}