Skip to main content

A comprehensive Python library for interacting with the Modern Combat 5 API

Project description

๐ŸŽฎ Modern Combat 5 API Client

Python Version License Author

Hey there! ๐Ÿ‘‹ Welcome to the Modern Combat 5 API Client - your friendly Python library for connecting to the MC5 game API. Whether you want to automate your clan management, check your daily tasks, or just explore the game's data, this library makes it super easy!

๐ŸŒŸ What Can You Do With This?

Think of this as your remote control for Modern Combat 5! Here's what you can do:

  • ๐Ÿ” Easy Login: No more hassle - just one line to get authenticated
  • ๐Ÿ‘ค Player Profile: Check your stats, level, and update your profile
  • ๐Ÿฐ Complete Clan Management: Create, manage, and lead clans with 20+ methods
  • ๐Ÿ‘ฅ Squad/Group Management: Manage squad members, stats, and activities in real-time
  • ๐Ÿ’ฌ Complete Communication System: Private messages, squad wall posts, and alerts
  • ๐ŸŽฏ Kill Signature Management: Update player kill signatures and colors
  • ๐Ÿ“Š Statistics & Analytics: Track squad performance, member activity, and progress
  • ๐ŸŽฎ Friend Management: Send friend requests and manage connections
  • ๐Ÿ“… Daily Tasks & Events: Never miss your daily rewards and special events
  • ๐Ÿ† Leaderboards: See how you rank against other players
  • ๐ŸŽฎ Game Data: Access weapons, items, and game configuration
  • ๐Ÿ–ฅ๏ธ Modern CLI: A beautiful command-line tool with colors and emojis
  • ๐Ÿ”„ Auto-Refresh: Tokens refresh automatically - no interruptions!
  • ๐Ÿ›ก๏ธ Error Handling: Get helpful error messages when things go wrong

๏ฟฝ Installation & Publishing

๐Ÿš€ Install from PyPI (Once Published)

pip install mc5-api-client

๐Ÿ“ฆ Install from Local Package

# Install the wheel file you just created
pip install dist/mc5_api_client-1.0.0-py3-none-any.whl

# Or install from source
cd mc5-api-client-1.0.0
pip install .

๐Ÿ“ค Publishing to PyPI

The package has been successfully built! You now have:

โœ… Source Distribution: dist/mc5-api-client-1.0.0.tar.gz
โœ… Wheel Distribution: dist/mc5_api_client-1.0.0-py3-none-any.whl

To publish to PyPI:

# Install twine if you haven't already
pip install twine

# Upload to PyPI (you'll need your PyPI credentials)
twine upload dist/*

# Or upload to Test PyPI first
twine upload --repository testpypi dist/*

๐Ÿ”ง Build Status

โœ… Compilation Successful - No critical errors
โš ๏ธ Warnings Fixed - Configuration warnings resolved
โœ… All Examples Included - 7 comprehensive example scripts
โœ… CLI Entry Points - mc5 command available
โœ… Dependencies Managed - All requirements included

๏ฟฝ๐Ÿš€ Let's Get Started!

Step 1: Install the Library

Just run this in your terminal (Command Prompt/PowerShell):

pip install mc5-api-client

That's it! ๐ŸŽ‰ You're ready to go!

Step 2: Your First Program

Let's write a simple Python script to connect to MC5:

from mc5_api_client import MC5Client

# Create a client and login
client = MC5Client(
    username="anonymous:d2luOF92M18xNzcwMDUxNjkwXy7H33aeTVB4YZictyDq48c=",
    password="sSJKzhQ5l4vrFgov"
)

# Check your profile
profile = client.get_profile()
print(f"Hey {profile['name']}! You're level {profile['level']}")

# See what's happening in the game
events = client.get_events()
print(f"There are {len(events)} active events right now!")

# Don't forget to close the connection
client.close()

What just happened?

  • We imported the MC5 client
  • We logged in with your credentials (replace with yours!)
  • We got your profile info
  • We checked what events are active
  • We cleaned up properly

Step 3: Try the Cool CLI Tool

The library comes with an awesome command-line tool! Check this out:

# Generate a token (your login key)
mc5 generate-token --username "anonymous:your_credential" --password "your_password" --save

# Check if your token is still valid
mc5 validate-token

# See your saved info
mc5 show-config

You'll see beautiful colored output with emojis! ๐ŸŽจ

๐Ÿ“– How It Actually Works

๐Ÿ”‘ Getting Your Login Credentials

Before you can use the API, you need your MC5 login info:

  1. Username: This looks like anonymous:some_long_string_here=
  2. Password: Your regular MC5 password

Where do I find this?

  • Your username is usually stored in the game files
  • The password is what you use to log into the game

๐ŸŽฏ Different Ways to Authenticate

Method 1: Login when creating the client

client = MC5Client(
    username="anonymous:your_username_here",
    password="your_password_here"
)

Method 2: Login later

client = MC5Client()
client.authenticate(
    username="anonymous:your_username_here", 
    password="your_password_here"
)

Method 3: Admin access (if you have it)

client.authenticate_admin()

๐Ÿ‘ค Managing Your Profile

Want to check your stats or update your profile?

# Get your current profile
profile = client.get_profile()
print(f"Name: {profile['name']}")
print(f"Level: {profile['level']}")
print(f"XP: {profile.get('xp', 'N/A')}")

# Update your profile (if the game allows it)
try:
    client.update_profile({
        "name": "CoolNewName",
        "description": "I love MC5!"
    })
    print("Profile updated!")
except:
    print("Couldn't update profile - might not be allowed")

๐Ÿฐ Complete Clan Management

If you run a clan, you can manage it programmatically with 20+ methods:

# Search for clans
clans = client.search_clans("Elite", limit=10)
for clan in clans:
    print(f"{clan['name']} - {clan['member_count']} members")

# Create a new clan
new_clan = client.create_clan(
    name="Python Warriors",
    tag="PYW",
    description="A clan for Python developers!",
    membership_type="open"
)

# Get clan info
clan_id = new_clan.get('id')
clan_info = client.get_clan_settings(clan_id)
print(f"Clan: {clan_info['name']}")

# Update clan settings
client.update_clan_settings(clan_id, {
    "description": "Welcome to our awesome squad!",
    "membership_type": "invite_only"
})

# Manage members
members = client.get_clan_members(clan_id)
print(f"Found {len(members)} members")

# Invite a player
client.invite_clan_member(clan_id, "anonymous:player_credential", "officer")

# Handle applications
applications = client.get_clan_applications(clan_id)
for app in applications:
    print(f"Application from: {app['player_name']}")
    client.accept_clan_application(clan_id, app['credential'], "member")

# Get clan statistics
stats = client.get_clan_statistics(clan_id)
print(f"Total wins: {stats.get('total_wins', 0)}")

# Get internal leaderboard
leaderboard = client.get_clan_leaderboard(clan_id)
for i, player in enumerate(leaderboard[:5], 1):
    print(f"{i}. {player['name']} - {player['score']} points")

๐Ÿ‘ฅ Squad/Group Management

Manage your squad members and their stats in real-time:

# Get all squad members with stats
members = client.get_group_members("your-group-id")
for member in members:
    print(f"{member['name']} - Score: {member['_score']} - Online: {member['online']}")

# Update member stats
client.update_member_score("group-id", "member-credential", 1500)
client.update_member_xp("group-id", "member-credential", 2500000)

# Update kill signature
client.update_member_killsig(
    "group-id", 
    "member-credential",
    "default_killsig_90",
    "-123456789"
)

# Get online members only
online_members = client.get_online_members("group-id")
print(f"{len(online_members)} members online now")

# Get squad statistics
stats = client.get_group_statistics("group-id")
print(f"Average score: {stats['average_score']:.1f}")
print(f"Total XP: {stats['total_xp']:,}")

# Find specific member
member = client.get_member_by_credential("group-id", "member-credential")
if member:
    print(f"Found: {member['name']} - Level {member.get('level', 'Unknown')}")

๐Ÿ’ฌ Squad Wall Communication

Post messages, announcements, and updates to your squad wall:

# Send a simple message
client.send_squad_wall_message(
    clan_id="your-group-id",
    message="Hello squad! Great game today! ๐ŸŽฎ"
)

# Send message with kill signature
client.send_squad_wall_message(
    clan_id="your-group-id",
    message="Check out my new kill signature! ๐Ÿ”ฅ",
    player_killsig="default_killsig_90",
    player_killsig_color="-123456789"
)

# Send squad statistics update
stats = client.get_group_statistics("group-id")
stats_message = f"""๐Ÿ“Š Squad Statistics Update:
๐Ÿ‘ฅ Members: {stats['total_members']}
๐ŸŸข Online: {stats['online_members']}
๐Ÿ† Total Score: {stats['total_score']:,}
โญ Total XP: {stats['total_xp']:,}

Keep up the great work squad! ๐Ÿ’ช"""

client.send_squad_wall_message(
    clan_id="your-group-id",
    message=stats_message,
    player_killsig="default_killsig_100",
    player_killsig_color="-987654321"
)

# Send welcome message
welcome_msg = """๐ŸŽ‰ Welcome to the squad!

We're excited to have you join! Here's what you need to know:
๐ŸŽฎ Be active and participate in squad activities
๐Ÿ’ช Help us climb the leaderboards
๐Ÿค Support your squad mates
๐Ÿ† Represent our squad with pride

Let's dominate together! ๐Ÿ”ฅ"""

client.send_squad_wall_message(
    clan_id="your-group-id",
    message=welcome_msg,
    activity_type="user_post"
)

# Send motivational message
import random
motivational_quotes = [
    "๐Ÿ’ช Champions train, losers complain! Let's get better today!",
    "๐Ÿ”ฅ The only easy day was yesterday! Let's dominate!",
    "๏ฟฝ Success is the sum of small efforts repeated day in and day out!"
]

quote = random.choice(motivational_quotes)
client.send_squad_wall_message(
    clan_id="your-group-id",
    message=quote,
    player_killsig="default_killsig_95",
    player_killsig_color="-555555555"
)

๏ฟฝ Private Messaging

Send direct messages to players with rich formatting:

# Send a simple private message
client.send_private_message(
    credential="anonymous:player_credential",
    message="Hey! Want to play some matches together? ๐ŸŽฎ"
)

# Send message with kill signature
client.send_private_message(
    credential="anonymous:player_credential",
    message="Check out my new kill signature! ๐Ÿ”ฅ",
    kill_sign_color="-974646126",
    kill_sign_name="default_killsig_80"
)

# Send message with alert notification
client.send_private_message(
    credential="anonymous:player_credential",
    message="๐Ÿ”” Important: Clan war at 8 PM! Don't be late! ๐ŸŽฎ",
    alert_kairos=True
)

# Send reply message
client.send_private_message(
    credential="anonymous:player_credential",
    message="Sure! Let's play at 8 PM tonight! ๐ŸŽฎ",
    reply_to="message_id_here"
)

# Send rich formatted message
formatted_message = """๐ŸŽฎ Squad Invitation

๐ŸŽฏ When: Tonight at 8 PM
๐Ÿ“ Where: Clan War Server
๐ŸŽฎ What: Practice Match
๐Ÿ† Prizes: 5000 XP bonus

๐Ÿ“‹ Requirements:
โ€ข Level 50+
โ€ข Active squad member
โ€ข Good teamwork skills
โ€ข Voice chat enabled

๐ŸŽฎ Let's dominate together! ๐Ÿ”ฅ"""

client.send_private_message(
    credential="anonymous:player_credential",
    message=formatted_message,
    kill_sign_color="-123456789",
    kill_sign_name="default_killsig_95"
)

# Get inbox messages
messages = client.get_inbox_messages(limit=10)
for msg in messages:
    print(f"From: {msg['from']}")
    print(f"Message: {msg['body']}")
    print(f"Time: {msg['created']}")
    print(f"ID: {msg['id']}")

# Delete inbox message
client.delete_inbox_message("message_id_here")

# Delete multiple messages at once
message_ids = ["msg1_id", "msg2_id", "msg3_id"]
client.delete_multiple_inbox_messages(message_ids)

# Clear entire inbox (use with caution!)
client.clear_inbox()

# Bulk messaging
target_players = [
    "anonymous:player1_credential",
    "anonymous:player2_credential",
    "anonymous:player3_credential"
]

messages = [
    "Hey everyone! Ready for clan war? ๐ŸŽฎ",
    "Let's practice together! ๐Ÿ’ช",
    "Good luck in the tournament! ๐Ÿ†"
]

for credential, message in zip(target_players, messages):
    client.send_private_message(credential=credential, message=message)
    time.sleep(1)  # Small delay between messages

๏ฟฝ Daily Tasks and Events

Never miss your daily rewards:

# Get all active events
events = client.get_events()

for event in events:
    print(f"๐Ÿ“… {event['name']}")
    print(f"   Status: {event['status']}")
    
    # Check if it's daily tasks
    if 'daily' in event['name'].lower() or 'activities' in event['name'].lower():
        print("   ๐ŸŽฏ This is your daily tasks event!")
        
        # Get the tasks
        template = event.get('_template', {})
        tasks = template.get('event_tuning', {}).get('_tasks', {}).get('value', [])
        
        for i, task in enumerate(tasks[:3]):  # Show first 3 tasks
            points = task.get('points', 0)
            print(f"      Task {i+1}: {points} points")

๐Ÿ† Checking Leaderboards

See how you stack up:

# Get regular leaderboard
leaderboard = client.get_leaderboard("ro")
print(f"Top {len(leaderboard.get('players', []))} players")

# Admin leaderboard (if you have admin access)
# admin_leaderboard = client.get_leaderboard("admin")

๐Ÿ–ฅ๏ธ CLI Commands - Your Command Center

The CLI tool is like having a remote control for MC5! Here are all the commands:

๐Ÿ”‘ Token Management

Generate a new token:

mc5 generate-token --username "anonymous:your_credential" --password "your_password" --save

Generate admin token:

mc5 generate-admin-token --save

Check if your token is still good:

mc5 validate-token

๐Ÿฐ Clan Management

Search for clans:

mc5 clan search "Elite" --limit 10

Create a new clan:

mc5 clan create --name "Python Warriors" --tag "PYW" --description "A clan for Python developers!"

Get clan information:

mc5 clan info your-clan-id

Get clan members:

mc5 clan members your-clan-id

Invite a player:

mc5 clan invite your-clan-id "anonymous:player_credential" --role officer

Handle applications:

mc5 clan applications your-clan-id
mc5 clan accept your-clan-id "anonymous:applicant" --role member
mc5 clan reject your-clan-id "anonymous:applicant"

Apply to join a clan:

mc5 clan apply target-clan-id --message "Let me join your squad!"

Get clan statistics:

mc5 clan stats your-clan-id

Get clan leaderboard:

mc5 clan leaderboard your-clan-id

โš™๏ธ Configuration

See your saved info:

mc5 show-config

Clear everything (start fresh):

mc5 clear-config

๐ŸŽจ Cool Options

Enable debug mode (see what's happening behind the scenes):

mc5 --debug generate-token --username "..." --password "..."

Skip the fancy banner:

mc5 --no-banner validate-token

๐Ÿ”ง Where Does Everything Get Saved?

The CLI saves your stuff in a special folder:

  • Windows: C:\Users\YourName\.mc5\
  • Mac/Linux: ~/.mc5/

Inside you'll find:

  • config.json - Your saved username and settings
  • token.json - Your login tokens (so you don't have to login every time)
  • debug.log - Debug information (if you use debug mode)

๐Ÿšจ When Things Go Wrong

Don't worry! The library has great error handling:

from mc5_api_client import MC5Client
from mc5_api_client.exceptions import (
    MC5APIError,
    AuthenticationError,
    TokenExpiredError,
    RateLimitError,
    NetworkError
)

try:
    client = MC5Client(username="user", password="pass")
    profile = client.get_profile()
    
except AuthenticationError:
    print("โŒ Oops! Wrong username or password")
    
except TokenExpiredError:
    print("โฐ Your login expired! Try logging in again")
    
except RateLimitError as e:
    print(f"โธ๏ธ Slow down! Try again in {e.retry_after} seconds")
    
except NetworkError:
    print("๐ŸŒ Can't connect to the internet. Check your connection!")
    
except MC5APIError as e:
    print(f"โŒ Something went wrong: {e.message}")

๐ŸŽฏ Pro Tips

๐Ÿ”„ Auto-Refresh Tokens

Don't want to worry about your login expiring?

client = MC5Client(
    username="your_username",
    password="your_password",
    auto_refresh=True  # Magic! ๐Ÿช„
)

# Your token will refresh automatically when it expires

๐Ÿ“ฆ Use Context Manager (Clean Code)

with MC5Client(username="user", password="pass") as client:
    profile = client.get_profile()
    events = client.get_events()
    # Connection automatically closes when done!

๐ŸŽฏ Custom Permissions

Only need specific permissions?

client.authenticate(
    username="user",
    password="pass",
    scope="message chat social"  # Only these permissions
)

๐Ÿš€ Advanced Examples & Use Cases

๐Ÿ† Squad Management Bot

Create a bot that automatically manages your squad:

import time
from mc5_api_client import MC5Client

def squad_management_bot():
    client = MC5Client(
        username="anonymous:d2luOF92M18xNzcwMDUxNjkwXy7H33aeTVB4YZictyDq48c=",
        password="sSJKzhQ5l4vrFgov"
    )
    
    group_id = "your-group-id"
    
    while True:
        try:
            # Get squad statistics
            stats = client.get_group_statistics(group_id)
            
            # Post hourly updates
            update_message = f""""๐Ÿ“Š Hourly Squad Update:
๐Ÿ‘ฅ Members: {stats['total_members']}
๐ŸŸข Online: {stats['online_members']}
๐Ÿ† Total Score: {stats['total_score']:,}
โญ Total XP: {stats['total_xp']:,}

Keep up the great work squad! ๐Ÿ’ช"""
            
            client.send_squad_wall_message(
                clan_id=group_id,
                message=update_message,
                player_killsig="default_killsig_100",
                player_killsig_color="-987654321"
            )
            
            print(f"โœ… Posted update at {time.strftime('%H:%M')}")
            
            # Wait for 1 hour
            time.sleep(3600)
            
        except Exception as e:
            print(f"โŒ Error: {e}")
            time.sleep(60)  # Wait 1 minute before retrying

๏ฟฝ Private Messaging Bot

Create a bot that handles private communications:

import time
from mc5_api_client import MC5Client

def private_messaging_bot():
    client = MC5Client(
        username="anonymous:d2luOF92M18xNzcwMDUxNjkwXy7H33aeTVB4YZictyDq48c=",
        password="sSJKzhQ5l4vrFgov"
    )
    
    # Check inbox for new messages
    while True:
        try:
            messages = client.get_inbox_messages(limit=10)
            
            for msg in messages:
                # Auto-reply to clan war invitations
                if "clan war" in msg.get('body', '').lower():
                    client.send_private_message(
                        credential=msg.get('from', ''),
                        message="โœ… I'll be there for the clan war! See you at 8 PM! ๐ŸŽฎ",
                        reply_to=msg.get('id', ''),
                        kill_sign_color="-123456789",
                        kill_sign_name="default_killsig_95"
                    )
                    print(f"โœ… Auto-replied to clan war invitation from {msg.get('from', '')}")
                
                # Send welcome message to new friends
                elif "friend request" in msg.get('body', '').lower():
                    client.send_private_message(
                        credential=msg.get('from', ''),
                        message="๐ŸŽ‰ Thanks for the friend request! Let's play together soon! ๐Ÿ’ช",
                        alert_kairos=True
                    )
                    print(f"โœ… Sent welcome message to {msg.get('from', '')}")
            
            # Wait 30 seconds before checking again
            time.sleep(30)
            
        except Exception as e:
            print(f"โŒ Error: {e}")
            time.sleep(60)  # Wait 1 minute before retrying

๏ฟฝ๏ฟฝ Performance Tracker

Track squad performance over time:

from mc5_api_client import MC5Client
import json
from datetime import datetime

def track_squad_performance():
    client = MC5Client(
        username="anonymous:d2luOF92M18xNzcwMDUxNjkwXy7H33aeTVB4YZictyDq48c=",
        password="sSJKzhQ5l4vrFgov"
    )
    
    group_id = "your-group-id"
    
    # Get current stats
    stats = client.get_group_statistics(group_id)
    
    # Create performance record
    performance_data = {
        "timestamp": datetime.now().isoformat(),
        "total_members": stats['total_members'],
        "online_members": stats['online_members'],
        "total_score": stats['total_score'],
        "total_xp": stats['total_xp'],
        "average_score": stats['average_score'],
        "average_xp": stats['average_xp']
    }
    
    # Save to file
    with open('squad_performance.json', 'a') as f:
        f.write(json.dumps(performance_data, indent=2) + '\n')
    
    print(f"โœ… Performance data saved: {performance_data['total_score']} points")
    
    client.close()

๐ŸŽฎ Achievement Celebration Bot

Celebrate squad achievements automatically:

def celebrate_achievements():
    client = MC5Client(
        username="anonymous:d2luOF92M18xNzcwMDUxNjkwXy7H33aeTVB4YZictyDq48c=",
        password="sSJKzhQ5l4vrFgov"
    )
    
    group_id = "your-group-id"
    
    # Get current stats
    stats = client.get_group_statistics(group_id)
    
    # Check for milestones
    if stats['total_score'] > 10000:
        celebration_message = """๐ŸŽ‰ MILESTONE ACHIEVED! ๐ŸŽ‰

๐Ÿ† Squad reached 10,000 points! 
This is a huge achievement! 

๐ŸŽฎ Great teamwork everyone! 
Let's keep climbing! ๐Ÿ”ฅ"""
        
        client.send_squad_wall_message(
            clan_id=group_id,
            message=celebration_message,
            player_killsig="default_killsig_99",
            player_killsig_color="-111111111"
        )
        
        print("๐ŸŽ‰ Celebrated 10,000 point milestone!")
    
    client.close()

๐Ÿ“ˆ Leaderboard Monitor

Create a custom leaderboard system:

def create_custom_leaderboard():
    client = MC5Client(
        username="anonymous:d2luOF92M18xNzcwMDUxNjkwXy7H33aeTVB4YZictyDq48c=",
        password="sSJKzhQ5l4vrFgov"
    )
    
    group_id = "your-group-id"
    
    # Get all members
    members = client.get_group_members(group_id)
    
    # Sort by score
    sorted_members = sorted(
        members, 
        key=lambda x: int(x.get('_score', 0)), 
        reverse=True
    )
    
    print("๐Ÿ† Squad Leaderboard:")
    print("=" * 50)
    
    for i, member in enumerate(sorted_members, 1):
        name = member.get('name', 'Unknown')
        score = member.get('_score', '0')
        xp = member.get('_xp', '0')
        online = "๐ŸŸข" if member.get('online') else "๐Ÿ”ด"
        
        print(f"{i:2d}. {online} {name:<20} Score: {score:>10} XP: {xp:>12}")
    
    print("=" * 50)
    print(f"๐Ÿ“Š Total Members: {len(members)}")
    
    client.close()

๐Ÿ“š Available Examples

The library comes with comprehensive examples to get you started:

๐Ÿ“‹ Basic Examples

  • examples/basic_usage.py - Simple authentication and API usage
  • examples/clan_management.py - Complete clan management demonstration
  • examples/events_and_tasks.py - Daily tasks and events handling
  • examples/squad_management.py - Real-time squad member management
  • examples/squad_wall_management.py - Squad wall communication examples
  • examples/private_messaging.py - Private messaging and inbox management
  • examples/message_management.py - Advanced message management and bulk deletion

๐Ÿš€ Advanced Examples

  • Squad management bot with automated updates
  • Performance tracking and analytics
  • Achievement celebration systems
  • Custom leaderboard generation
  • Real-time activity monitoring

๐Ÿ“Š Complete Feature List

๐Ÿ” Authentication

  • โœ… User and admin token generation
  • โœ… Automatic token refresh
  • โœ… Token validation and parsing
  • โœ… Device ID management
  • โœ… Multiple authentication methods

๐Ÿ‘ค Profile Management

  • โœ… Get player profiles
  • โœ… Update profile information
  • โœ… Profile statistics

๐Ÿฐ Clan Management (20+ Methods)

  • โœ… Search for clans
  • โœ… Create new clans
  • โœ… Get clan information
  • โœ… Update clan settings
  • โœ… Manage clan members
  • โœ… Invite/kick members
  • โœ… Promote/demote members
  • โœ… Handle applications
  • โœ… Join/leave clans
  • โœ… Get clan statistics
  • โœ… Internal leaderboards
  • โœ… Transfer ownership
  • โœ… Disband clans

๐Ÿ‘ฅ Squad/Group Management (10+ Methods)

  • โœ… Get squad members with stats
  • โœ… Update member scores and XP
  • โœ… Update kill signatures
  • โœ… Monitor online/offline status
  • โœ… Calculate squad statistics
  • โœ… Find specific members
  • โœ… Bulk stat updates
  • โœ… Real-time activity monitoring

๐Ÿ’ฌ Complete Communication System (6+ Methods)

  • โœ… Send private messages with rich formatting
  • โœ… Include kill signatures and colors
  • โœ… Send alert notifications
  • โœ… Reply to messages
  • โœ… Get inbox messages
  • โœ… Delete single messages
  • โœ… Delete multiple messages (bulk deletion)
  • โœ… Clear entire inbox
  • โœ… Bulk messaging capabilities
  • โœ… Message tracking and management
  • โœ… Rich text formatting
  • โœ… Multi-language support
  • โœ… Message type customization

๐ŸŽฎ Social Features

  • โœ… Friend management
  • โœ… Send friend requests
  • โœ… Check friend status
  • โœ… Private messaging
  • โœ… Squad wall posting

๐Ÿ“… Events & Tasks

  • โœ… Get daily tasks and events
  • โœ… Event details and parsing
  • โœ… Task completion tracking
  • โœ… Special event handling

๐Ÿ† Leaderboards

  • โœ… Global leaderboards
  • โœ… Clan leaderboards
  • โœ… Squad leaderboards
  • โœ… Custom ranking systems

๐ŸŽฎ Game Data

  • โœ… Game object catalog
  • โœ… Asset metadata
  • โœ… Configuration access
  • โœ… Alias and dogtag utilities

๐Ÿ–ฅ๏ธ CLI Interface

  • โœ… Beautiful command-line tool
  • โœ… Colorful output with emojis
  • โœ… Token management commands
  • โœ… Clan management commands
  • โœ… Configuration management
  • โœ… Debug capabilities

๐Ÿ›ก๏ธ Error Handling

  • โœ… Comprehensive exception system โœ… Specific error types for different scenarios โœ… Helpful error messages โœ… Network error recovery

๐Ÿ”„ Automation

  • โœ… Auto token refresh
  • โœ… Context manager support
  • โœ… Background task support
  • โœ… Scheduled operations

๐Ÿงช For Developers

Want to contribute or modify the library?

# Clone the project
git clone https://github.com/your-repo/mc5-api-client
cd mc5-api-client

# Install for development
pip install -e ".[dev]"

# Run tests
pytest tests/

# Make code pretty
black src/
isort src/

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details. Basically, you can do whatever you want with it!

๐Ÿ‘‹ About the Author

Hey! I'm Chizoba and I created this library because I love Modern Combat 5 and wanted to make it easier for players to interact with the game programmatically.

๐Ÿค Want to Help?

Awesome! Contributions are welcome! Here's how:

  1. Fork the project
  2. Create your feature branch: git checkout -b feature/AmazingFeature
  3. Commit your changes: git commit -m 'Added this cool thing'
  4. Push to the branch: git push origin feature/AmazingFeature
  5. Open a Pull Request

โ“ Need Help?

Stuck on something? No worries!

  • ๐Ÿ“ง Email me: chizoba2026@hotmail.com
  • ๐Ÿ“– Check the examples: Look in the examples/ folder
  • ๐Ÿ› Report issues: Let me know what's not working

๐Ÿ”— Useful Links

This is the most comprehensive Modern Combat 5 API library ever created! With 70+ methods across 10 major categories, you can:

  • ๐Ÿฐ Manage entire clans from creation to disbandment
  • ๐Ÿ‘ฅ Control squad members with real-time stat updates
  • ๐Ÿ’ฌ Complete communication system - Private messages, squad wall, alerts
  • ๐ŸŽฏ Customize everything with kill signatures and rich formatting
  • ๐Ÿ“Š Track performance with detailed analytics
  • ๐ŸŽฎ Automate gameplay with custom bots and scripts
  • ๐Ÿ† Create leaderboards and ranking systems
  • ๐Ÿ”„ Schedule tasks and monitor activity
  • ๐Ÿ“ฑ Manage messages with inbox and reply systems

Perfect for:

  • ๐Ÿ† Squad leaders who want to automate management
  • ๐Ÿ“Š Players who want to track their progress
  • ๐Ÿค– Developers building MC5 applications
  • ๐ŸŽฎ Gamers creating custom tools and bots
  • ๐Ÿ“ˆ Analysts studying squad performance
  • ๐Ÿ… Competitive players seeking advantages
  • ๐Ÿ’ฌ Community managers handling communications
  • ๐Ÿ“ง Support teams providing assistance

Ready to dominate Modern Combat 5? ๐Ÿš€

pip install mc5-api-client
mc5 --help  # See all commands!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mc5_api_client-1.0.0-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file mc5_api_client-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: mc5_api_client-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for mc5_api_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68be752a2452c644df7e31a24a04502a15a0f6d5776ac9bcd98d6d9857500ea0
MD5 665dc27417b1ca6f9571eadad36667ea
BLAKE2b-256 58257885705de080f8e25915538d080fbceea300410a2afd8612a0ed610795bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page