Création d'un espace de travail fonctionnel

Bien que le plugin ait été désactivé en grande partie.
This commit is contained in:
Mysaa 2021-07-10 20:31:09 +02:00
parent 9a373f960e
commit a63ee6d908
6 changed files with 129 additions and 21 deletions

3
.gitignore vendored
View File

@ -2,3 +2,6 @@
.settings .settings
.project .project
bin/ bin/
/.gradle/
/dependencies/
/build/

56
build.gradle Normal file
View File

@ -0,0 +1,56 @@
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java Library project to get you started.
* For more details take a look at the Java Libraries chapter in the Gradle
* user guide available at https://docs.gradle.org/4.8.1/userguide/java_library_plugin.html
*/
plugins {
// Apply the java-library plugin to add support for Java Library
id 'java-library'
}
repositories {
mavenCentral()
maven {
name 'm2-dv8tion'
url 'https://m2.dv8tion.net/releases'
}
flatDir {
dirs '../../Juliabot.git/build/libs'
dirs '../Jul\'Anathème.git/build/libs'
}
}
sourceSets {
main {
java {
srcDir 'src'
}
}
}
task copyDependencies(type: Copy) {
group 'build'
from configurations.default
into 'dependencies'
}
dependencies {
implementation 'net.dv8tion:JDA:4.3.0_293'
implementation 'com.thedeanda:lorem:2.1'
implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.22'
implementation group: 'org.reflections', name: 'reflections', version: '0.9.11'
implementation name:'JuliabotAPI'
//implementation name:'JuLSoundbox'
}

10
settings.gradle Normal file
View File

@ -0,0 +1,10 @@
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user guide at https://docs.gradle.org/4.8.1/userguide/multi_project_builds.html
*/
rootProject.name = "Jul'Anathème"

View File

@ -12,9 +12,11 @@ import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.reflections.Reflections; import org.reflections.Reflections;
import org.reflections.scanners.SubTypesScanner;
import com.bernard.juliabot.api.Command; import com.bernard.juliabot.api.Command;
import com.bernard.juliabot.api.Discord; import com.bernard.juliabot.api.Discord;
import com.bernard.juliabot.api.DiscordCCommande;
import com.bernard.juliabot.api.JuLIAddon; import com.bernard.juliabot.api.JuLIAddon;
import com.bernard.julianatheme.JuLIAnatheme.InvalidAnathemDescriptionException; import com.bernard.julianatheme.JuLIAnatheme.InvalidAnathemDescriptionException;
@ -28,7 +30,7 @@ import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.Event; import net.dv8tion.jda.api.events.Event;
@JuLIAddon(name = "julianatheme",devs="Mysaa",version = "20w33a") @JuLIAddon(name = "julianatheme",devs="Mysaa",version = "20w33a")
public class JuliAnathèmeManager { public class JuliAnathemeManager {
Map<Class<? extends JuLIAnatheme>,Set<JuLIAnatheme>> anathemes = new HashMap<>(); Map<Class<? extends JuLIAnatheme>,Set<JuLIAnatheme>> anathemes = new HashMap<>();
@ -38,17 +40,16 @@ public class JuliAnathèmeManager {
public static final String anathemeNamePattern = "^[a-zA-Z0-9_-]*$"; public static final String anathemeNamePattern = "^[a-zA-Z0-9_-]*$";
static { public JuliAnathemeManager() {
//Load everybody System.out.println("Instanciation du manager");
Reflections r = new Reflections(""); try {
for (Class<? extends JuLIAnatheme> clazz : r.getSubTypesOf(JuLIAnatheme.class)) { Class.forName("com.bernard.julianatheme.anathemes.StopTalkingAnatheme");
try { } catch (ClassNotFoundException e) {
registerAnatheme(clazz.getField("NAME").get(null).toString(), clazz); System.err.println("La classe n'a pas été trouvée.");
} catch (Exception e) { e.printStackTrace();
registerAnatheme(clazz.getSimpleName(), clazz);
}
} }
//registerAnatheme(StopTalkingAnatheme.NAME, StopTalkingAnatheme.class);
reloadAnathemes(); // La commande ne sert à rien
} }
@Discord(description="Lance les évents de toutes les malédictions chagées") @Discord(description="Lance les évents de toutes les malédictions chagées")
@ -68,8 +69,34 @@ public class JuliAnathèmeManager {
} }
} }
public void reloadAnathemes() {
// La commande n'utilise en réalité pas les paramètres.
reloadAnathemes(null);
}
@Command(admin=true,name="reloadAnathemes",description="Recharge la liste des anathèmes")
public void reloadAnathemes(DiscordCCommande commande) {
// registeredAnathemes.clear();
// registeredEvents.clear();
// anathemes.clear();
Reflections r = new Reflections("",new SubTypesScanner(false));
Set<Class<? extends JuLIAnatheme>> classes = r.getSubTypesOf(JuLIAnatheme.class);
for (Class<? extends JuLIAnatheme> clazz : classes) {
try {
registerAnatheme(clazz.getField("NAME").get(null).toString(), clazz);
} catch (Exception e) {
registerAnatheme(clazz.getSimpleName(), clazz);
}
}
System.out.println("Anathèmes enregistrés: "+registeredAnathemes.keySet());
}
@Command(admin=true,name="maudir",description="Maudit une personne. Usage 'maudir <@pseudo> <type> <extra>") @Command(admin=true,name="maudir",description="Maudit une personne. Usage 'maudir <@pseudo> <type> <extra>")
public void maudir(Message m,Guild g) { public void maudir(DiscordCCommande commande) {
Message m = commande.getMessage();
Guild g = m.getGuild();
if(m.getMentionedUsers().size() < 1) { if(m.getMentionedUsers().size() < 1) {
notifyUser("Il faut notifier l'utilisateur qu vous voulez maudir", m.getAuthor(), m.getChannel()); notifyUser("Il faut notifier l'utilisateur qu vous voulez maudir", m.getAuthor(), m.getChannel());
@ -138,7 +165,10 @@ public class JuliAnathèmeManager {
} }
@Command(admin=true,name="oracle",description="Demande à l'oracle, quelles sont les maledictions planant sur une personne. Usage: 'oracle <@pseudo>") @Command(admin=true,name="oracle",description="Demande à l'oracle, quelles sont les maledictions planant sur une personne. Usage: 'oracle <@pseudo>")
public void oracle(Message m,Guild g) { public void oracle(DiscordCCommande commande) {
Message m = commande.getMessage();
Guild g = m.getGuild();
if(m.getMentionedUsers().size() < 1) { if(m.getMentionedUsers().size() < 1) {
notifyUser("Il faut notifier l'utilisateur qu vous voulez 'oracler'", m.getAuthor(), m.getChannel()); notifyUser("Il faut notifier l'utilisateur qu vous voulez 'oracler'", m.getAuthor(), m.getChannel());
@ -171,8 +201,12 @@ public class JuliAnathèmeManager {
m.getChannel().sendMessage(dumper.build()).complete(); m.getChannel().sendMessage(dumper.build()).complete();
} }
@Command(admin=true,name="exorciser",description="Excorcise une personne (lui enlève sa malediction). Usage 'exoriser <@pseudo> <type>") @Command(admin=true,name="exorciser",description="Excorcise une personne (lui enlève sa malediction). Usage 'exorciser <@pseudo> <type>")
public void exorciser(Message m,Guild g) { public void exorciser(DiscordCCommande commande) {
Message m = commande.getMessage();
Guild g = m.getGuild();
if(m.getMentionedUsers().size() < 1) { if(m.getMentionedUsers().size() < 1) {
notifyUser("Il faut notifier l'utilisateur qu vous voulez exorciser", m.getAuthor(), m.getChannel()); notifyUser("Il faut notifier l'utilisateur qu vous voulez exorciser", m.getAuthor(), m.getChannel());
return; return;
@ -208,6 +242,7 @@ public class JuliAnathèmeManager {
notifyUser("Ohhhh "+cible.getNickname()+" a été purifié !!! Son anathème "+type+" a disparu !",m.getAuthor(), m.getChannel()); notifyUser("Ohhhh "+cible.getNickname()+" a été purifié !!! Son anathème "+type+" a disparu !",m.getAuthor(), m.getChannel());
} }
public static void registerAnatheme(String name, Class<? extends JuLIAnatheme> clazz) { public static void registerAnatheme(String name, Class<? extends JuLIAnatheme> clazz) {
System.out.println("Je vais registerer "+name); System.out.println("Je vais registerer "+name);
if(clazz == null) { if(clazz == null) {

View File

@ -6,7 +6,6 @@ import java.io.IOException;
import com.bernard.julianatheme.EventReciever; import com.bernard.julianatheme.EventReciever;
import com.bernard.julianatheme.JuLIAnatheme; import com.bernard.julianatheme.JuLIAnatheme;
import com.bernard.julsoundbox.JulSoundBox;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
@ -19,7 +18,7 @@ public class HelloAnatheme extends JuLIAnatheme {
public HelloAnatheme(Member cible, Member source) { public HelloAnatheme(Member cible, Member source) {
super(cible, source); super(cible, source);
} }
String soundName; String soundName;
@Override @Override
@ -35,7 +34,7 @@ public class HelloAnatheme extends JuLIAnatheme {
@Override @Override
public void initialize(String extra, Guild g) throws InvalidAnathemDescriptionException { public void initialize(String extra, Guild g) throws InvalidAnathemDescriptionException {
soundName = extra; soundName = extra;
if(JulSoundBox.checkUserSoundPermission(source.getUser(), extra)) //if(JulSoundBox.checkUserSoundPermission(source.getUser(), extra))
throw new InvalidAnathemDescriptionException("hello", "Le son "+extra+" n'est pas jouable (ou vous n'y avez pas accès) ... désolé"); throw new InvalidAnathemDescriptionException("hello", "Le son "+extra+" n'est pas jouable (ou vous n'y avez pas accès) ... désolé");
} }
@ -46,7 +45,7 @@ public class HelloAnatheme extends JuLIAnatheme {
@EventReciever @EventReciever
public void play(GuildVoiceJoinEvent event) { public void play(GuildVoiceJoinEvent event) {
JulSoundBox.sneakPlay(soundName, event.getChannelJoined()); //JulSoundBox.sneakPlay(soundName, event.getChannelJoined());
} }
} }

View File

@ -8,6 +8,7 @@ import java.util.List;
import com.bernard.julianatheme.EventReciever; import com.bernard.julianatheme.EventReciever;
import com.bernard.julianatheme.JuLIAnatheme; import com.bernard.julianatheme.JuLIAnatheme;
import com.bernard.julianatheme.JuliAnathemeManager;
import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.MessageBuilder;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
@ -19,6 +20,10 @@ public class StopTalkingAnatheme extends JuLIAnatheme {
public static final String NAME = "stopTalking"; public static final String NAME = "stopTalking";
static {
JuliAnathemeManager.registerAnatheme(NAME, StopTalkingAnatheme.class);
}
long[] channelsIDs; long[] channelsIDs;
@ -64,7 +69,7 @@ public class StopTalkingAnatheme extends JuLIAnatheme {
@Override @Override
public String dump() { public String dump() {
return "Sur les caneaux " + Arrays.toString(channelsIDs); return "Sur les canaux " + Arrays.toString(channelsIDs);
} }
@EventReciever @EventReciever