Not sure if I'm using the plugin wrong, but the plugin just didn't work for me at all. Using the pre-made initial config of the plugin, I gave myself the "chatprefix.vip" permission. Then, when chatting, I did not have the expected prefix ([VIP]).
Upon digging into the code a little bit, I noticed the plugin checks the permission/group name only (without "chatprefix." in it). So in order to have the prefix work, I would need to have the permission "vip", not "chatprefix.vip".
I fixed it by changing this:
private object ReloadPrefix(BasePlayer player)
{
if (config.debug) Puts("ReloadPrefix for " + player.displayName);
if (!player.IsValid()) return false;
playerPrefixData.Remove(player.userID);
bool foundPrefixForPly = false;
foreach (var p in config.Prefixes.OrderBy(x => x.Value.Priority))
{
if (foundPrefixForPly) return true;
if (permission.UserHasPermission(player.UserIDString, p.Value.Permission) && !config.useGroup && !p.Value.Disabled || permission.UserHasGroup(player.UserIDString, p.Value.GroupName) && config.useGroup && !p.Value.Disabled)
{
foundPrefixForPly = true;
if (config.debug) Puts("Found Prefix for " + player.displayName + " Prefix: " + p.Value.Prefix + " Prefixcolor" + p.Value.Color + " Permission:" + p.Value.Permission + " GroupName:" + p.Value.GroupName);
playerPrefixData.Add(player.userID, new PlayerPrefix { Prefix = p.Value.Prefix, Color = p.Value.Color, active = true });
}
}
if (!foundPrefixForPly) playerPrefixData.Add(player.userID, new PlayerPrefix { Prefix = null, Color = null, active = false });
return true;
}to this (checks with "chatprefix."):
private object ReloadPrefix(BasePlayer player)
{
if (!player.IsValid()) return false;
if (config.debug) Puts("ReloadPrefix for " + player.displayName);
playerPrefixData.Remove(player.userID);
bool foundPrefixForPly = false;
foreach (var p in config.Prefixes.OrderBy(x => x.Value.Priority))
{
if (foundPrefixForPly) return true;
var permissionName = "chatprefix." + p.Value.Permission;
var groupName = "chatprefix." + p.Value.GroupName;
if (permission.UserHasPermission(player.UserIDString, permissionName) && !config.useGroup && !p.Value.Disabled || permission.UserHasGroup(player.UserIDString, groupName) && config.useGroup && !p.Value.Disabled)
{
foundPrefixForPly = true;
if (config.debug) Puts("Found Prefix for " + player.displayName + " Prefix: " + p.Value.Prefix + " Prefixcolor" + p.Value.Color + " Permission:" + permissionName + " GroupName:" + groupName);
playerPrefixData.Add(player.userID, new PlayerPrefix { Prefix = p.Value.Prefix, Color = p.Value.Color, active = true });
}
}
if (!foundPrefixForPly) playerPrefixData.Add(player.userID, new PlayerPrefix { Prefix = null, Color = null, active = false });
return true;
}