Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM eclipse-temurin:21-jre
WORKDIR /app
COPY build/libs/ClicBot-1.0-SNAPSHOT.jar app.jar
COPY build/libs/ClicBot-1.0-SNAPSHOT-all.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
14 changes: 7 additions & 7 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ pipeline {
stage('Build') {
steps {
sh 'chmod +x ./gradlew'
sh './gradlew build'
sh './gradlew shadowJar'
}
}

Expand All @@ -22,9 +22,9 @@ pipeline {
}
steps {
sh '''
docker stop bot-preprod || true
docker rm bot-preprod || true
docker run -d --name bot-preprod \
docker stop ares-preprod || true
docker rm ares-preprod || true
docker run -d --name ares-preprod \
-e BOT_TOKEN=$DISCORD_TOKEN \
ares-bot:develop
'''
Expand All @@ -38,13 +38,13 @@ pipeline {
}
steps {
sh '''
docker stop bot-prod || true
docker rm bot-prod || true
docker stop ares-prod || true
docker rm ares-prod || true
docker run -d --name bot-prod \
-e BOT_TOKEN=$DISCORD_TOKEN \
ares-bot:master
'''
}
}
}
}
}
12 changes: 11 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
plugins {
id("java")
java
id("com.gradleup.shadow") version "8.3.5"
}

tasks {
jar {
manifest {
attributes["Main-Class"] = "org.ares.Main" // remplace par ton vrai chemin de classe
}
}
}

group = "org.ares"
Expand All @@ -13,6 +22,7 @@ dependencies {
implementation("com.discord4j:discord4j-core:3.3.2")
implementation("org.apache.logging.log4j:log4j:2.17.1")
implementation("org.apache.logging.log4j:log4j-api:2.17.1")
implementation("ch.qos.logback:logback-classic:1.5.6")
}

tasks.test {
Expand Down
23 changes: 20 additions & 3 deletions src/main/java/org/ares/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,41 @@
import discord4j.core.DiscordClient;
import discord4j.core.GatewayDiscordClient;
import discord4j.core.event.domain.channel.TextChannelCreateEvent;
import discord4j.core.event.domain.command.ApplicationCommandEvent;
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
import discord4j.core.event.domain.lifecycle.ReadyEvent;
import discord4j.core.object.entity.User;
import discord4j.core.object.presence.ClientActivity;
import discord4j.core.object.presence.ClientPresence;
import discord4j.rest.RestClient;
import io.netty.handler.ssl.ClientAuth;

import org.ares.commands.CommandRegistry;
import org.ares.listeners.ListenerRegistry;
import org.ares.listeners.tickets.TicketCloseListener;
import org.ares.listeners.tickets.TicketListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import static org.ares.listeners.tickets.TicketListener.createTicketSalon;

public class Main {

private static final Logger logger = LoggerFactory.getLogger(Main.class);

public static void main(String[] args) {
DiscordClient client = DiscordClient.create(System.getenv("BOT_TOKEN")); // Créez une variable d'environement au lancement appelé "BOT_TOKEN".
GatewayDiscordClient gateway = client.login().block();
ClientPresence.online(ClientActivity.streaming("Regarde ClicDroit", "https://twitch.tv/"));


gateway.getEventDispatcher().on(ReadyEvent.class)
.subscribe(readyEvent -> {
User self = readyEvent.getSelf();
logger.info("%s connecté !" + self.getUsername());
self.getClient().updatePresence(ClientPresence.online(
ClientActivity.streaming("Regarde ClicDroit", "https://twitch.tv/")
));
});


// Listeners des events bouton et autres.
gateway.on(ButtonInteractionEvent.class, event ->
Expand All @@ -37,7 +54,7 @@ public static void main(String[] args) {

// Registery des commandes slash.
CommandRegistry registry = new CommandRegistry();
registry.registerToDiscord(RestClient.create(client.getCoreResources().getToken()), 1396773019690729524L);
registry.registerToDiscord(RestClient.create(client.getCoreResources().getToken()));
registry.listenTo(gateway);

// Registery des différente écoute, MemberJoin etc.
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/ares/commands/CommandRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public ISlashCommand getCommand(String name) {
return commands.get(name);
}

public void registerToDiscord(RestClient restClient, long guildId) {
public void registerToDiscord(RestClient restClient) {
long applicationId = restClient.getApplicationId().block();

List<discord4j.discordjson.json.ApplicationCommandRequest> requests = commands.values()
Expand All @@ -34,7 +34,7 @@ public void registerToDiscord(RestClient restClient, long guildId) {
.toList();

restClient.getApplicationService()
.bulkOverwriteGuildApplicationCommand(applicationId, guildId, requests)
.bulkOverwriteGlobalApplicationCommand(applicationId, requests)
.subscribe();
}

Expand Down
13 changes: 10 additions & 3 deletions src/main/java/org/ares/listeners/tickets/TicketListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import discord4j.core.object.PermissionOverwrite;
import discord4j.core.object.component.*;
import discord4j.core.object.entity.Guild;
import discord4j.core.object.entity.channel.Category;
import discord4j.core.spec.EmbedCreateSpec;
import discord4j.core.spec.MessageCreateSpec;
import discord4j.core.spec.TextChannelCreateSpec;
Expand All @@ -23,14 +24,20 @@ public class TicketListener {

public static Mono<Void> createTicketSalon(ButtonInteractionEvent event) {
Guild guild = event.getInteraction().getGuild().block();
var categoryId = 1534193855363289159L;
assert guild != null;
Category category = guild.getChannels()
.ofType(Category.class)
.filter(cat -> cat.getName().equalsIgnoreCase("\uD83C\uDFAB Tickets"))
.next()
.block();
if (category == null) {
return event.reply("La catégorie 'Ticket' n'existe pas sur ce serveur !").withEphemeral(true);
}
if (tickets.containsValue(event.getUser().getUsername())) {
return event.reply("Vous avez déja un ticket d'ouvert !").withEphemeral(true);
} else {
return guild.createTextChannel(TextChannelCreateSpec.builder()
.name("ticket-" + event.getUser().getUsername())
.parentId(Snowflake.of(categoryId))
.parentId(category.getId())
.permissionOverwrites(Set.of(
PermissionOverwrite.forRole(
guild.getId(),
Expand Down
Loading