Refactor bot server setup to use Waitress for production; fallback to Flask dev server for local development. Added timeout to HTTP requests in Fun and Test cogs. Improved error handling for missing environment variables. Enhanced secret key management in Flask app. Added request timeout configuration. Introduced new experimental features including user profile and balance cards, and a Tic-Tac-Toe game with Minimax AI. Addressed various database and security issues, and improved code quality across multiple files.
This commit is contained in:
Executable
+62
@@ -0,0 +1,62 @@
|
||||
import random
|
||||
|
||||
|
||||
class User:
|
||||
def __init__(self, xp_formula, level_formula):
|
||||
self.level = 1
|
||||
self.xp = 0
|
||||
self.xp_to_next_level = xp_formula(
|
||||
self.level
|
||||
) # XP needed to reach the next level
|
||||
self.xp_formula = xp_formula
|
||||
self.level_formula = level_formula
|
||||
|
||||
def earn_xp(self, amount):
|
||||
self.xp += amount
|
||||
print(f"You earned {amount} XP! Total XP: {self.xp}")
|
||||
|
||||
# Check for level up
|
||||
while self.xp >= self.xp_to_next_level:
|
||||
self.level_up()
|
||||
|
||||
def level_up(self):
|
||||
self.xp -= self.xp_to_next_level
|
||||
self.level += 1
|
||||
self.xp_to_next_level = self.xp_formula(
|
||||
self.level
|
||||
) # Calculate next level requirement
|
||||
print(
|
||||
f"Congratulations! You've reached Level {self.level}! XP to next level: {self.xp_to_next_level}"
|
||||
)
|
||||
|
||||
|
||||
def simulate_xp_gain(user, num_messages, xp_per_message):
|
||||
for _ in range(num_messages):
|
||||
user.earn_xp(xp_per_message())
|
||||
|
||||
|
||||
def main():
|
||||
# Define your formulas here
|
||||
def xp_formula(level):
|
||||
return int(100 * (1.5 ** (level - 1))) # Example: 100, 150, 225, 338, ...
|
||||
|
||||
def random_xp_per_message():
|
||||
return random.randint(1, 5) # Random XP between 1 and 10
|
||||
|
||||
user = User(xp_formula, random_xp_per_message)
|
||||
|
||||
while True:
|
||||
num_messages = input("Enter the number of messages (or 'quit' to exit): ")
|
||||
|
||||
if num_messages.lower() == "quit":
|
||||
break
|
||||
|
||||
if num_messages.isdigit():
|
||||
num_messages = int(num_messages)
|
||||
simulate_xp_gain(user, num_messages, random_xp_per_message)
|
||||
else:
|
||||
print("Please enter a valid number.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user