package com.juick.command; import com.juick.User; import com.juick.server.protocol.ProtocolListener; import com.juick.service.PrivacyQueriesService; import com.juick.service.UserService; import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.regex.Pattern; /** * @author ma1uta */ @Component @Getter public class BlacklistUser extends MultiArgsCommand { private static final Pattern PATTERN = Pattern.compile("^bl\\s+@([^\\s\\n+]+)", Pattern.CASE_INSENSITIVE); private final UserService userService; private final PrivacyQueriesService privacyQueriesService; @Autowired public BlacklistUser(UserService userService, PrivacyQueriesService privacyQueriesService) { this.userService = userService; this.privacyQueriesService = privacyQueriesService; } @Override public Pattern pattern() { return PATTERN; } @Override public String help() { return "BL @username - add @username to your blacklist"; } @Override protected String execute(User sender, ProtocolListener protocolListener, String... arguments) { User blUser = getUserService().getUserByName(arguments[0]); if (blUser != null) { PrivacyQueriesService.PrivacyResult result = getPrivacyQueriesService().blacklistUser(sender, blUser); if (result == PrivacyQueriesService.PrivacyResult.Added) { return "User added to your blacklist"; } else { return "User removed from your blacklist"; } } return "User not found"; } }