Compare commits

...

2 Commits

Author SHA1 Message Date
sose
af9cc4b546 allow connection to offline mode servers without a password 2021-04-26 20:31:00 -07:00
sose
666435ddae added requirements, updated install command 2021-04-26 20:29:31 -07:00
2 changed files with 29 additions and 13 deletions

View File

@ -6,13 +6,21 @@ Mosfet is able to farm wood by cutting trees, gather sand, gather netherwart,
and trade with villagers to get emeralds. He can eat, sleep, and flee from and trade with villagers to get emeralds. He can eat, sleep, and flee from
threats. threats.
## Requirements
- Python >= 3.8
- pip
- virtualenv
- git
- wget
- unzip
## Linux Setup ## Linux Setup
Assuming Debian / Ubuntu based distro: Assuming Debian / Ubuntu based distro:
``` ```
$ sudo apt update $ sudo apt update
$ sudo apt install build-essential python3 python3-dev python3-pip python3-virtualenv git wget unzip $ sudo apt install build-essential python3 python3-dev python3-pip python3-virtualenv virtualenv git wget unzip
$ git clone https://git.tannercollin.com/tanner/minecraft-bot.git $ git clone https://git.tannercollin.com/tanner/minecraft-bot.git
$ cd minecraft-bot/ $ cd minecraft-bot/

View File

@ -3,14 +3,15 @@ if __name__ == '__main__':
exit(1) exit(1)
import os import os
import sys
import time import time
import importlib import importlib
from math import floor, ceil from math import floor, ceil
from copy import copy from copy import copy
USERNAME = os.environ['USERNAME'] USERNAME = os.getenv('USERNAME')
PASSWORD = os.environ['PASSWORD'] PASSWORD = os.getenv('PASSWORD')
SERVER = os.environ['SERVER'] SERVER = os.getenv('SERVER')
PORT = int(os.environ.get('PORT', 25565)) PORT = int(os.environ.get('PORT', 25565))
from . import monkey_patch # must be before any possible pyCraft imports from . import monkey_patch # must be before any possible pyCraft imports
@ -249,15 +250,22 @@ def bot(global_state):
if not g.mcdata: if not g.mcdata:
g.mcdata = DataManager('./minecraft_data') g.mcdata = DataManager('./minecraft_data')
if not g.connection: if not SERVER:
auth_token = authentication.AuthenticationToken() print('You must specify a server to connect to.')
try: sys.exit()
auth_token.authenticate(USERNAME, PASSWORD) elif not g.connection:
except YggdrasilError as e: if USERNAME and PASSWORD:
print(e) auth_token = authentication.AuthenticationToken()
sys.exit() try:
print("Logged in as %s..." % auth_token.username) auth_token.authenticate(USERNAME, PASSWORD)
g.connection = Connection(SERVER, PORT, auth_token=auth_token) except YggdrasilError as e:
print(e)
sys.exit()
print("Logged in as %s..." % auth_token.username)
g.connection = Connection(SERVER, PORT, auth_token=auth_token)
elif USERNAME:
print('No password provided, attempting to connect in offline mode...')
g.connection = Connection(SERVER, PORT, username=USERNAME)
g.chunks = ChunksManager(g.mcdata) g.chunks = ChunksManager(g.mcdata)