Gamecraft-Discord connection. It can send and receive messages in a specific channel.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

71 lignes
2.1KB

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Reflection;
  5. using GamecraftModdingAPI.App;
  6. using GamecraftModdingAPI.Commands;
  7. using IllusionPlugin;
  8. using RobocraftX.Schedulers;
  9. using Svelto.Tasks.ExtraLean;
  10. using UnityEngine;
  11. using uREPL;
  12. namespace GCDC
  13. {
  14. public class GCDCPlugin : IPlugin
  15. {
  16. public string Name { get; } = Assembly.GetExecutingAssembly().GetName().Name;
  17. public string Version { get; } = Assembly.GetExecutingAssembly().GetName().Version.ToString();
  18. public void OnApplicationStart()
  19. {
  20. GamecraftModdingAPI.Main.Init();
  21. var client = new DiscordClient(this);
  22. CommandBuilder.Builder("dc", "Send messages to Discord.")
  23. .Action<string>(client.SendMessage).Build();
  24. CommandBuilder.Builder("dcsetup", "Initial setup for GCDC. The argument is the channel ID first. For example: dcsetup \"420159832423923714\"")
  25. .Action<string>(client.Setup).Build();
  26. Game.Enter += (sender, e) =>
  27. client.Ready();
  28. Game.Edit += (sender, e) =>
  29. client.Update(); //Update text block
  30. Game.Exit += (sender, e) =>
  31. client.Stop();
  32. Debug.Log("GCDC loaded");
  33. }
  34. public void Update(Queue<string> messages)
  35. {
  36. UpdateEnum(messages).RunOn(ExtraLean.EveryFrameStepRunner_RUNS_IN_TIME_STOPPED_AND_RUNNING);
  37. }
  38. private IEnumerator UpdateEnum(Queue<string> messages)
  39. {
  40. var txt = messages.Count > 0
  41. ? messages.Aggregate((current, msg) => current + "\n" + msg)
  42. : "<No messages yet>";
  43. RuntimeCommands.Call("ChangeTextBlockCommand", "Discord", txt);
  44. yield break;
  45. }
  46. public void OnApplicationQuit()
  47. {
  48. }
  49. public void OnLevelWasLoaded(int level)
  50. {
  51. }
  52. public void OnLevelWasInitialized(int level)
  53. {
  54. }
  55. public void OnUpdate()
  56. {
  57. }
  58. public void OnFixedUpdate()
  59. {
  60. }
  61. }
  62. }