C#:
using System;
using Oxide.Core;
using Oxide.Core.Plugins;
// ____ _ _ _
// / ___|(_) __ _(_) | ___
// \___ \| |/ _` | | |/ _ \
// ___) | | (_| | | | (_) |
// |____/|_|\__, |_|_|\___/
// |___/
// ☽✧✵✧✵✧✵✧✵✧✵✧✵✧☾
// ✦ RUST PLUGINS ✦
// ✦ Sigilo.dev ✦
// ☽✧✵✧✵✧✵✧✵✧✵✧✵✧☾
namespace Oxide.Plugins
{
[Info("OneTimeRewards", "Sigilo", "1.0.1")]
class OneTimeRewards : RustPlugin
{
private string groupName;
private string itemName;
private int itemAmount;
private string commandName;
private string successMessage;
private string failureMessage;
private ulong skinId;
protected override void LoadDefaultConfig()
{
Config["GroupName"] = "rewardgroup";
Config["ItemName"] = "rock";
Config["ItemAmount"] = 1;
Config["CommandName"] = "reward";
Config["SuccessMessage"] = "You have been given {1} {2}(s).";
Config["FailureMessage"] = "You are not eligible for the reward.";
Config["SkinId"] = 0ul;
}
void Init()
{
groupName = Config["GroupName"].ToString();
itemName = Config["ItemName"].ToString();
itemAmount = Convert.ToInt32(Config["ItemAmount"]);
commandName = Config["CommandName"].ToString();
successMessage = Config["SuccessMessage"].ToString();
failureMessage = Config["FailureMessage"].ToString();
skinId = Convert.ToUInt64(Config["SkinId"]);
if (!permission.GroupExists(groupName))
{
permission.CreateGroup(groupName, "OneTimeRewards", 0);
}
string permName = $"{Title}.{commandName}";
if (!permission.GroupHasPermission(groupName, permName))
{
permission.GrantGroupPermission(groupName, permName, this);
}
cmd.AddChatCommand(commandName, this, "RewardCommand");
}
void RewardCommand(BasePlayer player, string command, string[] args)
{
if (permission.UserHasGroup(player.UserIDString, groupName))
{
player.inventory.GiveItem(ItemManager.CreateByName(itemName, itemAmount, skinId));
permission.RemoveUserGroup(player.UserIDString, groupName);
player.ChatMessage(string.Format(successMessage, groupName, itemAmount, itemName));
}
else
{
player.ChatMessage(string.Format(failureMessage, groupName));
}
}
}
}