IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Utiliser un listener dans plusieur classes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut Utiliser un listener dans plusieur classes
    Salut, j'utilise l'API JDA pour faire un bot Discord. Pour l'instant ça marche avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class App extends ListenerAdapter {
    	public static void main(String[] args) throws Exception {
    		JDA jda = new JDABuilder(AccountType.BOT).setToken(Ref.token).buildBlocking();
    		jda.addEventListener(new App());
    	}
     
    	@Override
    	public void onMessageReceived(MessageReceivedEvent evt) {
    		MessageChannel objMsgCh = evt.getChannel();
    		Message objMsg = evt.getMessage();
     
    		if (objMsg.getContentRaw().equalsIgnoreCase(Ref.prefix+"ping")) {
    			objMsgCh.sendMessage("Pong!").queue();
    		}
     
    	}
    }
    Mais j'aimerais maintenant creer de nouvelles classes par exemple pour commencer la classe "Quizz" pour ajouter a mon bot la possibilité de generer un petit jeu de type questions-reponses. Sauf que je vais avoir dans cette classe (et dans d'autres plus tard) besoin de reagir aux events. Mais pour ça je ne sais pas du tout comment m'y prendre et encore moins comment je suis supposé le faire "proprement"

    Si quelqu'un peut m'aider Merci d'avance

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut


    Je te conseille de créer un attribut ListenerAdapter dans ta classe plutôt que d'étendre cet objet.
    Puis tu surcharge la méthode onMessageReceived de cet atribut pour régair comme tu le souhaite.
    Enfin, tu enregistre ton attribut comme EventListener.

    Tu peux donc dans toute tes classes créer un attribut de la sorte, plutot qu'elle étende toute la Classe ListenerAdapter. (C'est aussi plus logique que tes classes manipule un Listener plutôt qu'elle soit un Listener).

    Pour ton Quizz, tu peux faire que ta réaction à un evenement soit un switch-case (ou plusieurs if) et tu réagis différement en fonction de l'event.

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/01/2015, 16h22
  2. Utiliser un attribut dans plusieurs classes
    Par skflers61 dans le forum Général Java
    Réponses: 7
    Dernier message: 20/10/2014, 21h48
  3. utiliser les mêmes variable dans plusieurs class
    Par hterrolle dans le forum Langage
    Réponses: 2
    Dernier message: 16/11/2007, 21h11
  4. Function utilisable dans plusieurs classes
    Par zulot dans le forum C++
    Réponses: 7
    Dernier message: 05/06/2007, 00h01
  5. Utilisation de variables dans plusieurs classes
    Par dedeloux dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2005, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo