Alibrown commited on
Commit
197c89d
·
verified ·
1 Parent(s): bc5771f

Update app/commands.py

Browse files
Files changed (1) hide show
  1. app/commands.py +14 -29
app/commands.py CHANGED
@@ -1,5 +1,7 @@
1
  from flask import jsonify
2
  import logging
 
 
3
 
4
  logger = logging.getLogger(__name__)
5
 
@@ -21,11 +23,9 @@ def settings_command(data):
21
  }
22
  })
23
 
24
-
25
- ## a) /balance user credits stand
26
- ## Dieser Befehl gibt den aktuellen Stand der Credits und Coins des Benutzers zurück. Dabei wird nur die anonyme ID des Benutzers verwendet, um den Punktestand abzurufen.
27
- def balance_command(user_id):
28
- # Angenommen, die Punkte werden in einer verschlüsselten Datenbank gespeichert
29
  user_data = get_user_data(user_id) # Hier wird die Benutzer-ID verwendet, nicht der Name
30
  credits = user_data.get('credits', 0)
31
  coins = user_data.get('coins', 0)
@@ -37,8 +37,6 @@ def settings_command(data):
37
  })
38
 
39
  # b) /send Money to user
40
- # Dieser Befehl sendet eine bestimmte Menge Credits an einen anderen Benutzer. Hierbei müssen Sicherheitsvorkehrungen getroffen werden, um Missbrauch zu vermeiden, z. B.
41
- # indem Transaktionen nur über den Bot und unter bestimmten Bedingungen durchgeführt werden.
42
  def send_money_command(from_user_id, to_user_id, amount):
43
  if amount <= 0:
44
  return jsonify({"type": 4, "data": {"content": "Ungültiger Betrag!"}})
@@ -56,16 +54,12 @@ def send_money_command(from_user_id, to_user_id, amount):
56
  return jsonify({"type": 4, "data": {"content": f"Erfolgreich {amount} Credits an den Benutzer gesendet!"}})
57
 
58
  # c) /daily (Tägliche Belohnung)
59
- # Die tägliche Belohnung könnte beispielsweise 100 Credits pro Tag betragen. Eine Möglichkeit ist, den täglichen Bonus nur einmal pro Benutzer und Tag zu vergeben.
60
- import datetime
61
-
62
  def daily_reward(user_id):
63
- # Holen Sie sich das letzte Belohnungsdatum des Benutzers
64
  user_data = get_user_data(user_id)
65
  last_claimed = user_data.get('last_claimed', None)
66
 
67
  if last_claimed:
68
- # Überprüfen, ob der Benutzer heute schon seine Belohnung erhalten hat
69
  if last_claimed.date() == datetime.datetime.now().date():
70
  return jsonify({"type": 4, "data": {"content": "Du hast bereits deine tägliche Belohnung erhalten!"}})
71
 
@@ -76,29 +70,24 @@ def daily_reward(user_id):
76
  return jsonify({"type": 4, "data": {"content": "Du hast deine tägliche Belohnung erhalten: 100 Credits!"}})
77
 
78
  # d) /fish (Fischen)
79
- # Beim Fischen gibt es zwei Orte, z. B. einen See und einen Fluss. Der Fluss könnte weniger große, aber günstigere Fische bringen, während der See größere, aber gefährlichere Fische bietet.
80
- # Wenn der Benutzer Pech hat, könnte er Credits verlieren. Hier ein Beispiel, wie das Fischen implementiert werden könnte:
81
- import random
82
-
83
  def fish_command(user_id, location):
84
- # Überprüfe, ob der Benutzer genug Credits für das Fischen hat
85
  user_data = get_user_data(user_id)
86
- if user_data['credits'] < 10: # Beispiel: Fischen kostet 10 Credits
87
  return jsonify({"type": 4, "data": {"content": "Nicht genug Credits zum Fischen!"}})
88
 
89
- # Wähle das Ergebnis basierend auf dem Ort
90
  if location == "river":
91
  chance = random.randint(1, 100)
92
- if chance <= 70: # 70% Chance, einen kleinen Fisch zu fangen
93
  reward = 20 # Der Benutzer verdient 20 Credits
94
  else:
95
- reward = -10 # 30% Chance, einen Unfall zu haben und Credits zu verlieren
96
  elif location == "lake":
97
  chance = random.randint(1, 100)
98
- if chance <= 50: # 50% Chance, einen großen Fisch zu fangen
99
  reward = 50 # Der Benutzer verdient 50 Credits
100
  else:
101
- reward = -30 # 50% Chance auf einen Unfall und Verlust von Credits
102
 
103
  # Fische und aktualisiere die Credits
104
  new_credits = user_data.get('credits', 0) + reward
@@ -111,7 +100,7 @@ def fish_command(user_id, location):
111
 
112
  # Der Shop
113
  def shop_command(user_id, item):
114
- # Shop-Preise definieren
115
  items = {
116
  "avatar1": 100,
117
  "avatar2": 150,
@@ -125,14 +114,10 @@ def shop_command(user_id, item):
125
  item_price = items[item]
126
  user_data = get_user_data(user_id)
127
 
128
- # Überprüfen, ob der Benutzer genug Credits hat
129
  if user_data['credits'] < item_price:
130
  return jsonify({"type": 4, "data": {"content": "Nicht genug Credits für diesen Artikel!"}})
131
 
132
- # Artikel kaufen
133
  update_user_data(user_id, {'credits': user_data['credits'] - item_price})
134
-
135
- # Artikel freischalten (z. B. Rolle oder Avatar)
136
  unlock_item(user_id, item)
137
 
138
- return jsonify({"type": 4, "data": {"content": f"Du hast erfolgreich {item} gekauft!"}})
 
1
  from flask import jsonify
2
  import logging
3
+ import datetime
4
+ import random
5
 
6
  logger = logging.getLogger(__name__)
7
 
 
23
  }
24
  })
25
 
26
+ # a) /balance user credits stand
27
+ def balance_command(user_id):
28
+ """Gives the current credit and coin balance of the user"""
 
 
29
  user_data = get_user_data(user_id) # Hier wird die Benutzer-ID verwendet, nicht der Name
30
  credits = user_data.get('credits', 0)
31
  coins = user_data.get('coins', 0)
 
37
  })
38
 
39
  # b) /send Money to user
 
 
40
  def send_money_command(from_user_id, to_user_id, amount):
41
  if amount <= 0:
42
  return jsonify({"type": 4, "data": {"content": "Ungültiger Betrag!"}})
 
54
  return jsonify({"type": 4, "data": {"content": f"Erfolgreich {amount} Credits an den Benutzer gesendet!"}})
55
 
56
  # c) /daily (Tägliche Belohnung)
 
 
 
57
  def daily_reward(user_id):
58
+ """Gives daily reward of 100 credits to the user"""
59
  user_data = get_user_data(user_id)
60
  last_claimed = user_data.get('last_claimed', None)
61
 
62
  if last_claimed:
 
63
  if last_claimed.date() == datetime.datetime.now().date():
64
  return jsonify({"type": 4, "data": {"content": "Du hast bereits deine tägliche Belohnung erhalten!"}})
65
 
 
70
  return jsonify({"type": 4, "data": {"content": "Du hast deine tägliche Belohnung erhalten: 100 Credits!"}})
71
 
72
  # d) /fish (Fischen)
 
 
 
 
73
  def fish_command(user_id, location):
74
+ """Fishing game where user can fish at different locations"""
75
  user_data = get_user_data(user_id)
76
+ if user_data['credits'] < 10: # Fischen kostet 10 Credits
77
  return jsonify({"type": 4, "data": {"content": "Nicht genug Credits zum Fischen!"}})
78
 
 
79
  if location == "river":
80
  chance = random.randint(1, 100)
81
+ if chance <= 70: # 70% Chance auf einen kleinen Fisch
82
  reward = 20 # Der Benutzer verdient 20 Credits
83
  else:
84
+ reward = -10 # 30% Chance auf einen Unfall
85
  elif location == "lake":
86
  chance = random.randint(1, 100)
87
+ if chance <= 50: # 50% Chance auf einen großen Fisch
88
  reward = 50 # Der Benutzer verdient 50 Credits
89
  else:
90
+ reward = -30 # 50% Chance auf einen Unfall
91
 
92
  # Fische und aktualisiere die Credits
93
  new_credits = user_data.get('credits', 0) + reward
 
100
 
101
  # Der Shop
102
  def shop_command(user_id, item):
103
+ """Shop command for buying items like avatars, roles, etc."""
104
  items = {
105
  "avatar1": 100,
106
  "avatar2": 150,
 
114
  item_price = items[item]
115
  user_data = get_user_data(user_id)
116
 
 
117
  if user_data['credits'] < item_price:
118
  return jsonify({"type": 4, "data": {"content": "Nicht genug Credits für diesen Artikel!"}})
119
 
 
120
  update_user_data(user_id, {'credits': user_data['credits'] - item_price})
 
 
121
  unlock_item(user_id, item)
122
 
123
+ return jsonify({"type": 4, "data": {"content": f"Du hast erfolgreich {item} gekauft!"}})