Add timeout command
This commit is contained in:
		
					parent
					
						
							
								33457e8270
							
						
					
				
			
			
				commit
				
					
						103f6ce538
					
				
			
		
					 1 changed files with 45 additions and 0 deletions
				
			
		
							
								
								
									
										45
									
								
								src/main/java/net/hypr/doki/commands/moderation/Timeout.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/main/java/net/hypr/doki/commands/moderation/Timeout.java
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | ||||||
|  | package net.hypr.doki.commands.moderation; | ||||||
|  | 
 | ||||||
|  | import com.freya02.botcommands.api.annotations.BotPermissions; | ||||||
|  | import com.freya02.botcommands.api.annotations.CommandMarker; | ||||||
|  | import com.freya02.botcommands.api.annotations.UserPermissions; | ||||||
|  | import com.freya02.botcommands.api.application.ApplicationCommand; | ||||||
|  | import com.freya02.botcommands.api.application.annotations.AppOption; | ||||||
|  | import com.freya02.botcommands.api.application.slash.GuildSlashEvent; | ||||||
|  | import com.freya02.botcommands.api.application.slash.annotations.JDASlashCommand; | ||||||
|  | import net.dv8tion.jda.api.Permission; | ||||||
|  | import net.dv8tion.jda.api.entities.Member; | ||||||
|  | import net.hypr.doki.utils.DurationUtils; | ||||||
|  | 
 | ||||||
|  | import java.time.Duration; | ||||||
|  | import java.time.OffsetDateTime; | ||||||
|  | 
 | ||||||
|  | @CommandMarker | ||||||
|  | @BotPermissions(Permission.MODERATE_MEMBERS) | ||||||
|  | @UserPermissions(Permission.MODERATE_MEMBERS) | ||||||
|  | public class Timeout extends ApplicationCommand { | ||||||
|  |     @JDASlashCommand( | ||||||
|  |             name = "timeout", | ||||||
|  |             subcommand = "set", | ||||||
|  |             description = "Times out a member" | ||||||
|  |     ) | ||||||
|  |     public void mute(GuildSlashEvent event, | ||||||
|  |                      @AppOption(name = "member") Member member, | ||||||
|  |                      @AppOption(name = "duration", description = "ex: 2h5m, must be between 1h and 7d") String duration) { | ||||||
|  |         Duration timeoutDuration = DurationUtils.parseDuration(duration); | ||||||
|  |         member.timeoutFor(timeoutDuration).queue(); | ||||||
|  |         event.replyFormat("Timed out %s for %s", member.getAsMention(), duration).queue(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @JDASlashCommand( | ||||||
|  |             name = "timeout", | ||||||
|  |             subcommand = "cancel", | ||||||
|  |             description = "Cancels the specified users timeout" | ||||||
|  |     ) | ||||||
|  |     public void cancelMute(GuildSlashEvent event, | ||||||
|  |                            @AppOption(name = "member") Member member) { | ||||||
|  |         OffsetDateTime timeoutEnd = member.getTimeOutEnd(); | ||||||
|  |         member.removeTimeout().queue(); | ||||||
|  |         event.replyFormat("Removed %s's timeout (%s remaining)", member.getAsMention(), DurationUtils.getTimeDifference(timeoutEnd)).queue(); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 floppydiskette
				floppydiskette