Beispiel #1
0
 public static void OnChatCommand(string command, string[] args)
 {
     try
     {
         foreach (var e in _pluginEventMap[(int)PluginEvent.OnChatCommand])
         {
             e.OnChatCommand(command, args);
         }
     }
     catch (System.Exception ex)
     {
         DNMT.LogWarning(ex.Message);
     }
 }
 public static object OnUpdate(object rv, object obj, params object[] args)
 {
     try
     {
         foreach (var e in _pluginEventMap[(int)PluginEvent.OnUpdate])
         {
             e.OnUpdate();
         }
     }
     catch (System.Exception ex)
     {
         DNMT.LogWarning(ex.Message);
     }
     return(null);
 }
        public static object OnNetMessageSendData(object rv, object obj, params object[] args)
        {
            var msgType      = (int)args[0];
            var remoteClient = (int)args[1];
            var ignoreClient = (int)args[2];
            var text         = (string)args[3];
            var number       = (int)args[4];

            bool ret = false;

            try
            {
                foreach (var e in _pluginEventMap[(int)PluginEvent.OnNetMessageSendData])
                {
                    ret = ret || e.OnNetMessageSendData(msgType, remoteClient, ignoreClient, text, number,
                                                        (float)args[5], (float)args[6], (float)args[7], (int)args[8], (int)args[9], (int)args[10]);
                }

                if (msgType == 25 && number == Main.myPlayer && !string.IsNullOrEmpty(text) && text[0] == '.')
                {
                    ret = true;
                    var split   = text.Substring(1).Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);
                    var cmd     = split[0].ToLower();
                    var cmdArgs = split.Length > 1 ? split[1].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) : new string[0];
                    if (cmd == "plugins")
                    {
                        CORE.Print("Loaded plugins:", Color.Green);
                        CORE.Print(string.Join(", ", _pluginList.Select(plugin => plugin.GetType().Name)));
                        //pluginList.ForEach(plugin => { CORE.Print("   " + plugin.GetType().Name); });
                    }
                    else
                    {
                        foreach (var e in _pluginEventMap[(int)PluginEvent.OnChatCommand])
                        {
                            e.OnChatCommand(cmd, cmdArgs);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                DNMT.LogWarning(ex.Message);
            }
            return(ret ? (object)true : null);
        }
        public static void OnUpdateControlInput()
        {
            try
            {
                KeyboardState stateKeyboard = Keyboard.GetState();
                MouseState    stateMouse    = Mouse.GetState();
                GamePadState  stateGamePad  = GamePad.GetState(Game1.playerOneIndex);

                foreach (var e in _pluginEventMap[(int)PluginEvent.OnUpdateControlInput])
                {
                    e.OnUpdateControlInput(stateKeyboard, stateMouse, stateGamePad);
                }
            }
            catch (System.Exception ex)
            {
                DNMT.LogWarning(ex.Message);
            }
        }
        public static object OnPlayerKillMe(object rv, object obj, params object[] args)
        {
            bool ret = false;

            try
            {
                foreach (var e in _pluginEventMap[(int)PluginEvent.OnPlayerKillMe])
                {
                    ret = ret || e.OnPlayerKillMe((Player)obj, (PlayerDeathReason)args[0], (double)args[1], (int)args[2], (bool)args[3]);
                }
            }
            catch (System.Exception ex)
            {
                DNMT.LogWarning(ex.Message);
            }

            return(ret ? (object)true : null);
        }
Beispiel #6
0
 public static object OnPreUpdate(object rv, object obj, params object[] args)
 {
     try
     {
         if (CORE.IsCanUseHotKeys())
         {
             HotkeyCore.Process();
         }
         foreach (var e in _pluginEventMap[(int)PluginEvent.OnPreUpdate])
         {
             e.OnPreUpdate();
         }
     }
     catch (System.Exception ex)
     {
         DNMT.LogWarning(ex.Message);
     }
     return(null);
 }
        static HotkeyCore()
        {
            // Load hotkey binds
            var result = DNMT.Config.EnumerateKeys("HotkeyBinds");

            foreach (var k in result)
            {
                Hotkey key;
                string command;
                if (DNMT.Config.TryGet("HotkeyBinds", k, out command) && Hotkey.TryParse(k, out key) && command.StartsWith("."))
                {
                    RegisterHotkey(command, key);
                }
                else
                {
                    DNMT.LogWarning("Invalid record in [HotkeyBinds]: " + k + ".");
                }
            }
        }
        public static object OnLightingGetColor(object rv, object obj, params object[] args)
        {
            bool ret    = false;
            var  result = Color.White;

            try
            {
                foreach (var e in _pluginEventMap[(int)PluginEvent.OnLightingGetColor])
                {
                    Color temp;
                    if (e.OnLightingGetColor((int)args[0], (int)args[1], out temp))
                    {
                        ret    = true;
                        result = temp;
                    }
                }
            }
            catch (System.Exception ex)
            {
                DNMT.LogWarning(ex.Message);
            }
            return(ret ? (object)result : null);
        }
        public static object OnPlayerHurt(object rv, object obj, params object[] args)
        {
            double result = 0.0;
            bool   ret    = false;

            try
            {
                foreach (var e in _pluginEventMap[(int)PluginEvent.OnPlayerHurt])
                {
                    double temp;
                    if (e.OnPlayerHurt((Player)obj, (PlayerDeathReason)args[0], (int)args[1], (int)args[2], (bool)args[3], (bool)args[4], (bool)args[5], (int)args[6], out temp))
                    {
                        result = temp;
                        ret    = true;
                    }
                }
            }
            catch (System.Exception ex)
            {
                DNMT.LogWarning(ex.Message);
            }
            return(ret ? (object)result : null);
        }