AutoDoors - Failed to compile: The type 'System.Text.StringBuilder' cannot be used as type parameter 'T' in the generic type or method 'Pool.Free<T>(ref T)'. There is no implicit reference conversion from 'System.Text.StringBuilder' to 'Facepunch.Pool.IPooled'. | Line: 433, Pos: 30
private void CmdAutoDoor(BasePlayer player, string command, string[] args)
{
if (configData.usePermission && !permission.UserHasPermission(player.UserIDString, PERMISSION_USE))
{
Print(player, Lang("NotAllowed", player.UserIDString));
return;
}
var playerData = GetPlayerData(player.userID);
if (args == null || args.Length == 0)
{
playerData.doorData.enabled = !playerData.doorData.enabled;
Print(player, Lang("AutoDoor", player.UserIDString, playerData.doorData.enabled ? Lang("Enabled", player.UserIDString) : Lang("Disabled", player.UserIDString)));
return;
}
float time;
if (float.TryParse(args[0], out time))
{
if (time <= configData.globalS.maximumDelay && time >= configData.globalS.minimumDelay)
{
playerData.doorData.time = time;
if (!playerData.doorData.enabled) playerData.doorData.enabled = true;
Print(player, Lang("AutoDoorDelay", player.UserIDString, time));
return;
}
Print(player, Lang("AutoDoorDelayLimit", player.UserIDString, configData.globalS.minimumDelay, configData.globalS.maximumDelay));
return;
}
switch (args[0].ToLower())
{
case "a":
case "all":
{
if (args.Length > 1)
{
if (float.TryParse(args[1], out time))
{
if (time <= configData.globalS.maximumDelay && time >= configData.globalS.minimumDelay)
{
playerData.doorData.time = time;
playerData.doorTypeS.Clear();
playerData.theDoorS.Clear();
Print(player, Lang("AutoDoorDelayAll", player.UserIDString, time));
return;
}
Print(player,
Lang("AutoDoorDelayLimit", player.UserIDString, configData.globalS.minimumDelay,
configData.globalS.maximumDelay));
return;
}
}
break;
}
case "s":
case "single":
{
var door = GetLookingAtDoor(player);
if (door == null || door.net == null)
{
Print(player, Lang("DoorNotFound", player.UserIDString));
return;
}
string doorDisplayName;
if (!supportedDoors.TryGetValue(door.ShortPrefabName, out doorDisplayName))
{
Print(player, Lang("DoorNotSupported", player.UserIDString));
return;
}
StoredData.DoorData doorData;
if (!playerData.theDoorS.TryGetValue(door.net.ID.Value, out doorData))
{
doorData = new StoredData.DoorData
{ enabled = true, time = configData.globalS.defaultDelay };
playerData.theDoorS.Add(door.net.ID.Value, doorData);
}
if (args.Length <= 1)
{
doorData.enabled = !doorData.enabled;
Print(player,
Lang("AutoDoorSingle", player.UserIDString,
GetDeployableDisplayName(player, door.ShortPrefabName, doorDisplayName),
doorData.enabled
? Lang("Enabled", player.UserIDString)
: Lang("Disabled", player.UserIDString)));
return;
}
if (float.TryParse(args[1], out time))
{
if (time <= configData.globalS.maximumDelay && time >= configData.globalS.minimumDelay)
{
doorData.time = time;
Print(player, Lang("AutoDoorSingleDelay", player.UserIDString,
GetDeployableDisplayName(player, door.ShortPrefabName, doorDisplayName), time));
return;
}
Print(player,
Lang("AutoDoorDelayLimit", player.UserIDString, configData.globalS.minimumDelay,
configData.globalS.maximumDelay));
return;
}
break;
}
case "t":
case "type":
{
var door = GetLookingAtDoor(player);
if (door == null || door.net == null)
{
Print(player, Lang("DoorNotFound", player.UserIDString));
return;
}
string doorDisplayName;
if (!supportedDoors.TryGetValue(door.ShortPrefabName, out doorDisplayName))
{
Print(player, Lang("DoorNotSupported", player.UserIDString));
return;
}
StoredData.DoorData doorData;
if (!playerData.doorTypeS.TryGetValue(door.ShortPrefabName, out doorData))
{
doorData = new StoredData.DoorData
{ enabled = true, time = configData.globalS.defaultDelay };
playerData.doorTypeS.Add(door.ShortPrefabName, doorData);
}
if (args.Length <= 1)
{
doorData.enabled = !doorData.enabled;
Print(player,
Lang("AutoDoorType", player.UserIDString, GetDeployableDisplayName(player, door.ShortPrefabName, doorDisplayName),
doorData.enabled
? Lang("Enabled", player.UserIDString)
: Lang("Disabled", player.UserIDString)));
return;
}
if (float.TryParse(args[1], out time))
{
if (time <= configData.globalS.maximumDelay && time >= configData.globalS.minimumDelay)
{
doorData.time = time;
Print(player, Lang("AutoDoorTypeDelay", player.UserIDString,
GetDeployableDisplayName(player, door.ShortPrefabName, doorDisplayName), time));
return;
}
Print(player,
Lang("AutoDoorDelayLimit", player.UserIDString, configData.globalS.minimumDelay,
configData.globalS.maximumDelay));
return;
}
break;
}
case "h":
case "help":
{
StringBuilder stringBuilder = Pool.Get<StringBuilder>();
stringBuilder.AppendLine();
var firstCmd = configData.chatS.commands[0];
stringBuilder.AppendLine(Lang("AutoDoorSyntax", player.UserIDString, firstCmd));
stringBuilder.AppendLine(Lang("AutoDoorSyntax1", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
stringBuilder.AppendLine(Lang("AutoDoorSyntax2", player.UserIDString, firstCmd));
stringBuilder.AppendLine(Lang("AutoDoorSyntax3", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
stringBuilder.AppendLine(Lang("AutoDoorSyntax4", player.UserIDString, firstCmd));
stringBuilder.AppendLine(Lang("AutoDoorSyntax5", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
stringBuilder.AppendLine(Lang("AutoDoorSyntax6", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
Print(player, stringBuilder.ToString());
stringBuilder.Clear();
Pool.Free(ref stringBuilder);
return;
}
}
Print(player, Lang("SyntaxError", player.UserIDString, configData.chatS.commands[0]));
}
Fix Provided by Raiven[007]:
case "h":
case "help":
{
StringBuilder stringBuilder = new StringBuilder(); // Add/Replace with this Line!!
stringBuilder.AppendLine();
var firstCmd = configData.chatS.commands[0];
stringBuilder.AppendLine(Lang("AutoDoorSyntax", player.UserIDString, firstCmd));
stringBuilder.AppendLine(Lang("AutoDoorSyntax1", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
stringBuilder.AppendLine(Lang("AutoDoorSyntax2", player.UserIDString, firstCmd));
stringBuilder.AppendLine(Lang("AutoDoorSyntax3", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
stringBuilder.AppendLine(Lang("AutoDoorSyntax4", player.UserIDString, firstCmd));
stringBuilder.AppendLine(Lang("AutoDoorSyntax5", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
stringBuilder.AppendLine(Lang("AutoDoorSyntax6", player.UserIDString, firstCmd,
configData.globalS.minimumDelay, configData.globalS.maximumDelay));
Print(player, stringBuilder.ToString());
stringBuilder.Clear(); // Add/Replace with this Line!!
return;
}