SOLVED Le Clic droit + nom sur mob


  • bonjour j’aimerais savoir quels sont les codes svp pour :

    Lors d’un clic droit sur un bloc et/ou item : ouvir un site web (url,lien) [genre http:youtube.com/user/…]

    Lors d’un clic droit sur un bloc avec une épée : invoquer la foudre sur ce bloc ci

    pour le mob j’ai essayer le code de la 1.6.4 mais sa ne fait acun résultat au dessus de la tete du mob.

    Merci de vos réponses  🙂


  • Tu mets ça dans la fonction d’interaction pour le site web :

    
     Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
       if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
           try {
               desktop.browse(new URL("ton lien").toURI());
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
    

  • Pour le clique droit, c’est la méthode interact(EntityPlayer).

    Pour l’épée, il faut faire player.rayTrace.



  • merci les gars je vais essayer sinon sosoh je l’ai déja fait et sa ne donne aucun résultat et il m’a obliger a creer une fonction pour DoRenderLiving


  • sosoh je l’ai déja fait et sa ne donne aucun résultat et il m’a obliger a creer une fonction pour DoRenderLiving
    Scarex je n’ai pas compris.
    merci gugu pour ce code  🙂
    moi je veux que quand ce bloc soit poser et quand je clique droit dessus sa mouvre internet
    voici la classe du bloc(je changerail le lien quand sa marchera ;))

    :::

    package com.google.monpetitflocon.modtest.common;
    
    import java.awt.Desktop;
    import java.net.URL;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public class BlockTutoriel extends Block
    {
    
    protected BlockTutoriel(Material material)
    {
    super(material.wood);
    this.setCreativeTab(ModTest.tutorialCreativeTabs);
    }
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
     Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
       if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
           try {
               desktop.browse(new URL("ton lien").toURI());
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
    return stack;
    
    }
    
    }
    

    :::
    merci de me donner le code public right clic pour plus de faciliter
    return stack obligatoire dans le cas si dessus et ce code ne marche pas bien evidament :shy:


  • @‘monpetitflocon’:

    sosoh je l’ai déja fait et sa ne donne aucun résultat et il m’a obliger a creer une fonction pour DoRenderLiving
    Scarex je n’ai pas compris.
    merci gugu pour ce code  🙂
    moi je veux que quand ce bloc soit poser et quand je clique droit dessus sa mouvre internet
    voici la classe du bloc(je changerail le lien quand sa marchera ;))

    :::

    package com.google.monpetitflocon.modtest.common;
    
    import java.awt.Desktop;
    import java.net.URL;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public class BlockTutoriel extends Block
    {
    
    protected BlockTutoriel(Material material)
    {
    super(material.wood);
    this.setCreativeTab(ModTest.tutorialCreativeTabs);
    }
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
     Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
       if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
           try {
               desktop.browse(new URL("ton lien").toURI());
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
    return stack;
    
    }
    
    }
    

    :::

    merci de me  donner le code public right clic pour plus de faciliter
    return stack obligatoire dans le cas si dessus et ce code ne marche pas bien evidament :shy:

    Conseil que je donne tout le temps : Source -> override or implement methods ou Alt + shift + s -> override or implement methods pour override les fonctions (cette méthode empêche de se tromper sur les paramètres les noms de fonctions etc. Dans ton cas, la fonction onItemRightClick ne peut pas marcher car ton block est un block (obviously) et non un Item, tu as 2 méthodes pour çà :
    -changer ton block en Item (es-tu obligé d’utiliser un block plutôt qu’un item ?)
    -créer un Item associé à ton block (regarde le tutoriel de Robin car je me rappelle plus comment faire)
    -mettre la méthode du click droit sur ton mob (interact(EntityPlayer player) méthode).

    Mais je ne comprends pas vraiment ce que tu veux faire, explique mieux : quand est-ce que tu veux ouvrir internet ? quand est-ce que tu veux avoir le nom du mob ? etc.

  • Administrateurs Rédacteurs Moddeurs confirmés

    Ou utilise la fonction onBlockActivated …
    Ton code actuel ne risque pas de fonctionner puisque tu utilises une fonction qui n’existe pas dans Block.java, et donc ne sera jamais appelé.


  • scarex je veux ouvrir internet quand on clique sur le bloc et pour le mob c’est son nom comme un name tag quoi


  • @‘monpetitflocon’:

    scarex je veux ouvrir internet quand on clique sur le bloc et pour le mob c’est son nom comme un name tag quoi

    tu réécris la fonction onBlockActivated et dedans tu mets :

    
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
    try {
    desktop.browse(new URI("http://scarex.on.vg/about")); // Placement de produit spotted
    } catch (Exception e) {
    ;
    }
    }
    
    

  • ne marche pas le code alair bon mais dans le jeu rien


  • Ajoute un println dans ta méthode et regarde si tu as un output dans la console.


  • @‘monpetitflocon’:

    ne marche pas le code alair bon mais dans le jeu rien

    Je penses que tu n’as pas la bonne fonction, as-tu fait Alt + shift + s puis override or implement methods pour avoir la fonction ? Si la réponse est non, essaie en faisant çà.


  • déja fait ne marche pas et quel est le code pour la foudre sa devrait etre plus simple


  • @‘monpetitflocon’:

    déja fait ne marche pas et quel est le code pour la foudre sa devrait etre plus simple

    Pour la foudre, il faut utiliser le rayTrace et utiliser le MovingObjectPosition pour faire spawner l’éclair.


  • ok merci je testerai


  • Pour afficher le nom du mob, rajoute dans la classe de ce dernier :

    this.setCustomNameTag("tonNom");
    

  • Merci mec et tu conaitrais pas le moyen de customiser les drop (plusieurs drop et drops rare) et fixer l’id d’un oeuf genre 383:458 au lieu de 383:3 car si on met d’autres mods l’id de loeuf change et c pas pratique 😉
    Scarex je met quoi comme code car je trouve pas pour l’éclaire


  • @‘monpetitflocon’:

    Merci mec et tu conaitrais pas le moyen de customiser les drop (plusieurs drop et drops rare) et fixer l’id d’un oeuf genre 383:458 au lieu de 383:3 car si on met d’autres mods l’id de loeuf change et c pas pratique 😉
    Scarex je met quoi comme code car je trouve pas pour l’éclaire

    MovingObjectPosition m = player.rayTrace(distance, partialTick);
    puis tu récupère le block et tu y fais apparaître un éclair.


  • il me dit de creer une classe pour player c pas normal