2022-04-01 16:59:51 +08:00
|
|
|
package cc.sukazyo.cono.morny.bot.command;
|
|
|
|
|
|
|
|
import cc.sukazyo.cono.morny.MornyCoeur;
|
2022-10-04 15:18:42 +08:00
|
|
|
import cc.sukazyo.cono.morny.util.tgapi.InputCommand;
|
2022-04-01 16:59:51 +08:00
|
|
|
import com.pengrad.telegrambot.model.Chat;
|
|
|
|
import com.pengrad.telegrambot.model.Update;
|
|
|
|
import com.pengrad.telegrambot.request.DeleteMessage;
|
|
|
|
import com.pengrad.telegrambot.request.GetChatMember;
|
|
|
|
|
|
|
|
import javax.annotation.Nonnull;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
|
2022-04-02 17:12:04 +08:00
|
|
|
import static cc.sukazyo.cono.morny.Log.logger;
|
|
|
|
|
2022-04-01 16:59:51 +08:00
|
|
|
public class DirectMsgClear implements ISimpleCommand {
|
|
|
|
|
2022-05-22 14:19:56 +08:00
|
|
|
@Nonnull @Override public String getName () { return "r"; }
|
2022-04-01 16:59:51 +08:00
|
|
|
|
|
|
|
@Nullable @Override public String[] getAliases () { return new String[0]; }
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void execute (@Nonnull InputCommand command, @Nonnull Update event) {
|
|
|
|
|
2022-04-02 17:12:04 +08:00
|
|
|
logger.debug("Executing command /r");
|
2022-04-01 16:59:51 +08:00
|
|
|
if (event.message().replyToMessage() == null) return;
|
2022-04-02 17:12:04 +08:00
|
|
|
logger.trace("Message is a reply");
|
2022-04-01 16:59:51 +08:00
|
|
|
if (event.message().replyToMessage().from().id() != MornyCoeur.getUserid()) return;
|
2022-04-02 17:12:04 +08:00
|
|
|
logger.trace("Message is from me");
|
|
|
|
if (System.currentTimeMillis()/1000 - event.message().replyToMessage().date() > 48*60*60) return;
|
|
|
|
logger.trace("Message is not older than 48 hours");
|
2022-04-01 16:59:51 +08:00
|
|
|
|
2022-04-02 17:12:04 +08:00
|
|
|
final boolean isTrusted = MornyCoeur.trustedInstance().isTrusted(event.message().from().id());
|
2022-04-01 16:59:51 +08:00
|
|
|
|
|
|
|
if (
|
|
|
|
isTrusted || (
|
|
|
|
event.message().replyToMessage().replyToMessage() != null &&
|
|
|
|
event.message().replyToMessage().replyToMessage().from().id().equals(event.message().from().id())
|
|
|
|
)
|
|
|
|
) {
|
|
|
|
|
|
|
|
MornyCoeur.extra().exec(new DeleteMessage(
|
|
|
|
event.message().chat().id(), event.message().replyToMessage().messageId()
|
|
|
|
));
|
|
|
|
if (event.message().chat().type() == Chat.Type.Private || (
|
|
|
|
MornyCoeur.extra().exec(
|
|
|
|
new GetChatMember(event.message().chat().id(), event.message().from().id())
|
|
|
|
).chatMember().canDeleteMessages()
|
|
|
|
)) {
|
|
|
|
MornyCoeur.extra().exec(new DeleteMessage(
|
|
|
|
event.message().chat().id(), event.message().messageId()
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
2022-04-02 17:12:04 +08:00
|
|
|
} else logger.trace("User is not trusted");
|
2022-04-01 16:59:51 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|