using System.Collections.Generic; using System.IO; using Oxide.Core; using Oxide.Core.Libraries.Covalence; using Oxide.Core.Plugins; namespace Oxide.Plugins { [Info("Feedback", "Ridamees", "1.0.0")] [Description("Allows players to send feedback with /feedback, which is saved to a log file.")] class Feedback : CovalencePlugin { private const string PERMISSION_USE_FEEDBACK = "feedback.use"; private PluginConfig config; class PluginConfig { public string LogFileName { get; set; } } protected override void LoadDefaultConfig() { Config.WriteObject(new PluginConfig { LogFileName = "feedback" }, true); } private void Init() { permission.RegisterPermission(PERMISSION_USE_FEEDBACK, this); config = Config.ReadObject(); } [Command("feedback")] private void FeedbackCommand(IPlayer player, string command, string[] args) { if (!permission.UserHasPermission(player.Id, PERMISSION_USE_FEEDBACK)) { player.Reply("You do not have permission to use this command."); return; } if (args.Length < 1) { player.Reply("You must include a message in your feedback."); return; } var message = string.Join(" ", args); var logMessage = $"[{player.Id}] [{player.Name}] {message}"; LogToFile(config.LogFileName, logMessage, this); player.Reply("Thank you for your feedback!"); } } }