You should consider joining our Discord to ask for support.

We created a support channel using the new Discord Forum feature!

You can also visit our new website, it has a help section in English and French

0 like 0 dislike
627 views
in Crash by (390 points)

Plop !

Mes DiscordWebhooks ont décidé de ne plus fonctionner en .26 (ils marchent encore sur la version live .24), pourtant le code n'a pas changé entre temps.

require 'json'
require 'net/http'
 
ENV['SSL_CERT_FILE'] ||= './lib/cert.pem' if $0 == 'Game.rb' # Launched from PSDK
 
module DiscordWebhooks
  DISCORD_WEBHOOK_URI = {
    :default => URI('xx')
    #, :testing => URI('xxx')
  }
  module_function
    # @overload post(data)
    #   Post data to the default DISCORD_WEBHOOK_URI
    #   @param data [Hash] the webhook data
    # @overload post(url, data)
    #   Post data to a Discord Webhook using an URL or an URI
    #   @param url [URI, String] the Discord Webhook
    #   @param data [Hash] the webhook data
    #   @param key [String] the key in DISCORD_WEBHOOK_URI
    def post(url, data = url, key = :default)
        url = DISCORD_WEBHOOK_URI[key] if url.is_a?(Hash)
        url = URI(url) if url.is_a?(String)
        begin
            Net::HTTP.post(url, data.to_json, "Content-Type" => "application/json")
        rescue Exception
        end
        p "ok"
    end
    def test()
        Thread.new do
          post(
            username: 'Pokemon Prisme',
            content: "Test",
            embeds: [
              {
                "description": "Test"
              }
            ]
          )
        end
        p "done"
    end
end

Ce que je sais :

  • DISCORD_WEBHOOK_URI est inchangé et suivre le lien me mène bien à Discord sans erreur.
  • "ok" et "done" s'affiche correctement
  • La console ne renvoie pas d'erreur à l'appel de DiscordWebhooks.test()

 Si vous avez des idées n'hésitez pas, merci :D

1 Answer

0 like 0 dislike
by (14.8k points)
selected by
 
Best answer

Essaye avec ça :

def test()
        Thread.new do
          post(
{
            "username": "Pokémon Prisme",
            "content": "Test",
            "embeds": [
              {
                "description": "Test"
              }
            ]
}
          )
        end
        p "done"
    end
by (14.8k points)
Bon Q2A c'est de la merde pour le code, mais en gros passer le tout comme un JSON avec des "String": "String" pour les clés / valeurs et mettre des brackets pour qu'il capte bien le Hash.
by (390 points)
edited by
Malheureusement pas mieux :(

(Attention je pense que ce c/c va être très moche x))

def test()
        Thread.new do
          post(
            {
                "username": "Pokemon Prisme",
                "content": "Test",
                "embeds": [
                  {
                      "description": "Test"
                  }
                ]
            }   
          )
        end
        p "done"
    end
by (14.8k points)
Je pense que tu devrais passer ta méthode test dans la classe Interpreter < Interpreter_RMXP, tu éviterais d'utiliser un Thread et tu utilises juste DiscordWebhooks.post.
by (390 points)
Tout a été passé sous l'Interpreter donc ça aidera à l'opti.

La source du problème était tout simplement l'absence du fichier /lib/cert.pem dans mon dossier (vu qu'on le supprime en passant en .26) xD
...