added serverInfo help

added userInfo command
added offsetDateTime to the custom date formatter
This commit is contained in:
Sheldan
2020-05-27 15:10:54 +02:00
parent be97e825cc
commit de4eeeacca
27 changed files with 195 additions and 22 deletions

View File

@@ -25,7 +25,7 @@
<#assign user>${note.fullUser.member.asMention}</#assign>
<#assign noteText>${note.note.note}</#assign>
<#assign noteId>${note.note.id}</#assign>
<#assign date>${formatInstant(note.note.created, "yyyy-MM-dd HH:mm:ss")}</#assign>
<#assign date>${formatDate(note.note.created, "yyyy-MM-dd HH:mm:ss")}</#assign>
<#include "user_notes_note_entry"><#else><#include "user_notes_no_notes">
</#list>"
}

View File

@@ -34,7 +34,7 @@
},
{
"name": "<#include "mute_log_muted_until_field_title">",
"value": "${formatInstant(mute.muteTargetDate, "yyyy-MM-dd HH:mm:ss")}"
"value": "${formatDate(mute.muteTargetDate, "yyyy-MM-dd HH:mm:ss")}"
}
],
"footer": {

View File

@@ -37,7 +37,7 @@
},
{
"name": "<#include "unMute_log_muted_since_field_title">",
"value": "${formatInstant(mute.muteDate, "yyyy-MM-dd HH:mm:ss")}"
"value": "${formatDate(mute.muteDate, "yyyy-MM-dd HH:mm:ss")}"
},
{
"name": "<#include "mute_log_mute_duration_field_title">",

View File

@@ -2,10 +2,10 @@
<#assign reason>${warning.warning.reason}</#assign>
<#assign warnedUserText><#if warning.warnedUser.member??>${warning.warnedUser.member.asMention}(${warning.warnedUser.member.user.id})<#else>${warning.warnedUser.aUserInAServer.id}</#if></#assign>
<#assign warningUserText><#if warning.warningUser.member??>${warning.warningUser.member.asMention}(${warning.warningUser.member.user.id})<#else>${warning.warningUser.aUserInAServer.id}</#if></#assign>
<#assign warnDate>${formatInstant(warning.warning.warnDate, "yyyy-MM-dd HH:mm:ss")}</#assign>
<#assign warnDate>${formatDate(warning.warning.warnDate, "yyyy-MM-dd HH:mm:ss")}</#assign>
<#include "warnings_warn_entry_text">
<#if warning.warning.decayed>
<#assign decayDate>${formatInstant(warning.warning.decayDate, "yyyy-MM-dd HH:mm:ss")}</#assign>
<#assign decayDate>${formatDate(warning.warning.decayDate, "yyyy-MM-dd HH:mm:ss")}</#assign>
<#include "warnings_warn_is_decayed">
</#if>

View File

@@ -9,7 +9,7 @@
},
<#assign messageCount>${closedThread.messages?size}</#assign>
<#assign user>user</#assign>
<#assign startDate>${formatInstant(closedThread.created,"yyyy-MM-dd HH:mm:ss")}</#assign>
<#assign startDate>${formatDate(closedThread.created,"yyyy-MM-dd HH:mm:ss")}</#assign>
<#assign duration>${fmtDuration(duration)}</#assign>
"description": "<#include "close_closing_description">"
}

View File

@@ -0,0 +1,77 @@
package dev.sheldan.abstracto.utility.commands;
import dev.sheldan.abstracto.core.command.UtilityModuleInterface;
import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.service.BotService;
import dev.sheldan.abstracto.core.service.ChannelService;
import dev.sheldan.abstracto.utility.config.features.UtilityFeature;
import dev.sheldan.abstracto.utility.models.template.commands.userinfo.UserInfoModel;
import net.dv8tion.jda.api.entities.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Component
public class UserInfo extends AbstractConditionableCommand {
@Autowired
private ChannelService channelService;
@Autowired
private BotService botService;
@Autowired
private UserInfo self;
@Override
public CommandResult execute(CommandContext commandContext) {
List<Object> parameters = commandContext.getParameters().getParameters();
Member memberToShow = parameters.size() == 1 ? (Member) parameters.get(0) : commandContext.getUserInitiatedContext().getMember();
UserInfoModel model = (UserInfoModel) ContextConverter.fromCommandContext(commandContext, UserInfoModel.class);
if(!memberToShow.hasTimeJoined()) {
botService.forceReloadMember(memberToShow).thenAccept(member -> {
model.setMemberInfo(member);
self.sendResponse(commandContext, model);
});
} else {
model.setMemberInfo(memberToShow);
self.sendResponse(commandContext, model);
}
return CommandResult.fromSuccess();
}
@Transactional
public void sendResponse(CommandContext commandContext, UserInfoModel model) {
channelService.sendEmbedTemplateInChannel("userInfo_response", model, commandContext.getChannel());
}
@Override
public CommandConfiguration getConfiguration() {
List<Parameter> parameters = new ArrayList<>();
parameters.add(Parameter.builder().type(Member.class).name("member").templated(true).optional(true).build());
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("userInfo")
.module(UtilityModuleInterface.UTILITY)
.templated(true)
.causesReaction(false)
.parameters(parameters)
.help(helpInfo)
.build();
}
@Override
public FeatureEnum getFeature() {
return UtilityFeature.UTILITY;
}
}

View File

@@ -0,0 +1,49 @@
{
"author": {
"name": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
"avatar": "${memberInfo.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"thumbnail": "${memberInfo.user.effectiveAvatarUrl}",
"fields": [
{
"name": "<#include "userInfo_response_embed_id_field_title">",
"value": "${memberInfo.user.id}",
"inline": "true"
},
<#if memberInfo.nickname?has_content>
{
"name": "<#include "userInfo_response_embed_nickname_field_title">",
"value": "${memberInfo.nickname}",
"inline": "true"
},
</#if>
{
"name": "<#include "userInfo_response_embed_status_field_title">",
"value": "${memberInfo.onlineStatus.key}",
"inline": "true"
},
{
"name": "<#include "userInfo_response_embed_joined_field_title">",
"value": "${formatDate(memberInfo.timeJoined, "yyyy-MM-dd HH:mm:ss")}",
"inline": "true"
},
{
"name": "<#include "userInfo_response_embed_registered_field_title">",
"value": "${formatDate(memberInfo.timeCreated, "yyyy-MM-dd HH:mm:ss")}",
"inline": "true"
}
<#if memberInfo.activities?size gt 0>
,
{
"name": "<#include "userInfo_response_embed_activity_field_title">",
"value": "<#list memberInfo.activities as activity>${activity.type}<#sep>, </#list>",
"inline": "true"
}
</#if>
]
}

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.utility.models.template.commands.userinfo;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
@Getter
@Setter
@SuperBuilder
public class UserInfoModel extends UserInitiatedServerContext {
private Member memberInfo;
}