commit 2adde2ef3fa414c91e97504ac962b11cbba9c6e2 Author: Mysaa Date: Mon May 24 15:08:55 2021 +0200 Premier commit - Inclusion dans le système git diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..572533e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.classpath +.settings +.project +bin/ diff --git a/src/MyMessage.java b/src/MyMessage.java new file mode 100644 index 0000000..69c6e53 --- /dev/null +++ b/src/MyMessage.java @@ -0,0 +1,12 @@ +import com.bernard.juliaReact.ActionableMessage; + +import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent; + +public class MyMessage extends ActionableMessage { + + @ReAction(emotes = "", stackable = false) + public void play(MessageReactionAddEvent e) { + + } + +} diff --git a/src/com/bernard/juliaReact/ActionableMessage.java b/src/com/bernard/juliaReact/ActionableMessage.java new file mode 100644 index 0000000..382f4b8 --- /dev/null +++ b/src/com/bernard/juliaReact/ActionableMessage.java @@ -0,0 +1,15 @@ +package com.bernard.juliaReact; + +public abstract class ActionableMessage { + + + public boolean isExclusive(){ + return true; + } + + public static @interface ReAction{ + public boolean stackable(); + public String[] emotes(); + public int pos() default -1; + } +} diff --git a/src/com/bernard/juliaReact/ReactCommandRegistrar.java b/src/com/bernard/juliaReact/ReactCommandRegistrar.java new file mode 100644 index 0000000..46baf0c --- /dev/null +++ b/src/com/bernard/juliaReact/ReactCommandRegistrar.java @@ -0,0 +1,72 @@ +package com.bernard.juliaReact; + +import java.lang.reflect.Method; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import com.bernard.discord.api.Discord; + +import net.dv8tion.jda.core.JDA; +import net.dv8tion.jda.core.entities.Guild; +import net.dv8tion.jda.core.entities.Message; +import net.dv8tion.jda.core.entities.MessageReaction.ReactionEmote; +import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent; + +public class ReactCommandRegistrar { + + JDA api; + + Set messagesToManage = new HashSet<>(); + + public ReactCommandRegistrar(JDA api) { + + } + + public void registerMessage(Message message, ActionableMessage action) { + + //If message registered, unregister it + + } + + public void unregisterMessage(Message message) { + + } + + @Discord(description = "Parse reaction from messageCommands") + public void onReaction(MessageReactionAddEvent react) { + if(!messagesToManage.contains(react.getMessageIdLong())) + return;//Le message n'est pas géré, laissez les réactions tranquiles; + } + + public final ReactionEmote toReactionEmote(String s,Guild g) { + Matcher m = Pattern.compile("$<:([a-z]+):([0-9]+)>^").matcher(s); + if(m.find()) + return new ReactionEmote(g.getEmoteById(m.group(2))); + else + return new ReactionEmote(s, null, api); + + } + + public class ActionnableInfos{ + List managed; //Liste des réactions posées par julia (seulement l'item selectionné pour les loop) + List toLaunch; + Set unauthorized; // Liste des réactions non-autorisées (les items non-sélectionnés des loop) + boolean exclusive; + Map> loops;// + + public ActionnableInfos(ActionableMessage m) { + Class clazz = m.getClass(); + clazz.getName(); + // TODO Auto-generated constructor stub + } + + public boolean canReact(ReactionEmote e) { + return !(unauthorized.contains(e) || exclusive && !managed.contains(e)); + } + } + +}