Skip to content

Commit

Permalink
Merge pull request #2951 from AgaSpace/group-changes
Browse files Browse the repository at this point in the history
Group changes
  • Loading branch information
hakusaro authored Jan 27, 2025
2 parents 64a4c9c + fe3644c commit 7058a9d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
32 changes: 24 additions & 8 deletions TShockAPI/Group.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ You should have received a copy of the GNU General Public License
using System.Linq;
using System.Collections.Generic;

using Microsoft.Xna.Framework;

namespace TShockAPI
{
/// <summary>
Expand Down Expand Up @@ -52,17 +54,17 @@ public class Group
/// <summary>
/// The group that this group inherits permissions from.
/// </summary>
public Group Parent { get; set; }
public virtual Group Parent { get; set; }

/// <summary>
/// The chat prefix for this group.
/// </summary>
public string Prefix { get; set; }
public virtual string Prefix { get; set; }

/// <summary>
/// The chat suffix for this group.
/// </summary>
public string Suffix { get; set; }
public virtual string Suffix { get; set; }

/// <summary>
/// The name of the parent, not particularly sure why this is here.
Expand Down Expand Up @@ -164,6 +166,20 @@ public virtual List<string> TotalPermissions
/// </summary>
public byte B = 255;

/// <summary>
/// Simplifies work with the <see cref="R"/>, <see cref="G"/>, <see cref="B"/> properties.
/// </summary>
public virtual Color Color
{
get => new Color(R, G, B);
set
{
R = value.R;
G = value.G;
B = value.B;
}
}

/// <summary>
/// The default group attributed to unregistered users.
/// </summary>
Expand Down Expand Up @@ -242,7 +258,7 @@ private bool RealHasPermission(string permission, ref bool negated)
/// Adds a permission to the list of negated permissions.
/// </summary>
/// <param name="permission">The permission to negate.</param>
public void NegatePermission(string permission)
public virtual void NegatePermission(string permission)
{
// Avoid duplicates
if (!negatedpermissions.Contains(permission))
Expand All @@ -256,7 +272,7 @@ public void NegatePermission(string permission)
/// Adds a permission to the list of permissions.
/// </summary>
/// <param name="permission">The permission to add.</param>
public void AddPermission(string permission)
public virtual void AddPermission(string permission)
{
if (permission.StartsWith("!"))
{
Expand All @@ -276,7 +292,7 @@ public void AddPermission(string permission)
/// will parse "!permission" and add it to the negated permissions.
/// </summary>
/// <param name="permission">The new list of permissions to associate with the group.</param>
public void SetPermission(List<string> permission)
public virtual void SetPermission(List<string> permission)
{
permissions.Clear();
negatedpermissions.Clear();
Expand All @@ -288,7 +304,7 @@ public void SetPermission(List<string> permission)
/// where "!permission" will remove a negated permission.
/// </summary>
/// <param name="permission"></param>
public void RemovePermission(string permission)
public virtual void RemovePermission(string permission)
{
if (permission.StartsWith("!"))
{
Expand All @@ -302,7 +318,7 @@ public void RemovePermission(string permission)
/// Assigns all fields of this instance to another.
/// </summary>
/// <param name="otherGroup">The other instance.</param>
public void AssignTo(Group otherGroup)
public virtual void AssignTo(Group otherGroup)
{
otherGroup.Name = Name;
otherGroup.Parent = Parent;
Expand Down
4 changes: 0 additions & 4 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,6 @@ Use past tense when adding new entries; sign your name off when you add or chang
* Added a property `TSPlayer.Hostile`, which gets pvp player mode. (@AgaSpace)
* Fixed bug where when the `UseSqlLogs` config property is true, an empty log file would still get created. (@ZakFahey)
* Fixed typo in `/gbuff`. (@sgkoishi, #2955)
* Rewrote the `.dockerignore` file into a denylist. (@timschumi)
* Added CI for Docker images. (@timschumi)
* Fixed Cursed Flares kicking players for invalid buff. (@Arthri)


## TShock 5.2
* An additional option `pvpwithnoteam` is added at `PvPMode` to enable PVP with no team. (@CelestialAnarchy, #2617, @ATFGK)
Expand Down

0 comments on commit 7058a9d

Please sign in to comment.