clacki
یک شنبه 18 آبان 1393, 20:59 عصر
سلام دوستان عزیز.
ما در زمان های دور یک برنامه نوشتیم این برنامه رو الان یک جاشو گیر کردیم که چه کدی قرار بدین تا کامپایل بشه و ... :افسرده:
ممنون میشم کمک کنید.
توی لاین 14 نوشتن what is this انجا رو باید تغییر بدین تا برنامه اوکی شه و یک خروجی ساده dll تحویل بده.
using Addon;
using System;
using System.Collections.Generic;
using System.Globalization;
namespace PermissionsPlugin
{
public class Permissions : CPlugin
{
private List<string> _userGroups;
public Permissions()
{
base.what is this();
}
public virtual void OnServerLoad()
{
this.ServerPrint("Permission plugin updated by jjo");
this.CheckAndSetPermissionConfiguration();
this.InitUserGroups();
}
public virtual ChatType OnSay(string message, ServerClient client, bool teamchat)
{
string str1 = message.ToLower().Split(' ')[0];
string userGroup = this.GetUserGroup(client.get_XUID());
List<string> commandsAllowedInGroup = this.GetCommandsAllowedInGroup(userGroup);
switch (str1)
{
case "!getxuid":
case "!gettype":
this.TellClient(client.get_ClientNum(), str1 == "!getxuid" ? string.Format("Your XUID is: {0}", (object) client.get_XUID()) : string.Format("Your user type is: {0}", (object) userGroup), true);
return (ChatType) 1;
case "!help":
case "!cmdlist":
string str2 = "^1Commands you can use: ^7";
for (int index = 0; index < commandsAllowedInGroup.Count; ++index)
str2 = index != commandsAllowedInGroup.Count - 2 ? (index != commandsAllowedInGroup.Count - 1 ? str2 + commandsAllowedInGroup[index] + "^1,^7 " : str2 + commandsAllowedInGroup[index] + "^1.") : str2 + commandsAllowedInGroup[index] + "^1 and^7 ";
this.TellClient(client.get_ClientNum(), str2, true);
return (ChatType) 1;
default:
string serverCfg = this.GetServerCFG("Permission", "Protected_xuids", "");
string[] strArray = this.GetServerCFG("Permission", "Protected_commands", "").Split(',');
ServerClient serverClient = this.DeterminePlayer(message);
if (serverClient != null && serverCfg.Length > 0 && strArray.Length > 0)
{
foreach (string str3 in strArray)
{
if (str1 == str3 && serverCfg.Contains(serverClient.get_XUID()))
{
this.TellClient(client.get_ClientNum(), string.Format("[^1Permissions^7] ^:You aren't allowed to use ^7{0} ^:command against ^7{1}", (object) str3, (object) serverClient.get_Name()), true);
return (ChatType) 1;
}
}
}
if (new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", "Immune_groups", "Admin").Split(',')).Contains(userGroup) || !str1.StartsWith("!") || commandsAllowedInGroup.Contains(str1))
return (ChatType) 0;
this.TellClient(client.get_ClientNum(), "[^1Permissions^7] ^:You aren't allowed to use that command!", true);
return (ChatType) 1;
}
}
private void CheckAndSetPermissionConfiguration()
{
foreach (ConfigurationOption configurationOption in new List<ConfigurationOption>()
{
new ConfigurationOption()
{
Name = "Usergroups",
Value = "Admin,Moderator,User"
},
new ConfigurationOption()
{
Name = "Admin_xuids",
Value = ""
},
new ConfigurationOption()
{
Name = "Admin_commands",
Value = "*ALL*"
},
new ConfigurationOption()
{
Name = "Moderator_xuids",
Value = ""
},
new ConfigurationOption()
{
Name = "Moderator_commands",
Value = "!help,!getxuid,!gettype"
},
new ConfigurationOption()
{
Name = "User_commands",
Value = "!help,!getxuid,!gettype"
},
new ConfigurationOption()
{
Name = "User_xuids",
Value = "*EVERYONE*"
}
})
{
if (this.GetServerCFG("Permission", configurationOption.Name, "x_x") == "x_x")
this.SetServerCFG("Permission", configurationOption.Name, configurationOption.Value);
}
}
private void InitUserGroups()
{
this._userGroups = new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", "Usergroups", "Admin,Moderator,User").Split(','));
}
private List<string> GetUsersInGroup(string groupName)
{
return new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", groupName + "_xuids", "").Split(','));
}
private List<string> GetCommandsAllowedInGroup(string groupName)
{
return new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", groupName + "_commands", "").Split(','));
}
private string GetUserGroup(string xuid)
{
foreach (string groupName in this._userGroups)
{
List<string> usersInGroup = this.GetUsersInGroup(groupName);
if (usersInGroup.Contains(xuid) || usersInGroup[0] != null && usersInGroup[0].Equals("*EVERYONE*"))
return groupName;
}
return "User";
}
private ServerClient DeterminePlayer(string msg)
{
string str1 = msg;
char[] chArray = new char[1]
{
' '
};
foreach (string str2 in str1.Split(chArray))
{
using (List<ServerClient>.Enumerator enumerator = this.GetClients().GetEnumerator())
{
while (enumerator.MoveNext())
{
ServerClient current = enumerator.Current;
if (current.get_ClientNum().ToString((IFormatProvider ) CultureInfo.InvariantCulture) == str2 || current.get_Name().ToLower() == str2 || current.get_Name().ToLower().Contains(str2))
return current;
}
}
}
return (ServerClient) null;
}
}
}
ما در زمان های دور یک برنامه نوشتیم این برنامه رو الان یک جاشو گیر کردیم که چه کدی قرار بدین تا کامپایل بشه و ... :افسرده:
ممنون میشم کمک کنید.
توی لاین 14 نوشتن what is this انجا رو باید تغییر بدین تا برنامه اوکی شه و یک خروجی ساده dll تحویل بده.
using Addon;
using System;
using System.Collections.Generic;
using System.Globalization;
namespace PermissionsPlugin
{
public class Permissions : CPlugin
{
private List<string> _userGroups;
public Permissions()
{
base.what is this();
}
public virtual void OnServerLoad()
{
this.ServerPrint("Permission plugin updated by jjo");
this.CheckAndSetPermissionConfiguration();
this.InitUserGroups();
}
public virtual ChatType OnSay(string message, ServerClient client, bool teamchat)
{
string str1 = message.ToLower().Split(' ')[0];
string userGroup = this.GetUserGroup(client.get_XUID());
List<string> commandsAllowedInGroup = this.GetCommandsAllowedInGroup(userGroup);
switch (str1)
{
case "!getxuid":
case "!gettype":
this.TellClient(client.get_ClientNum(), str1 == "!getxuid" ? string.Format("Your XUID is: {0}", (object) client.get_XUID()) : string.Format("Your user type is: {0}", (object) userGroup), true);
return (ChatType) 1;
case "!help":
case "!cmdlist":
string str2 = "^1Commands you can use: ^7";
for (int index = 0; index < commandsAllowedInGroup.Count; ++index)
str2 = index != commandsAllowedInGroup.Count - 2 ? (index != commandsAllowedInGroup.Count - 1 ? str2 + commandsAllowedInGroup[index] + "^1,^7 " : str2 + commandsAllowedInGroup[index] + "^1.") : str2 + commandsAllowedInGroup[index] + "^1 and^7 ";
this.TellClient(client.get_ClientNum(), str2, true);
return (ChatType) 1;
default:
string serverCfg = this.GetServerCFG("Permission", "Protected_xuids", "");
string[] strArray = this.GetServerCFG("Permission", "Protected_commands", "").Split(',');
ServerClient serverClient = this.DeterminePlayer(message);
if (serverClient != null && serverCfg.Length > 0 && strArray.Length > 0)
{
foreach (string str3 in strArray)
{
if (str1 == str3 && serverCfg.Contains(serverClient.get_XUID()))
{
this.TellClient(client.get_ClientNum(), string.Format("[^1Permissions^7] ^:You aren't allowed to use ^7{0} ^:command against ^7{1}", (object) str3, (object) serverClient.get_Name()), true);
return (ChatType) 1;
}
}
}
if (new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", "Immune_groups", "Admin").Split(',')).Contains(userGroup) || !str1.StartsWith("!") || commandsAllowedInGroup.Contains(str1))
return (ChatType) 0;
this.TellClient(client.get_ClientNum(), "[^1Permissions^7] ^:You aren't allowed to use that command!", true);
return (ChatType) 1;
}
}
private void CheckAndSetPermissionConfiguration()
{
foreach (ConfigurationOption configurationOption in new List<ConfigurationOption>()
{
new ConfigurationOption()
{
Name = "Usergroups",
Value = "Admin,Moderator,User"
},
new ConfigurationOption()
{
Name = "Admin_xuids",
Value = ""
},
new ConfigurationOption()
{
Name = "Admin_commands",
Value = "*ALL*"
},
new ConfigurationOption()
{
Name = "Moderator_xuids",
Value = ""
},
new ConfigurationOption()
{
Name = "Moderator_commands",
Value = "!help,!getxuid,!gettype"
},
new ConfigurationOption()
{
Name = "User_commands",
Value = "!help,!getxuid,!gettype"
},
new ConfigurationOption()
{
Name = "User_xuids",
Value = "*EVERYONE*"
}
})
{
if (this.GetServerCFG("Permission", configurationOption.Name, "x_x") == "x_x")
this.SetServerCFG("Permission", configurationOption.Name, configurationOption.Value);
}
}
private void InitUserGroups()
{
this._userGroups = new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", "Usergroups", "Admin,Moderator,User").Split(','));
}
private List<string> GetUsersInGroup(string groupName)
{
return new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", groupName + "_xuids", "").Split(','));
}
private List<string> GetCommandsAllowedInGroup(string groupName)
{
return new List<string>((IEnumerable<string>) this.GetServerCFG("Permission", groupName + "_commands", "").Split(','));
}
private string GetUserGroup(string xuid)
{
foreach (string groupName in this._userGroups)
{
List<string> usersInGroup = this.GetUsersInGroup(groupName);
if (usersInGroup.Contains(xuid) || usersInGroup[0] != null && usersInGroup[0].Equals("*EVERYONE*"))
return groupName;
}
return "User";
}
private ServerClient DeterminePlayer(string msg)
{
string str1 = msg;
char[] chArray = new char[1]
{
' '
};
foreach (string str2 in str1.Split(chArray))
{
using (List<ServerClient>.Enumerator enumerator = this.GetClients().GetEnumerator())
{
while (enumerator.MoveNext())
{
ServerClient current = enumerator.Current;
if (current.get_ClientNum().ToString((IFormatProvider ) CultureInfo.InvariantCulture) == str2 || current.get_Name().ToLower() == str2 || current.get_Name().ToLower().Contains(str2))
return current;
}
}
}
return (ServerClient) null;
}
}
}