Exemple #1
0
    async def warn_note(self, ctx, user: typing.Union[discord.Member, discord.User], *, reason):
        """
        Adds a warning to a user without DM'ing them
        Usage: .warnNote <user> <reason>

        :param ctx: context object
        :param user: user to add a note for
        :param reason: reason for the note
        """
        attachments = []
        if len(ctx.message.attachments) > 0:
            for i in ctx.message.attachments:
                attachments.append(await i.to_file())

        if str(user.id) in self.warns:
            self.warns[str(user.id)].append(reason)
        else:
            self.warns[str(user.id)] = [reason]

        save_json(os.path.join("config", "warns.json"), self.warns)

        if isinstance(user, discord.Member):
            await ctx.send(
                "Warning added for " + user.display_name + " (" + str(user.id) + "), this is their " +
                make_ordinal(len(self.warns[str(user.id)])) + " warning"
            )
        else:
            await ctx.send(
                "Warning added for " + user.name + " (" + str(user.id) + "), this is their " +
                make_ordinal(len(self.warns[str(user.id)])) + " warning"
            )
Exemple #2
0
    async def warn(self, ctx, member: discord.Member, *, reason):
        """
        Warns a specific user for given reason
        Usage: .warn <member> <reason>

        :param ctx: context object
        :param member: member of the server to warn
        :param reason: reason to log and DM
        """
        attachments = []
        if len(ctx.message.attachments) > 0:
            for i in ctx.message.attachments:
                attachments.append(await i.to_file())

        if len(reason) > 0:
            await member.send("You were warned in the " + ctx.guild.name + ". Reason:\n> " + reason, files=attachments)
        else:
            await ctx.send("No warning to send")
            return

        if str(member.id) in self.warns:
            self.warns[str(member.id)].append(reason)
        else:
            self.warns[str(member.id)] = [reason]

        save_json(os.path.join("config", "warns.json"), self.warns)

        await ctx.send(
            "Warning sent to " + member.display_name + " (" + str(member.id) + "), this is their " +
            make_ordinal(len(self.warns[str(member.id)])) + " warning"
        )