1010from login import get_nick_and_pw
1111
1212
13- bot = commands .Bot (command_prefix = "." , case_insensitive = True )
13+ bot = commands .Bot (command_prefix = "." , case_insensitive = True )
1414YOUR_SECRET_TOKEN = input ("Your discord token (help - https://www.writebots.com/discord-bot-token/): " )
1515
1616sessions = defaultdict (lambda : "" )
@@ -36,7 +36,6 @@ def dec(func):
3636 return func
3737 return dec
3838
39-
4039@bot .command ()
4140@add_docs_for (accept_contract .accept_contract )
4241async def accept (ctx , contract_id , * , nick ):
@@ -74,6 +73,259 @@ async def buff(ctx, buffs_names, *, nick):
7473 session = sessions [server ]
7574 sessions [server ] = buff .buffs (server , buffs_names , session )
7675
76+ @bot .command ()
77+ @add_docs_for (buy_cc .cc )
78+ async def cc (ctx , country_id , max_price , buy_amount , * , nick ):
79+ server = ctx .channel .name
80+ if nick .lower () == MY_NICKS [server ].lower ():
81+ session = sessions [server ]
82+ sessions [server ] = buy_cc .cc (server , country_id , max_price , buy_amount , session )
83+
84+ @bot .command ()
85+ @add_docs_for (buy_product .products )
86+ async def buy (ctx , product , amount , * , nick ):
87+ server = ctx .channel .name
88+ if nick .lower () == MY_NICKS [server ].lower ():
89+ session = sessions [server ]
90+ sessions [server ] = buy_product .products (server , product , amount , session )
91+
92+ @bot .command ()
93+ @add_docs_for (candidate .candidate )
94+ async def candidate (ctx , * , nick ):
95+ server = ctx .channel .name
96+ if nick .lower () == MY_NICKS [server ].lower ():
97+ session = sessions [server ]
98+ sessions [server ] = candidate .candidate (server , session )
99+
100+ @bot .command ()
101+ @add_docs_for (change_avatar .avatar )
102+ async def avatar (ctx , * , nick ):
103+ """
104+ If you don't want the default img, write like that:
105+ `.avatar https://picsum.photos/150, Your Nick` (with a comma)"""
106+ server = ctx .channel .name
107+ if "," in nick :
108+ imgURL , nick = nick .split ("," )
109+ else :
110+ imgURL = "https://source.unsplash.com/random"
111+ if nick .strip ().lower () == MY_NICKS [server ].lower ():
112+ session = sessions [server ]
113+ sessions [server ] = change_avatar .avatar (server , imgURL .strip (), session )
114+
115+ @bot .command ()
116+ async def comment (ctx , shout_or_article_link , body , * , nick ):
117+ """
118+ - `body` parameter MUST be within quotes.
119+ - You can find shout link by clicking F12 in the page where you see the shout."""
120+ server = ctx .channel .name
121+ if nick .lower () == MY_NICKS [server ].lower ():
122+ session = sessions [server ]
123+ if "article" in shout_or_article_link :
124+ sessions [server ] = comment_article .comment_article (server , shout_or_article_link .split ("?id=" )[1 ].split ("&" )[0 ], body , session )
125+ elif "shout" in shout_or_article_link :
126+ sessions [server ] = comment_shout .comment_shout (server , shout_or_article_link .split ("?id=" )[1 ].split ("&" )[0 ], body , session )
127+ else :
128+ await ctx .send ("Please provide a valid article/shout link." )
129+
130+ @bot .command ()
131+ @add_docs_for (donate_eqs .donate_eqs )
132+ async def donate (ctx , ids , receiver_id , * , nick ):
133+ """`ids` MUST be separated by a comma, and without spaces (or with spaces, but within quotes)"""
134+ server = ctx .channel .name
135+ if nick .lower () == MY_NICKS [server ].lower ():
136+ session = sessions [server ]
137+ sessions [server ] = donate_eqs .donate_eqs (server , ids , receiver_id , session )
138+
139+ @bot .command ()
140+ @add_docs_for (eqs .eqs )
141+ async def eq (ctx , * , nick ):
142+ server = ctx .channel .name
143+ if nick .lower () == MY_NICKS [server ].lower ():
144+ session = sessions [server ]
145+ sessions [server ] = eqs .eqs (server , session )
146+ # to do: aliases=["storage", "inventory"] (show all storage).
147+
148+ @bot .command ()
149+ @add_docs_for (fly .fly )
150+ async def Fly (ctx , region_link_or_id , ticket_quality , * , nick ):
151+ """Default: Q5 tickets"""
152+ server = ctx .channel .name
153+ try :
154+ int (ticket_quality )
155+ except :
156+ nick = ticket_quality + " " + nick
157+ ticket_quality = 5
158+ if nick .lower () == MY_NICKS [server ].lower ():
159+ session = sessions [server ]
160+ sessions [server ] = fly .fly (server , region_link_or_id , ticket_quality , session )
161+
162+ @bot .command ()
163+ @add_docs_for (job .job )
164+ async def Job (ctx , * , nick ):
165+ server = ctx .channel .name
166+ if nick .lower () == MY_NICKS [server ].lower ():
167+ session = sessions [server ]
168+ sessions [server ] = job .job (server , session )
169+
170+ @bot .command (aliases = ["dow" , "mpp" ])
171+ @add_docs_for (mpp_dow_attack .mpp_dow_attack )
172+ async def attack (ctx , ID , delay_or_battle_link , * , nick ):
173+ """`delay_or_battle_link` - optional"""
174+ server = ctx .channel .name
175+ if ".e-sim.org/battle.html?id=" not in delay_or_battle_link :
176+ try :
177+ int (delay_or_battle_link )
178+ except :
179+ nick = delay_or_battle_link + " " + nick
180+ delay_or_battle_link = ""
181+ if nick .lower () == MY_NICKS [server ].lower ():
182+ session = sessions [server ]
183+ sessions [server ] = mpp_dow_attack .mpp_dow_attack (server , ID , ctx .invoked_with .lower (), delay_or_battle_link , session )
184+
185+ @bot .command ()
186+ @add_docs_for (place_building .building )
187+ async def build (ctx , regionId , quality , Round , * , nick ):
188+ """`quality` = building quality (if you want to build an hospital instead, write like that: `5-hospital`)"""
189+ server = ctx .channel .name
190+ if nick .lower () == MY_NICKS [server ].lower ():
191+ session = sessions [server ]
192+ sessions [server ] = place_building .building (server , regionId , quality , Round , session )
193+
194+ @bot .command ()
195+ @add_docs_for (read .read )
196+ async def Read (ctx , * , nick ):
197+ server = ctx .channel .name
198+ if nick .lower () == MY_NICKS [server ].lower ():
199+ session = sessions [server ]
200+ sessions [server ] = read .read (server , session )
201+
202+ @bot .command ()
203+ @add_docs_for (register .register )
204+ async def Register (ctx , lan , countryId , password , * , nick ):
205+ server = ctx .channel .name
206+ if nick .lower () == MY_NICKS [server ].lower ():
207+ session = sessions [server ]
208+ sessions [server ] = register .register (server , nick , password , lan , countryId , session )
209+
210+ @bot .command ()
211+ @add_docs_for (report_citizen .report )
212+ async def report (ctx , target_id , report_reason , * , nick ):
213+ """`report_reason` MUST be within quotes"""
214+ server = ctx .channel .name
215+ if nick .lower () == MY_NICKS [server ].lower ():
216+ session = sessions [server ]
217+ sessions [server ] = report_citizen .report (server , target_id , report_reason , session )
218+
219+ @bot .command (aliases = ["upgrade" ])
220+ @add_docs_for (reshuffle_or_upgrade .reshuffle_or_upgrade )
221+ async def reshuffle (ctx , eq_id_or_link , parameter , * , nick ):
222+ """`parameter` - it's recommended to copy and paste, but you can also write first/last"""
223+ server = ctx .channel .name
224+ if nick .lower () == MY_NICKS [server ].lower ():
225+ session = sessions [server ]
226+ sessions [server ] = reshuffle_or_upgrade .reshuffle_or_upgrade (server , ctx .invoked_with .lower (), eq_id_or_link , parameter , session )
227+
228+ @bot .command ()
229+ @add_docs_for (rw .rw )
230+ async def RW (ctx , region_id_or_link , ticket_quality , * , nick ):
231+ server = ctx .channel .name
232+ try :
233+ int (ticket_quality )
234+ except :
235+ nick = ticket_quality + " " + nick
236+ ticket_quality = 5
237+ if nick .lower () == MY_NICKS [server ].lower ():
238+ session = sessions [server ]
239+ sessions [server ] = rw .rw (server , region_id_or_link , ticket_quality , session )
240+
241+ @bot .command ()
242+ @add_docs_for (sell_eqs .sell_eqs )
243+ async def sell (ctx , ids , price , hours , * , nick ):
244+ """`ids` MUST be separated by a comma, and without spaces (or with spaces, but within quotes)"""
245+ server = ctx .channel .name
246+ if nick .lower () == MY_NICKS [server ].lower ():
247+ session = sessions [server ]
248+ sessions [server ] = sell_eqs .sell_eqs (server , ids , price , hours , session )
249+
250+ @bot .command (aliases = ["MU" ])
251+ @add_docs_for (send_application .citizenship_or_mu_application )
252+ async def citizenship (ctx , country_or_mu_id , * , nick ):
253+ server = ctx .channel .name
254+ if nick .lower () == MY_NICKS [server ].lower ():
255+ session = sessions [server ]
256+ sessions [server ] = send_application .citizenship_or_mu_application (server , country_or_mu_id , ctx .invoked_with .lower (), session )
257+
258+ @bot .command ()
259+ @add_docs_for (send_msg .send_msg )
260+ async def msg (ctx , receiver_name , title , body , * , nick ):
261+ """If any arg (receiverName, title or body) containing more than 1 word - it must be within quotes"""
262+ server = ctx .channel .name
263+ if nick .lower () == MY_NICKS [server ].lower ():
264+ session = sessions [server ]
265+ sessions [server ] = send_msg .send_msg (server , receiver_name , title , body , session )
266+
267+ @bot .command ()
268+ @add_docs_for (shout .shout )
269+ async def Shout (ctx , shout_body , * , nick ):
270+ """`shout_body` MUST be within quotes"""
271+ server = ctx .channel .name
272+ if nick .lower () == MY_NICKS [server ].lower ():
273+ session = sessions [server ]
274+ sessions [server ] = shout .shout (server , shout_body , session )
275+
276+ @bot .command (aliases = ["vote" , "Vote_shout" ])
277+ async def Sub (ctx , id , * , nick ):
278+ server = ctx .channel .name
279+ if nick .lower () == MY_NICKS [server ].lower ():
280+ session = sessions [server ]
281+ if ctx .invoked_with .lower () == "sub" :
282+ sessions [server ] = sub .sub (server , id , session )
283+ elif ctx .invoked_with .lower () == "vote" :
284+ sessions [server ] = vote_article .article (server , id , session )
285+ elif ctx .invoked_with .lower () == "vote_shout" :
286+ sessions [server ] = vote_shout .vote_shout (server , id , session )
287+
288+ @bot .command (aliases = ["gift" ])
289+ @add_docs_for (use .use )
290+ async def food (ctx , quality , * , nick ):
291+ """Default: Q5"""
292+ server = ctx .channel .name
293+ try :
294+ int (quality )
295+ except :
296+ nick = quality + " " + nick
297+ quality = 5
298+ if nick .lower () == MY_NICKS [server ].lower ():
299+ session = sessions [server ]
300+ sessions [server ] = use .use (server , ctx .invoked_with .lower (), quality , session )
301+
302+ @bot .command ()
303+ @add_docs_for (vote_elections .elect )
304+ async def elect (ctx , your_candidate , * , nick ):
305+ """If `your_candidate` containing more than 1 word - it must be within quotes"""
306+ server = ctx .channel .name
307+ if nick .lower () == MY_NICKS [server ].lower ():
308+ session = sessions [server ]
309+ sessions [server ] = vote_elections .elect (server , your_candidate , session )
310+
311+ @bot .command ()
312+ @add_docs_for (vote_law .law )
313+ async def law (ctx , link_or_id , your_vote , * , nick ):
314+ server = ctx .channel .name
315+ if nick .lower () == MY_NICKS [server ].lower ():
316+ session = sessions [server ]
317+ sessions [server ] = vote_law .law (server , link_or_id , your_vote , session )
318+
319+ @bot .command (aliases = ["unwear" ])
320+ async def wear (ctx , ids , * , nick ):
321+ """
322+ Wear/take off specific EQ IDs.
323+ `ids` MUST be separated by a comma, and without spaces (or with spaces, but within quotes)"""
324+ server = ctx .channel .name
325+ if nick .lower () == MY_NICKS [server ].lower ():
326+ session = sessions [server ]
327+ sessions [server ] = wear_unwear .wear_unwear (server , ids , session )
328+
77329
78330@bot .event
79331async def on_message (message ):
@@ -82,10 +334,10 @@ async def on_message(message):
82334 f = StringIO ()
83335 with redirect_stdout (f ):
84336 await bot .invoke (ctx )
85-
86- if f . getvalue () :
337+ output = f . getvalue ()
338+ if output :
87339 # Sending the output (all prints) to your channel.
88- await ctx .send (f . getvalue () )
340+ await ctx .send (output [: 2000 ] )
89341 f .close ()
90342
91343
0 commit comments