Aller au contenu
Afficher dans l'application

Une meilleure façon de naviguer. En savoir plus.

Asterobot

Une application plein écran sur votre écran d'accueil avec notifications push, badges et plus encore.

Pour installer cette application sur iOS et iPadOS
  1. Appuyez sur Icône de partage dans Safari
  2. Faites défiler le menu et appuyez sur Ajouter à l'écran d'accueil.
  3. Appuyez sur Ajouter dans le coin supérieur droit.
Pour installer cette application sur Android
  1. Appuyez sur le menu à trois points (⋮) dans le coin supérieur droit du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application.
  3. Confirmez en appuyant sur Installer.

0.7.0

Vos bots peuvent désormais discuter automatiquement dans le chat du jeu. Créez des profils de chat dans Asteroboard, et vos bots publieront vos annonces, répondront à leurs messages privés comme le ferait un joueur, réagiront aux messages des autres joueurs dans les canaux, conserveront leur statut et obéiront aux commandes envoyées en message privé depuis vos autres comptes, le tout grâce à un système de protection qui garantit le respect des limites imposées par le jeu.

Les nouvelles alarmes vous avertissent et agissent à votre place dès qu’un modérateur, un message privé, une mention ou n’importe quel message du jeu que vous avez choisi concerne l’un de vos bots. Les notifications peuvent apparaître dans Asteroboard ou être envoyées vers n’importe quel service Web, y compris votre téléphone.

Enfin, l’image Docker d’Asterobot repose désormais sur Docker Hardened Images, fonctionne avec des permissions strictement limitées et ouvre son interface Web dès que vous publiez son port.

✨ Ajouts

  • Des bots qui discutent comme des joueurs : le nouveau module de chat permet à un bot de communiquer dans le jeu à partir des profils de chat que vous lui attribuez. Activez-le depuis le nouvel onglet Chat du bot, choisissez les fonctionnalités à activer (annonces, réponses, déclencheurs, commandes et statut), puis sélectionnez les profils à utiliser dans l’ordre souhaité. Suivez son activité en temps réel : conditions d’attente de chaque annonce, état du système de protection et 200 dernières lignes, commandes et activations de déclencheurs. Le mode Simulation écrit dans la console ce que le bot aurait dit, ce qui permet de tester un profil sans risque.

  • Des annonces automatiques : chaque annonce publie l’un de ses messages dans les canaux que vous choisissez, attend un délai aléatoire défini par vos soins, puis recommence tant que ses conditions sont remplies : heures de la journée et jours de la semaine, carte, sous-zone ou zone, objet dans l’inventaire, kamas, niveau, participation ou non à un combat, déplacement ou non. Une annonce peut s’arrêter après un nombre défini d’envois, une durée déterminée ou à une date précise. Vous pouvez également lui faire jouer une émoticône ou une emote à chaque publication.

  • Des réponses aux messages privés comme le ferait un joueur : le bot répond en appliquant les règles de réponse de ses profils. La première règle correspondante l’emporte, par exemple une règle pour les joueurs demandant un prix et une autre pour les autres messages. Le bot attend le temps nécessaire pour lire le message et saisir sa réponse. Par défaut, un joueur ne reçoit qu’une réponse par heure : le bot répond au début de la conversation, puis reste silencieux. Il ne répond jamais à vos propres bots ni aux membres du staff.

  • Ne manquez aucun acheteur : les déclencheurs réagissent aux messages des autres joueurs dans les canaux, par exemple une recherche dans le canal Commerce concernant un objet vendu par le bot, une mention de son personnage ou un message contenant un lien vers un objet. Un déclencheur peut envoyer un message privé au joueur, publier un message dans un canal, déclencher une alarme, transmettre une information au script, ajouter le joueur à la liste des ignorés, jouer une émoticône ou une emote, inviter le joueur dans le groupe ou mettre le chat en pause. Les actions s’exécutent dans l’ordre que vous choisissez, avec une limite par défaut d’un déclenchement par heure et par joueur.

  • Contrôlez un bot depuis vos autres comptes : envoyez-lui en message privé !stop ou !start pour arrêter ou démarrer son script, !pause ou !resume pour mettre son chat en pause ou le reprendre, !say pour lui faire publier un message dans un canal, !status pour consulter son niveau, sa position, ses kamas et ses pods, ou !disconnect pour le déconnecter et, si vous le souhaitez, le reconnecter plus tard. Vos autres comptes ainsi que les personnages autorisés par un profil sur le serveur du bot peuvent envoyer des commandes. Un !stop envoyé par un inconnu reste un simple message.

  • Un statut qui reste cohérent : un profil de chat peut définir le statut du personnage à chaque connexion : Disponible, Absent avec votre message personnalisé, Privé ou Solo. Si vous modifiez vous-même le statut, votre choix reste prioritaire jusqu’à la prochaine connexion. Si le profil cesse de définir un statut, le statut précédent est rétabli.

  • Discutez sans vous faire réduire au silence : chaque message envoyé par un bot, qu’il provienne de ses profils, de ses scripts ou de la console, passe par le système de protection du chat. Celui-ci envoie les messages un par un, avec une limite de 6 messages par minute par défaut, configurable de 1 à 30 dans l’onglet Chat. Il respecte exactement le délai de récupération imposé par le jeu pour chaque canal avant d’y envoyer un nouveau message. Après le message « Too much spam! », il suspend les envois pendant une durée comprise entre 5 minutes et une heure, et il reste silencieux aussi longtemps que dure une mise au silence. L’option Arrêter les envois interrompt immédiatement les messages du bot, à l’exception de vos propres messages et de ceux des alarmes.

  • Des profils de chat réutilisables : chaque profil est un fichier contenant des annonces, des réponses, des déclencheurs, des commandes et un statut, stocké dans le dossier chatprofiles. Vous pouvez créer, copier, importer et exporter vos profils. Un même profil peut être utilisé par autant de bots que vous le souhaitez, et un bot peut en utiliser plusieurs simultanément. En cas de conflit, les variables du premier profil sont prioritaires. Les packages peuvent intégrer leurs propres profils dans chatprofiles/<name>.json. Chaque profil est vérifié lors de son enregistrement : les erreurs indiquent le champ concerné, et des avertissements signalent les objets, cartes ou zones absents de votre version du jeu, ainsi que les variables qui ne sont définies nulle part.

  • La nouvelle page Profils de chat dans Asteroboard : elle permet de créer et de modifier les profils à l’aide d’un formulaire affiché à côté du JSON, qui se met à jour en temps réel. Chaque message est prévisualisé et vérifié par rapport aux limites du jeu avant que le bot ne l’envoie.

  • Des messages qui ne semblent jamais préfabriqués : utilisez des formulations choisies aléatoirement ({Hi|Hello}), le nom du personnage, son niveau, sa carte, ses kamas ou ses pods, vos propres variables et de véritables liens vers les objets de l’inventaire. Un message auquel il manque un objet ou une valeur requise n’est pas envoyé.

  • Les scripts peuvent communiquer dans le chat grâce au nouveau module asterobot:chat : utilisez say() pour publier un message dans un canal et whisper() pour envoyer un message privé à un joueur. Les deux fonctions passent par le même système de protection et prennent en charge les formulations aléatoires, les variables et les liens vers les objets. Si un message n’est pas envoyé, le script reçoit la raison du refus.

  • Les scripts peuvent piloter le module de chat pendant leur exécution : ils peuvent l’activer avec enable() et le désactiver avec disable(), choisir ses fonctionnalités et ses profils avec setParts() et setProfiles() (y compris un objet profil créé directement par le script), suspendre et reprendre les envois avec pause() et resume(), définir des variables avec setVariable(), modifier les indicateurs utilisés par les conditions des profils avec setFlag() et activer le mode simulation avec setDryRun(). Lors d’une session relayée, seul le paramètre d’activation enregistré permet d’activer ou de désactiver le module.

  • Les scripts peuvent prendre en charge les conversations : onAnswer() permet à un script de répondre lui-même aux messages privés, avec jusqu’à 30 secondes pour produire une réponse asynchrone (async). onChat() reçoit les événements concernant chaque message envoyé, refusé ou traité, chaque annonce terminée ou épuisée de son objet, chaque suspension temporaire des envois et chaque déclencheur transmettant une information au script, avec le message à l’origine du déclenchement.

  • Des alarmes qui surveillent vos bots à votre place : les événements surveillés incluent un membre du staff qui contacte un bot, le prévient, le réduit au silence ou se trouve sur sa carte, un joueur qui lui envoie un message privé et le nom de son personnage mentionné dans un canal. Les règles configurées dans la nouvelle page Alarmes sont centralisées pour tous vos bots et peuvent surveiller chacun d’eux ou seulement certains. Elles déterminent les actions à effectuer : vous notifier, mettre le chat en pause, publier un message ou envoyer un message privé, lancer un package ou le script du bot, arrêter le script, attendre, envoyer un message dans le jeu, écrire dans la console du bot, définir un indicateur utilisé par les profils de chat ou déconnecter le bot pour le reconnecter ultérieurement. Par défaut, une intervention du staff met le chat du bot en pause pendant 30 minutes et vous envoie une notification. Les messages privés et les mentions déclenchent également une notification dans Asteroboard. Les règles sont stockées dans alarms.json.

  • Des alarmes sur votre téléphone : une alarme peut être envoyée vers n’importe quel service Web, y compris une application de messagerie, grâce à une requête HTTP configurable depuis la page Alarmes. Vous définissez sa méthode, son URL, ses en-têtes et son corps. Les informations de l’alarme remplissent automatiquement les champs, avec un échappement adapté à leur emplacement. Le bouton Tester envoie une requête à partir d’un événement d’exemple et affiche la réponse du service. En cas d’échec temporaire, la requête est réessayée après 2, 10 et 30 secondes. En cas d’échec définitif, la raison est affichée dans la console du bot.

  • Des alarmes pour tous les messages du jeu : indiquez le nom de n’importe quel événement envoyé par le jeu à un bot, comme game:CharacterLevelUpEvent, pour accéder à ses champs dans vos règles. Une règle peut tester le contenu d’un événement, par exemple une mise au silence uniquement, un niveau supérieur à 199 ou une ligne contenant « bot », et limiter sa fréquence de déclenchement pour chaque bot. Les messages qui ne correspondent à aucune règle ne génèrent aucun coût de traitement.

  • Les alarmes surveillent également le module de chat : les événements « Too much spam! », les refus d’envoi dans un canal, l’épuisement de l’objet d’une annonce, la fin d’une annonce et les événements déclenchés par les profils de chat sont tous disponibles dans la page Alarmes.

  • Les scripts peuvent déclencher leurs propres alarmes grâce au nouveau module asterobot:alarms : un script peut, par exemple, signaler un objet trouvé à un prix inférieur à un seuil défini pour permettre à vos règles de réagir. Utilisez raise("cheapItem", "Wheat at 8 k"). La fonction onAlarm() reçoit tous les autres événements du bot au moment où ils se produisent, indépendamment des règles configurées.

  • Toutes ces fonctionnalités sont également accessibles via l’API d’Asterobot :

    • GET / PUT /botmanager/{name}/chat/module : lire et enregistrer le module de chat d’un bot.

    • POST .../chat/send : faire envoyer un message par un bot via le système de protection.

    • POST .../chat/pause et .../chat/resume : suspendre et reprendre les envois.

    • /chatprofiles : gérer les profils de chat.

    • POST /chatprofiles/preview : prévisualiser un message avec plusieurs valeurs.

    • GET / PUT /alarms : lire et enregistrer les alarmes.

    • POST /alarms/destinations/test : tester une destination.

    Les événements botManager.chatModuleUpdated, botManager.chatActivity, chatProfiles.updated, alarms.updated, alarms.fired et alarms.notified signalent les modifications et les déclenchements correspondants.

  • Une nouvelle section Chat dans le guide utilisateur : disponible en anglais et en français, elle présente le module de chat, les profils de chat et les alarmes. La référence des scripts documente asterobot:chat et asterobot:alarms, avec l’ensemble de leurs messages d’erreur. Un nouveau tutoriel, Vendeur de blé, montre comment configurer un bot qui vend du blé dans le canal Commerce au prix de votre choix, publie une annonce, indique son stock aux joueurs qui demandent le prix et envoie un message privé à chaque acheteur.

  • Les scripts peuvent gérer la liste des joueurs ignorés : IgnoreRequest permet d’ajouter un joueur à cette liste, et IgnoreEvent fournit la réponse du serveur : IgnoreEvent.Success si l’ajout a réussi, ou IgnoreEvent.Error avec la raison de l’échec. Parmi les raisons possibles figurent AddFailureReason, notamment lorsque la liste est pleine ou que le joueur est inconnu. BlockListEvent fournit la liste des comptes bloqués, chaque compte étant décrit par un ContactInformation contenant son AccountTag, au format Nom#1234 visible par tous.

  • Les scripts peuvent rechercher et gérer les maisons en vente : HousesToSellRequest et HousesToSellFiltersRequest permettent de rechercher les maisons selon leur prix, leur zone, le nombre de pièces, de coffres et de métiers disponibles, avec un tri défini par RealEstateOrder. HousesToSellEvent renvoie les résultats page par page. HouseBuyRequest permet d’acheter une maison, tandis que HouseSellRequest permet de mettre une maison en vente, de modifier son prix ou de retirer son annonce.

  • Les scripts peuvent limiter l’expérience gagnée par le personnage : PlayerExperienceSetRequest permet de définir le pourcentage d’expérience reçu, de 0 à 100 %. Ils peuvent également consulter les modificateurs appliqués aux attaques de son arme, chacun représenté par un WeaponModifier dans CharacterCharacteristics.

  • Les scripts disposent d’informations plus détaillées sur les personnages rencontrés : les données décrivant un personnage incluent désormais sa guilde, son alliance, sa carte de guilde et son rang (GuildInformation, AllianceInformation, SocialMember et RankInformation), son état en mode épique (CharacterEpicInformation) et son rôle dans un groupe auquel vous appartenez ou dans lequel vous avez été invité (PartyMemberInformation et PartyInvitationMemberInformation). CharacterInformation indique également le début de la session du personnage et la fin de sa dernière session. PartyJoinEvent indique le Dungeon associé au groupe, MoodUpdateEvent identifie le personnage dont l’émoticône d’humeur a changé, CharacterColors indique le nombre d’emplacements de palette de couleurs débloqués et le nombre total disponible, et FightMutantInformation identifie le monstre incarné par un combattant mutant.

  • Configurez les paramètres depuis l’environnement : utilisez notamment docker run -e ou Docker Compose pour définir les variables suivantes :

    • ASTEROBOT_SERVER_LISTEN_ADDRESS : définit l’adresse et le port de l’interface Web.

    • ASTEROBOT_SERVER_SKIP_OPEN_FRONTEND : empêche Asterobot d’ouvrir un navigateur.

    • ASTEROBOT_WEBSITE_SHOW_QR_CODE : affiche le lien de connexion au site sous forme de QR code à scanner avec votre téléphone, directement dans docker logs.

    Lorsqu’une variable est définie, l’écran des paramètres refuse de modifier le paramètre correspondant et indique le nom de la variable concernée. Le fichier de configuration conserve sa propre valeur, qui sera réutilisée lorsque la variable ne sera plus définie.

  • Sachez exactement ce que vous exécutez : chaque image Docker contient désormais la liste de ses composants et les métadonnées standard, notamment sa version, sa date de publication et son site Web. Docker Hub et les outils d’analyse de sécurité peuvent ainsi afficher ces informations.

🔄 Modifications

  • Les messages saisis dans la console d’un bot passent désormais par son système de protection du chat, avant tous les autres messages du bot. Lorsque le jeu indique qu’un canal est temporairement indisponible, par exemple avec « You will be able to post again in 37 seconds », le système attend exactement le délai indiqué puis envoie automatiquement votre message. La console affiche également le temps d’attente. La zone de saisie accepte jusqu’à 256 caractères, comme dans le jeu.

  • La console masque les messages des joueurs ignorés par votre personnage, comme le fait le jeu. Cela s’applique aussi bien aux joueurs ignorés par un déclencheur d’un profil de chat qu’à ceux ignorés par votre client de jeu lorsqu’un bot est relayé, et ce jusqu’à ce que le personnage quitte le jeu. Les messages des membres du staff restent toujours visibles.

  • L’interface Web de l’image Docker est accessible dès que son port est publié, sans avoir besoin de modifier un fichier de configuration. L’option -p 127.0.0.1:8080:8080 limite l’accès à votre ordinateur. Si vous aviez défini un autre port dans le fichier de configuration, l’image écoute désormais sur le port 8080 par défaut. Pour choisir une autre adresse ou un autre port, utilisez ASTEROBOT_SERVER_LISTEN_ADDRESS, par exemple 0.0.0.0:9000.

  • Le champ de Character qui contient la classe et l’apparence du personnage s’appelle désormais CharacterInformation, conformément à la terminologie du jeu, au lieu de CharacterLook.

  • Les deux résultats possibles de la sélection d’un personnage portent désormais les noms CharacterSelectionEvent.Success et CharacterSelectionEvent.Error, afin d’éviter toute confusion avec IgnoreEvent.Success et IgnoreEvent.Error.

🗑️ Fonctionnalités supprimées

  • Docker Hub ne conserve désormais que la dernière version publiée, identifiée par son numéro de version et par le tag latest. Les anciennes versions sont supprimées lors de chaque nouvelle publication. L’image asterobot/asterobot permet ainsi de récupérer systématiquement la dernière version d’Asterobot.

🐛 Corrections

  • L’image Docker n’affiche plus l’erreur « Failed to open frontend » à chaque démarrage : aucun navigateur n’a besoin d’être ouvert à l’intérieur d’un conteneur.

  • Les journaux de docker logs et les fichiers de log ne contiennent plus de codes de couleur inutiles : les couleurs sont désormais réservées au terminal. La variable NO_COLOR permet également de les désactiver dans celui-ci.

🔒 Sécurité

  • L’image Docker repose désormais sur Docker Hardened Images. Elle ne contient ni shell ni gestionnaire de paquets : uniquement Asterobot et les certificats nécessaires à son fonctionnement. Le programme s’exécute avec un utilisateur non privilégié et son image de base est mise à jour à chaque publication.

Le conteneur fonctionne avec un système de fichiers en lecture seule, toutes les capacités Linux supprimées et l’élévation de privilèges bloquée. Les options recommandées sont :

--read-only --tmpfs /tmp --cap-drop ALL --security-opt no-new-privileges

Compte

Navigation

Recherche

Recherche

Configurer les notifications push du navigateur

Chrome (Android)
  1. Appuyez sur l'icône de cadenas à côté de la barre d'adresse.
  2. Tap Autorisations → Notifications.
  3. Ajustez vos préférences.
Chrome (Desktop)
  1. Cliquez sur l'icône représentant un cadenas dans la barre d'adresse..
  2. Select Paramètres du site.
  3. Find Notifications et ajustez vos préférences.