コード例 #1
0
ファイル: Player.cs プロジェクト: c0nnex/7dtdmanager
 public void ClearCooldowns(ICommand cmd = null)
 {
     if ( cmd == null )
         CommandCoolDowns.Clear();
     else
         CommandCoolDowns[MessageLocalizer.GetDefaultLocalization(cmd.CommandName)] = 0;
 }
コード例 #2
0
 public CommandConfiguration(ICommand cmd) : this()
 {
     Command  = MessageLocalizer.GetDefaultLocalization(cmd.CommandName).ToLowerInvariant();
     Cost     = cmd.CommandCost;
     CoolDown = cmd.CommandCoolDown;
     Enabled  = true;
     Level    = cmd.CommandLevel;
 }
コード例 #3
0
ファイル: Player.cs プロジェクト: c0nnex/7dtdmanager
 public virtual void Message(string p, params object[] args)
 {
     string msg = MessageLocalizer.Localize(this, p, args);
     if ( (ProxyPlayer != null) && ( (ProxyPlayer.IsOnline) || (ProxyPlayer == Program.ServerPlayer)) && (ProxyPlayer != this))
         ProxyPlayer.Message(msg);
     if (IsOnline)
         Program.Server.PrivateMessage(this,msg);
 }
コード例 #4
0
ファイル: Player.cs プロジェクト: c0nnex/7dtdmanager
        public int GetCoolDown(ICommand cmd)
        {
            int timePassed = -1;

            if (cmd.CommandCoolDown <= 0)
                return 0;

            if (CommandCoolDowns.ContainsCommand(MessageLocalizer.GetDefaultLocalization(cmd.CommandName)))
            {
                timePassed = Age - CommandCoolDowns[MessageLocalizer.GetDefaultLocalization(cmd.CommandName)];
                return (timePassed > cmd.CommandCoolDown) ? 0 : cmd.CommandCoolDown - timePassed;
            }
            return 0;
        }
コード例 #5
0
ファイル: CommandManager.cs プロジェクト: c0nnex/7dtdmanager
        public static void RegisterCommandHandlers(Assembly x)
        {
            foreach (var t in x.GetExportedTypes())
            {
                if (t.GetInterfaces().Contains(typeof(ICommand)))
                {
                    if (t.IsAbstract)
                    {
                        continue;
                    }
                    try
                    {
                        logger.Info("Loading Command {0} from {1}", t.FullName, x.GetName().Name);
                        ICommand ex = Activator.CreateInstance(t) as ICommand;

                        allCommands[MessageLocalizer.GetDefaultLocalization(ex.CommandName)] = ex;
                        ILogger l = LogManager.GetLogger(t.ToString(), typeof(ExtensionLogger)) as ILogger;
                        ex.Init(l, MessageLocalizer.Instance);
                        if (!Program.Config.Commands.ContainsCommand(MessageLocalizer.GetDefaultLocalization(ex.CommandName)))
                        {
                            Program.Config.Commands.Add(new Config.CommandConfiguration(ex));
                        }
                        else
                        {
                            Program.Config.Commands.UpdateCommand(ex);
                        }
                        foreach (var item in ex.CommandAliases)
                        {
                            if (!String.IsNullOrEmpty(item))
                            {
                                allCommands[item.ToLowerInvariant()] = ex;
                            }
                        }
                        Program.Config.Save(true);
                    }
                    catch (Exception ex)
                    {
                        logger.Error("Error loading {0}: {1}", t.ToString(), ex.ToString());
                    }
                }
            }
        }
コード例 #6
0
        internal void UpdateCommand(ICommand cmd)
        {
            CommandConfiguration config = this[MessageLocalizer.GetDefaultLocalization(cmd.CommandName)];

            cmd.CommandCoolDown = config.CoolDown;
            cmd.CommandCost     = config.Cost;
            if (cmd.CommandLevel != config.Level)
            {
                logger.Warn("{0} Changing Level from {1} to {2}", MessageLocalizer.GetDefaultLocalization(cmd.CommandName), cmd.CommandLevel, config.Level);
            }
            cmd.CommandLevel = config.Level;
            if (config.Alias.Length > 0)
            {
                cmd.CommandAliases = config.Alias;
            }
            else
            {
                config.Alias           = cmd.CommandAliases;
                Program.Config.IsDirty = true;
            }
            Program.Config.Save();
        }
コード例 #7
0
        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture   = System.Globalization.CultureInfo.InvariantCulture;
            Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
            System.Globalization.CultureInfo.DefaultThreadCurrentCulture   = System.Globalization.CultureInfo.InvariantCulture;
            System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
            ConfigureLogging();


            Config = Configuration.Load();

            Config.UpdateDefaults();

            if (Config.IsNewConfiguration)
            {
                Config.Save();
                Console.WriteLine("Configuration not found. A default-config has been created for you. Please change to your needs and restart the application.");
                return;
            }

            MessageLocalizer.Init();
            MessageLocalizer.InitTranslation("english-default");
            MessageLocalizer.SaveTranslation();

            Server = new Manager();

            PlayersManager.Init();

            ExtensionManager.LoadExtensions(Server);

            PlayersManager.Load();

            CommandManager.Init();
            PositionManager.Init();


            PlayersManager.Instance.RegisterPlayers();

            Server.Connect();

            while (1 == 1)
            {
                string cline = Console.ReadLine();
                if (cline == "exit")
                {
                    Server.AllPlayers.Save();
                    LogManager.Flush();
                    return;
                }
                else
                {
                    if (cline.StartsWith("!"))
                    {
                        Program.Server.Execute(cline.Substring(1));
                        continue;
                    }

                    _7DTDManager.LineHandlers.lineServerCommand c = new _7DTDManager.LineHandlers.lineServerCommand();
                    c.ProcessLine(Program.Server, "INF GMSG: Server: /" + cline);
                    //bool res = cmd.Execute(Server, ServerPlayer, largs);
                }
            }
        }
コード例 #8
0
        public override void Message(string p, params object[] args)
        {
            string msg = MessageLocalizer.Localize(this, p, args);

            Console.WriteLine(msg);
        }
コード例 #9
0
ファイル: Player.cs プロジェクト: c0nnex/7dtdmanager
 public string Localize(string key,params object[] args)
 {
     return MessageLocalizer.Localize(this, key,args);
 }
コード例 #10
0
ファイル: Player.cs プロジェクト: c0nnex/7dtdmanager
 public void Confirm(string msg, params object[] args)
 {
     Message("[00FF00]" +  MessageLocalizer.Localize(this,msg,args) + "[FFFFFF]");
 }
コード例 #11
0
ファイル: Player.cs プロジェクト: c0nnex/7dtdmanager
 public void SetCoolDown(ICommand cmd)
 {
     if (cmd.CommandCoolDown <= 0)
         return;
     CommandCoolDowns[MessageLocalizer.GetDefaultLocalization(cmd.CommandName)] = Age;
 }