Compare commits
	
		
			2 commits
		
	
	
		
			
				3ef88bde40
			
			...
			
				24961d3b17
			
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						
							
							
								
							
							
	
	
	24961d3b17 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	6663b08c8c | 
						
						
							
					 3 changed files with 14 additions and 2 deletions
				
			
		
							
								
								
									
										7
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										7
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -1,7 +1,14 @@
 | 
			
		|||
<component name="InspectionProjectProfileManager">
 | 
			
		||||
  <profile version="1.0">
 | 
			
		||||
    <option name="myName" value="Project Default" />
 | 
			
		||||
    <inspection_tool class="GrazieInspection" enabled="false" level="GRAMMAR_ERROR" enabled_by_default="false" />
 | 
			
		||||
    <inspection_tool class="InstantiationOfUtilityClass" enabled="false" level="WARNING" enabled_by_default="false" />
 | 
			
		||||
    <inspection_tool class="LanguageDetectionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
 | 
			
		||||
    <inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
 | 
			
		||||
      <option name="processCode" value="true" />
 | 
			
		||||
      <option name="processLiterals" value="true" />
 | 
			
		||||
      <option name="processComments" value="true" />
 | 
			
		||||
    </inspection_tool>
 | 
			
		||||
    <inspection_tool class="XmlHighlighting" enabled="false" level="ERROR" enabled_by_default="false" />
 | 
			
		||||
  </profile>
 | 
			
		||||
</component>
 | 
			
		||||
| 
						 | 
				
			
			@ -2,6 +2,7 @@ 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.Optional;
 | 
			
		||||
import com.freya02.botcommands.api.annotations.UserPermissions;
 | 
			
		||||
import com.freya02.botcommands.api.application.ApplicationCommand;
 | 
			
		||||
import com.freya02.botcommands.api.application.annotations.AppOption;
 | 
			
		||||
| 
						 | 
				
			
			@ -13,6 +14,7 @@ import net.hypr.doki.utils.DurationUtils;
 | 
			
		|||
 | 
			
		||||
import java.time.Duration;
 | 
			
		||||
import java.time.OffsetDateTime;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
@CommandMarker
 | 
			
		||||
@BotPermissions(Permission.MODERATE_MEMBERS)
 | 
			
		||||
| 
						 | 
				
			
			@ -25,13 +27,15 @@ public class Timeout extends ApplicationCommand {
 | 
			
		|||
    )
 | 
			
		||||
    public void timeout(GuildSlashEvent event,
 | 
			
		||||
                     @AppOption(name = "member") Member member,
 | 
			
		||||
                     @AppOption(name = "duration", description = "ex: 2h5m, must be between 1m and 7d") String duration) {
 | 
			
		||||
                     @AppOption(name = "duration", description = "ex: 2h5m, must be between 1m and 7d") String duration,
 | 
			
		||||
                     @Optional @AppOption(name = "reason") String reason) {
 | 
			
		||||
        Duration timeoutDuration = DurationUtils.parseDuration(duration);
 | 
			
		||||
        if (!DurationUtils.isDurationBetween(timeoutDuration, Duration.ofMinutes(1), Duration.ofDays(7))) {
 | 
			
		||||
            event.replyFormat("Invalid duration %s!, must be between 1m and 7d", duration).queue();
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        member.timeoutFor(timeoutDuration).queue();
 | 
			
		||||
        member.timeoutFor(timeoutDuration)
 | 
			
		||||
                .reason(Objects.requireNonNullElse(reason, "No reason provided")).queue();
 | 
			
		||||
        event.replyFormat("Timed out %s for %s", member.getAsMention(), duration).queue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,6 +47,7 @@ public class DurationUtils {
 | 
			
		|||
                .plusSeconds(seconds);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("BooleanMethodIsAlwaysInverted")
 | 
			
		||||
    public static boolean isDurationBetween(Duration target, Duration lowerThreshold, Duration upperThreshold) {
 | 
			
		||||
        if (target == lowerThreshold || target == upperThreshold) return true;
 | 
			
		||||
        return !target.isNegative() &&
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue