A Python library for utilizing the Nebulous.io UDP protocol.
Project description
nebulous.py
Table of Contents
Installation
- Install git
- Install
java-random
:python -m pip install --user git+https://github.com/MostAwesomeDude/java-random
- NOTE: This is a required step, as the
java-random
package on pypi is outdated and broken.
- NOTE: This is a required step, as the
- Install
nebulous.py
:python -m pip install --user nebulous.py
Usage
Utilizing the client
From test_connect.py
:
import time
from nebulous.game.account import ServerRegions
from nebulous.game.models.client import Client, ClientCallbacks
from nebulous.game.packets import ConnectRequest3, ConnectResult2, Disconnect, KeepAlive
TEST_TICKET = ""
class TestCallbacks(ClientCallbacks):
def on_connect(self, client: Client, packet: ConnectRequest3) -> ConnectRequest3:
print("Connected to server")
return packet
def on_disconnect(self, client: Client, packet: Disconnect) -> Disconnect:
print("Disconnected from server")
return packet
def on_keep_alive(self, client: Client, packet: KeepAlive) -> KeepAlive:
print("Sending keep alive packet")
return packet
def on_connect_result(self, client: Client, packet: ConnectResult2) -> ConnectResult2:
print(f"Received connection result: {packet.result}")
return packet
def test_client():
client = Client(TEST_TICKET, ServerRegions.US_EAST, callbacks=TestCallbacks())
client.start()
# disconnect after 3 seconds.
# can also use client.run_forever() to keep the client running indefinitely
# until ctrl+c is pressed.
time.sleep(3)
client.stop()
if __name__ == "__main__":
test_client()
Interacting with the API
Note: Upon signing in, the api client will perform a series of requests to fetch the player's data, among other things(e.g. sale info, purchase prices, etc.). This also includes an automatic account check-in, which grants 50 plasma each day.
From test_account.py
:
def test_fetch_self():
account = Account(secrets.get("TICKET", ""), ServerRegions.US_EAST) # type: ignore
player = account.player_obj
if player is None:
logger.error("Failed to fetch player object")
return
player_profile = player.get_profile()
player_stats = player.get_stats()
player_xp = player_stats.general_stats.xp
logger.info(f"Player: {player_stats.account_name}")
logger.info(f"Level: {xp2level(player_xp)}")
logger.info(f"Current XP: {player_xp}")
clan_member = player_stats.clan_member
logger.info(f"Clan: {clan_member.clan.name}")
logger.info(f"Role: {clan_member.clan_role}")
logger.info(f"Account bio: {player_profile.bio}")
# fetch friends
logger.info("Fetching friends...")
friends = player.get_friends()
if len(friends) == 0:
logger.info("No friends :(")
return
for friend in friends:
friend_profile = friend.get_profile()
friend_stats = friend.get_stats()
friend_xp = friend_stats.general_stats.xp
logger.info(f"Friend: {friend_stats.account_name}")
logger.info(f"Level: {xp2level(friend_xp)}")
logger.info(f"Current XP: {friend_xp}")
logger.info(f"Account bio: {friend_profile.bio}")
logger.info(f"BFF: {friend.bff}")
logger.info(f"Last seen: {friend.last_played_utc}\n")
logger.info("Cooldown for 1.5 seconds...")
time.sleep(1.5) # don't spam the API
Client
objects also contain an instance to an Account
object, which can be accessed via client.account
.
Dumping Packets
You can also dump packets as json, as shown in sample_packet.json
:
print(packet.as_json(indent=4))
License
nebulous.py
is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nebulous_py-1.5.0.tar.gz
.
File metadata
- Download URL: nebulous_py-1.5.0.tar.gz
- Upload date:
- Size: 38.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cc3c8a05534cdb5758f2a0ee7af3e06298b27138bc4617c5b665a602f799179 |
|
MD5 | a49c42aae592ed249186605194642d1e |
|
BLAKE2b-256 | 2b032ff1fcfac1c0c98db22aa6e31288a5ce7d0738be5575b3f0ea7d5c7ac179 |
File details
Details for the file nebulous_py-1.5.0-py3-none-any.whl
.
File metadata
- Download URL: nebulous_py-1.5.0-py3-none-any.whl
- Upload date:
- Size: 39.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05e612e34c8e9dd382c4d447af17c93c1ad46296313e2b4d5bc4bcd5beef17b1 |
|
MD5 | e86ac61e9accdc8bc5f5ff9e4c4dee06 |
|
BLAKE2b-256 | 34502b043dcab0bb8877c97b574b5c0c39055e923c9e57dbe546650c9fe8d0ad |