@@ -177,15 +177,20 @@ async def exec(self, ctx: Context, flag: str, *, cmd: str):
177177
178178 async def _create_event (self , ctx : Context , date : datetime ,
179179 batch = False , sideop = False ,
180- platoon_size = None ) -> Event :
181- # TODO: Optionally specify sideop -> hide 1PLT and Bravo
180+ platoon_size = None , force = False ) -> Event :
182181 # TODO: Check for duplicate event dates?
182+ if date < datetime .today () and not force :
183+ raise BadArgument ("Requested date {} has already passed. "
184+ "Use the `force` argument to override"
185+ .format (date ))
186+
183187 # Create event and sort events, export
184188 event : Event = EventDatabase .createEvent (date , ctx .guild .emojis ,
185189 sideop = sideop ,
186190 platoon_size = platoon_size )
187- message = await msgFnc .createEventMessage (event , self .bot .eventchannel )
188191 if not batch :
192+ message = await msgFnc .createEventMessage (
193+ event , self .bot .eventchannel )
189194 await msgFnc .updateReactions (event , message = message )
190195 await msgFnc .sortEventMessages (ctx )
191196 EventDatabase .toJson () # Update JSON file
@@ -201,22 +206,15 @@ async def create(self, ctx: Context, date: EventDateTime, force=None,
201206
202207 Use the `force` argument to create past events.
203208
204- The platoon_size argument can be used to override the platoon size.
205- Valid values: 1PLT, 2PLT
209+ The platoon_size argument can be used to override the platoon size. Valid values: 1PLT, 2PLT
206210
207211 Example: create 2019-01-01
208212 create 2019-01-01 force
209213 create 2019-01-01 force 2PLT
210- """
214+ """ # NOQA
211215
212- # FIXME: take time zone into account
213- if date < datetime .today () and not force :
214- await ctx .send ("Requested date {} has already passed. "
215- "Use the `force` argument to override. "
216- "See `{}help create`"
217- .format (date , CMD ))
218- else :
219- await self ._create_event (ctx , date , platoon_size = platoon_size )
216+ await self ._create_event (ctx , date , platoon_size = platoon_size ,
217+ force = force )
220218
221219 @command (aliases = ['cs' ])
222220 async def createside (self , ctx : Context , date : EventDateTime , force = None ):
@@ -225,18 +223,11 @@ async def createside(self, ctx: Context, date: EventDateTime, force=None):
225223
226224 Use the `force` argument to create past events.
227225
228- Example: create 2019-01-01
229- create 2019-01-01 force
226+ Example: createside 2019-01-01
227+ createside 2019-01-01 force
230228 """
231229
232- # FIXME: take time zone into account
233- if date < datetime .today () and not force :
234- await ctx .send ("Requested date {} has already passed. "
235- "Use the `force` argument to override. "
236- "See `{}help create`"
237- .format (date , CMD ))
238- else :
239- await self ._create_event (ctx , date , sideop = True )
230+ await self ._create_event (ctx , date , sideop = True , force = force )
240231
241232 @command (aliases = ['csq' ])
242233 async def createsidequick (self , ctx : Context , date : EventDateTime ,
@@ -247,32 +238,25 @@ async def createsidequick(self, ctx: Context, date: EventDateTime,
247238
248239 Use the `force` argument to create past events.
249240
250- Example: create 2019-01-01 Altis USMC Stroker
251- create 2019-01-01 Altis USMC Stroker force
241+ Example: createsidequick 2019-01-01 Altis USMC Stroker
242+ createsidequick 2019-01-01 Altis USMC Stroker force
252243 """
253- if date < datetime .today () and not force :
254- await ctx .send ("Requested date {} has already passed. "
255- "Use the `force` argument to override. "
256- "See `{}help create`"
257- .format (date , CMD ))
258- else :
259- event : Event = EventDatabase .createEvent (date , ctx .guild .emojis ,
260- sideop = True ,
261- platoon_size = None )
262- message = await msgFnc .createEventMessage (event ,
263- self .bot .eventchannel )
244+ event = await self ._create_event (
245+ ctx , date , sideop = True , force = force , batch = True )
246+ message = await msgFnc .createEventMessage (
247+ event , self .bot .eventchannel )
264248
265- event .setTerrain (terrain )
266- event .setFaction (faction )
267- event .signup (event .findRoleWithName ("ZEUS" ), zeus )
249+ event .setTerrain (terrain )
250+ event .setFaction (faction )
251+ event .signup (event .findRoleWithName ("ZEUS" ), zeus )
268252
269- await msgFnc .updateReactions (event , message = message )
270- await msgFnc .updateMessageEmbed (message , event )
271- await msgFnc .sortEventMessages (ctx )
272- EventDatabase .toJson () # Update JSON file
273- await ctx .send ("Created event {} with id {}" . format ( event ,
274- event .id ))
275- return event
253+ await msgFnc .updateReactions (event , message = message )
254+ await msgFnc .updateMessageEmbed (message , event )
255+ await msgFnc .sortEventMessages (ctx )
256+ EventDatabase .toJson () # Update JSON file
257+ await ctx .send (
258+ "Created event {} with id {}" . format ( event , event .id ))
259+ return event
276260
277261 @command (aliases = ['mc' ])
278262 async def multicreate (self , ctx : Context , start : EventDate ,
0 commit comments