mirror of
				https://github.com/keanuplayz/TravBot-v3.git
				synced 2024-08-15 02:33:12 +00:00 
			
		
		
		
	eco-bet: improvements
- duration bounds - link to calling message
This commit is contained in:
		
							parent
							
								
									055a57e928
								
							
						
					
					
						commit
						d6548c53db
					
				
					 1 changed files with 15 additions and 11 deletions
				
			
		|  | @ -47,8 +47,12 @@ export const BetCommand = new Command({ | ||||||
|                 } |                 } | ||||||
|             }, |             }, | ||||||
|             any: new Command({ |             any: new Command({ | ||||||
|                 async run({client, args, author, channel, guild}): Promise<any> { |                 async run({client, args, author, message, channel, guild}): Promise<any> { | ||||||
|                     if (isAuthorized(guild, channel)) { |                     if (isAuthorized(guild, channel)) { | ||||||
|  |                         // [Pertinence to make configurable on the fly.]
 | ||||||
|  |                         // Lower and upper bounds for bet
 | ||||||
|  |                         const durationBounds = { min:"1m", max:"1d" }; | ||||||
|  | 
 | ||||||
|                         const sender = Storage.getUser(author.id); |                         const sender = Storage.getUser(author.id); | ||||||
|                         const target = args[0]; |                         const target = args[0]; | ||||||
|                         const receiver = Storage.getUser(target); |                         const receiver = Storage.getUser(target); | ||||||
|  | @ -69,11 +73,11 @@ export const BetCommand = new Command({ | ||||||
| 
 | 
 | ||||||
|                         // handle invalid duration
 |                         // handle invalid duration
 | ||||||
|                         if (duration <= 0) |                         if (duration <= 0) | ||||||
|                             return channel.send("Invalid duration"); |                             return channel.send("Invalid bet duration"); | ||||||
|                         // else if (duration <= {threshold})
 |                         else if (duration <= parseDuration(durationBounds.min)) | ||||||
|                         //     return channel.send("Too short idk");
 |                             return channel.send(`Bet duration is too short, maximum duration is ${durationBounds.min}`); | ||||||
|                         // else if (duration >= {threshold})
 |                         else if (duration >= parseDuration(durationBounds.max)) | ||||||
|                         //     return channel.send("Too long idk");
 |                             return channel.send(`Bet duration is too long, maximum duration is ${durationBounds.max}`); | ||||||
| 
 | 
 | ||||||
|                         // Ask target whether or not they want to take the bet.
 |                         // Ask target whether or not they want to take the bet.
 | ||||||
|                         const takeBet = await askYesOrNo( |                         const takeBet = await askYesOrNo( | ||||||
|  | @ -82,8 +86,8 @@ export const BetCommand = new Command({ | ||||||
|                         ); |                         ); | ||||||
| 
 | 
 | ||||||
|                         if (takeBet) { |                         if (takeBet) { | ||||||
|                             // [ISSUE: volatile storage]
 |                             // [MEDIUM PRIORITY: bet persistence to prevent losses in case of shutdown.]
 | ||||||
|                             // Remove amount money from both parts to avoid duplication of money.
 |                             // Remove amount money from both parts at the start to avoid duplication of money.
 | ||||||
|                             sender.money -= amount; |                             sender.money -= amount; | ||||||
|                             receiver.money -= amount; |                             receiver.money -= amount; | ||||||
|                             Storage.save(); |                             Storage.save(); | ||||||
|  | @ -93,9 +97,9 @@ export const BetCommand = new Command({ | ||||||
| 
 | 
 | ||||||
|                             // Wait for the duration of the bet. 
 |                             // Wait for the duration of the bet. 
 | ||||||
|                             client.setTimeout(async () => { |                             client.setTimeout(async () => { | ||||||
|                                 // [Pertinence to reference the invocation message to let people find the bet more easily]
 |                                 // [TODO: when D.JSv13 comes out, inline reply to clean up.]
 | ||||||
|                                 // When bet is over, give a vote to ask people their thoughts.
 |                                 // When bet is over, give a vote to ask people their thoughts.
 | ||||||
|                                 const voteMsg = await channel.send(`VOTE: do you think that <@${target.id}> has won the bet?`); |                                 const voteMsg = await channel.send(`VOTE: do you think that <@${target.id}> has won the bet?\nhttps://discord.com/channels/${guild.id}/${channel.id}/${message.id}`); | ||||||
|                                 await voteMsg.react("✅"); |                                 await voteMsg.react("✅"); | ||||||
|                                 await voteMsg.react("❌"); |                                 await voteMsg.react("❌"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue