Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

  • Annonces

    • Pskyco

      Bukkit France passe sous Discord !   02/20/16

      Bukkit France est désormais passé sur Discord, au revoir donc notre vieux Teamspeak ! Téléchargez le client et venez nous rejoindre sur notre salon en suivant les instructions suivantes.
      M-à-j du 25/02/2017 : Désormais, seuls les comptes actifs sur le forum se verront donner l'accès au Discord, ce dernier n'est pas une plateforme d'aide de la même manière que le chat.
OpperDev

Skype bot in java

3 messages dans ce sujet

Posté(e) (modifié)

Je ne met pas le formulaire parce que ce n'est pas du minecraft ^^ :D si y'en a vraiment besoin merci a un admin de me le faire savoir :)

Donc alors voilà tout, j'ai décider de me faire un bot skype,

avec l'api "https://github.com/samczsun/Skype4J"

Donc tout fonctionne niquel, mais j'ai décider de me faire une petite classe pour faire des commandes automatiquement, que ce soit un peu plus propre,

Avec des arguments etc (je split le message avec " " ^^)

Mais ça fonctionne pas >,< quand la personne m'envois la commande et que j'utilise des arguments, ça fonctionne pas 

Voici le code :

 

Main.java :

Spoiler
public class Main {
	
	public static Main instance;
	
	public static Skype skype;
	
	public static void main(String[] args) throws NotParticipatingException, InvalidCredentialsException, ConnectionException {
		Skype skype = new SkypeBuilder("XXXXXXX", "XXXXXXX").withAllResources().build();
		System.out.println("Connexion...");
		skype.login();
		Main.skype = skype;
		System.out.println("Connecté!");
		SkypeCommand.registerCommands();
		skype.subscribe();
		// Do stuff
		//skype.logout();
	}
	
}

 

 

SkypeCommand.java :

Spoiler
public abstract class SkypeCommand {
	
	private final String commandName;
	
	private Skype skype = Main.skype;
	
	public SkypeCommand(String command) {
		this.commandName = command;
	}
	
	public abstract String execute(User sender, String[] args);
	
	public void register() {
		skype.getEventDispatcher().registerListener(new Listener() {
			  @EventHandler
			  public void onMessage(MessageReceivedEvent e) throws ConnectionException {
				  if(e.getMessage().getContent().toString().equals(commandName)) {
					  String[] args = e.getMessage().getContent().toString().split(" ");
					  e.getChat().sendMessage(execute(e.getMessage().getSender(), args));
				  }
			  }
		});
	}
	
	public static final void registerCommands() {
		new Help().register();
	}
	
}

 

 

Et enfin le Help.java :

Alors voici ce qui ne fonctionne pas :

Spoiler
public class Help extends SkypeCommand {
	
	public Help() {
		super("$help");
	}

	@Override
	public String execute(User sender, String[] args) {
		if(args[1] != null && !args[1].equals(""))return args[1];
		return "Without arguments";
	}
	
}

 

 

Et voici ce qui fonctionne :

Spoiler
public class Help extends SkypeCommand {
	
	public Help() {
		super("$help");
	}

	@Override
	public String execute(User sender, String[] args) {
		return "Without arguments";
	}
	
}

 

 

j'ai pas très bien expliqué au début mais je pense que vous comprendrez en voyant le Help.java :) 

Un grand merci d'avance :D

 

EDIT : Houla ! Je n'me relis pas visiblement ou très mal ! J'ai trouvé la possible source du problème : "equals(commandName)" dans le SkypeCommand.java ^^

Mais je laisse le topic AU CAS OU :D 

Modifié par OpperDev

Partager ce message


Lien à poster
Partager sur d’autres sites

Un tableau commence de 0 en java c'est pas comme ceci ?

 

if(args[0] != null && !args[0].equals(""))return args[0];

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 7 minutes, Dow1t a dit :

Un tableau commence de 0 en java c'est pas comme ceci ?

 

if(args[0] != null && !args[0].equals(""))return args[0];

Non, en fait j'ai la flemme de raccourcir le tableau de 1, donc l'args[0] c'est la commande ^^ ($<cmd>)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.