forked from Galactic/galactic-bot
Merge branch 'master' of https://github.com/Navy-gif/New-GBot
This commit is contained in:
commit
35acbf04f0
0
language/LocaleLoader.js
Normal file
0
language/LocaleLoader.js
Normal file
34
structure/moderation/infractions/Warning.js
Normal file
34
structure/moderation/infractions/Warning.js
Normal file
@ -0,0 +1,34 @@
|
||||
const { Infraction } = require('../interfaces/');
|
||||
|
||||
class Warning extends Infraction {
|
||||
|
||||
constructor(client, opts = {}) {
|
||||
|
||||
super(client, {
|
||||
type: 'WARN',
|
||||
targetType: 'user',
|
||||
executor: opts.executor.user,
|
||||
target: opts.target.user,
|
||||
reason: opts.reason || 'N/A',
|
||||
guild: opts.guild,
|
||||
channel: opts.channel,
|
||||
color: 0xe8d54e,
|
||||
dictionary: {
|
||||
past: 'warned',
|
||||
present: 'warn'
|
||||
}
|
||||
});
|
||||
|
||||
this.client = client;
|
||||
|
||||
this.member = opts.target;
|
||||
|
||||
}
|
||||
|
||||
async handle() {
|
||||
//Handle anything guild-related.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Warning;
|
3
structure/moderation/infractions/index.js
Normal file
3
structure/moderation/infractions/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
Warning: require('./Warning.js')
|
||||
};
|
63
structure/moderation/interfaces/Infraction.js
Normal file
63
structure/moderation/interfaces/Infraction.js
Normal file
@ -0,0 +1,63 @@
|
||||
const { stripIndents } = require('common-tags');
|
||||
|
||||
class Infraction {
|
||||
|
||||
constructor(client, opts = {}) {
|
||||
|
||||
this.client = client;
|
||||
|
||||
this.target = opts.target; //User or channel being targeted.
|
||||
this.targetType = opts.targetType; // 'user' or 'channek'.
|
||||
this.executor = opts.executor; //Whoever executed the command.
|
||||
|
||||
this.guild = opts.guild;
|
||||
this.channel = opts.channel;
|
||||
|
||||
this.case = null;
|
||||
this.type = opts.type; //What type of infraction (mute, kick, etc.)
|
||||
|
||||
this.timestamp = new Date().getTime();
|
||||
this.duration = opts.duration || null; //How long the event will last. Must be in milliseconds.
|
||||
this.expiration = opts.duration ? opts.duration + this.timestamp : null; //When the event will expire
|
||||
this.reason = opts.reason;
|
||||
|
||||
this.color = opts.color; //Infraction-defined hexadecimal value to dictate what color the embed is.
|
||||
this.dictionary = opts.dictionary || {}; // { past: 'banned', present: 'ban' } Infraction-defined object for the correct spellings.
|
||||
|
||||
this._resolved = false;
|
||||
|
||||
}
|
||||
|
||||
async resolve(opts) {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
_json() {
|
||||
return {
|
||||
id: `${this.guild.id}:${this.case}`,
|
||||
guild: this.guild.id,
|
||||
channel: this.channel ? this.channel.id : null,
|
||||
message: this.message ? this.message.id : null,
|
||||
executor: this.executor.id,
|
||||
target: this.target.id,
|
||||
targetType: this.targetType,
|
||||
type: this.type,
|
||||
case: this.case,
|
||||
duration: this.duration,
|
||||
expiration: this.expiration,
|
||||
reason: this.reason,
|
||||
timestamp: this.timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
get targetName() {
|
||||
return this.targetType === 'user'
|
||||
? this.target.tag
|
||||
: `#${this.target.name}`
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Infraction;
|
3
structure/moderation/interfaces/index.js
Normal file
3
structure/moderation/interfaces/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = {
|
||||
Infraction: require('./Infraction.js')
|
||||
};
|
Loading…
Reference in New Issue
Block a user