Broken after 9/5/23 update
Failed to call hook 'CanBuild' on plugin 'EntityLimit v2.1.3' (NotImplementedException: The method or operation is not implemented.)
  at System.Globalization.CompareInfo.IndexOfCore (System.String source, System.String target, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00006] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at System.Globalization.CompareInfo.IndexOf (System.String source, System.String value, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00071] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at System.String.ReplaceCore (System.String oldValue, System.String newValue, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) [0x0005d] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at System.String.Replace (System.String oldValue, System.String newValue, System.StringComparison comparisonType) [0x00055] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at Oxide.Plugins.EntityLimit.ReplaceArgs (System.String message, System.Collections.Generic.Dictionary`2[TKey,TValue] args) [0x0005c] in <6820de2a03684abdadc6de3109d979b9>:0
at Oxide.Plugins.EntityLimit.GetMessage (Oxide.Plugins.EntityLimit+MessageType key, System.String playerID, System.Object[] args) [0x00020] in <6820de2a03684abdadc6de3109d979b9>:0
at Oxide.Plugins.EntityLimit.SendMessage (System.Object receiver, Oxide.Plugins.EntityLimit+MessageType key, System.Object[] args) [0x00013] in <6820de2a03684abdadc6de3109d979b9>:0
at Oxide.Plugins.EntityLimit.CheckBuild (BasePlayer player, System.String fullName) [0x002d2] in <6820de2a03684abdadc6de3109d979b9>:0
at Oxide.Plugins.EntityLimit.CanBuild (Planner planner, Construction entity, Construction+Target target) [0x00007] in <6820de2a03684abdadc6de3109d979b9>:0
at Oxide.Plugins.EntityLimit.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x001db] in <6820de2a03684abdadc6de3109d979b9>:0
at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in :0
at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <1a298a556ab640a3a0e3fbde04ac5b5c>:0
at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <1a298a556ab640a3a0e3fbde04ac5b5c>:0

@Shenron, You need to update to

EntityLimit v2.1.3

And update to the newest version of umod. It seems to have fixed my servers.

I posted that from a second server, but I get the initial error with 2.1.3 as well. 

09/05 20:39:17 | Failed to call hook 'CanBuild' on plugin 'EntityLimit v2.1.3' (NotImplementedException: The method or operation is not implemented.)
at System.Globalization.CompareInfo.IndexOfCore (System.String source, System.String target, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00006] in <2161c9885dd04ff291b79db9349c4b9b>:0
at System.Globalization.CompareInfo.IndexOf (System.String source, System.String value, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00071] in <2161c9885dd04ff291b79db9349c4b9b>:0
at System.String.ReplaceCore (System.String oldValue, System.String newValue, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) [0x0005d] in <2161c9885dd04ff291b79db9349c4b9b>:0
at System.String.Replace (System.String oldValue, System.String newValue, System.StringComparison comparisonType) [0x00055] in <2161c9885dd04ff291b79db9349c4b9b>:0
at Oxide.Plugins.EntityLimit.ReplaceArgs (System.String message, System.Collections.Generic.Dictionary`2[TKey,TValue] args) [0x0005c] in <8dcaa04c72794c88be59093bdf2740a8>:0
at Oxide.Plugins.EntityLimit.GetMessage (Oxide.Plugins.EntityLimit+MessageType key, System.String playerID, System.Object[] args) [0x00020] in <8dcaa04c72794c88be59093bdf2740a8>:0
at Oxide.Plugins.EntityLimit.SendMessage (System.Object receiver, Oxide.Plugins.EntityLimit+MessageType key, System.Object[] args) [0x00013] in <8dcaa04c72794c88be59093bdf2740a8>:0
at Oxide.Plugins.EntityLimit.CheckBuild (BasePlayer player, System.String fullName) [0x0025c] in <8dcaa04c72794c88be59093bdf2740a8>:0
at Oxide.Plugins.EntityLimit.CanBuild (Planner planner, Construction entity, Construction+Target target) [0x00007] in <8dcaa04c72794c88be59093bdf2740a8>:0
at Oxide.Plugins.EntityLimit.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x001db] in <8dcaa04c72794c88be59093bdf2740a8>:0
at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <753b27d02c104b8d8166056be06d5c55>:0
at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <1a298a556ab640a3a0e3fbde04ac5b5c>:0
at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <1a298a556ab640a3a0e3fbde04ac5b5c>:0

It seems I spoke too soon, It is still broken.

Failed to call hook 'CanBuild' on plugin 'EntityLimit v2.1.3' (NotImplementedException: The method or operation is not implemented.)
  at System.Globalization.CompareInfo.IndexOfCore (System.String source, System.String target, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00006] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at System.Globalization.CompareInfo.IndexOf (System.String source, System.String value, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00071] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at System.String.ReplaceCore (System.String oldValue, System.String newValue, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) [0x0005d] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at System.String.Replace (System.String oldValue, System.String newValue, System.StringComparison comparisonType) [0x00055] in <47fc8c70fa834cbf8141d7c1a7589125>:0
at Oxide.Plugins.EntityLimit.ReplaceArgs (System.String message, System.Collections.Generic.Dictionary`2[TKey,TValue] args) [0x0005c] in :0
at Oxide.Plugins.EntityLimit.GetMessage (Oxide.Plugins.EntityLimit+MessageType key, System.String playerID, System.Object[] args) [0x00020] in :0
at Oxide.Plugins.EntityLimit.SendMessage (System.Object receiver, Oxide.Plugins.EntityLimit+MessageType key, System.Object[] args) [0x00013] in :0
at Oxide.Plugins.EntityLimit.CheckBuild (BasePlayer player, System.String fullName) [0x0025c] in :0
at Oxide.Plugins.EntityLimit.CanBuild (Planner planner, Construction entity, Construction+Target target) [0x00007] in :0
at Oxide.Plugins.EntityLimit.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x001db] in :0
at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <753b27d02c104b8d8166056be06d5c55>:0
at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <1a298a556ab640a3a0e3fbde04ac5b5c>:0
at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <1a298a556ab640a3a0e3fbde04ac5b5c>:0
Removed by user

Yup, need to fix, very little time on my hands right now though, so will try this weekend when not Loadshedding.*

 

*Where I live the power is off 8 to 12 out of 24 hours so time to repair plugins is minimal.

https://en.wikipedia.org/wiki/South_African_energy_crisis

 

Thank you ❤️

can someone do a hotfix on this until he is able?

Yes, please. I would very much appreciate a patch for it. There is red text all over my rcon.

Hello everyone, I'm very new to this community, I just started using this plugin. But if my mod has any assembly I can't run it, it always returns this error

 

"UMod.Scripting.ScriptMasterDomain]: Failed to locate linked type"

 

can this be because of the update too?

Yep, same issue here too. 

Failed to call hook 'CanBuild' on plugin 'EntityLimit v2.1.3' (NotImplementedException: The method or operation is not implemented.) at System.Globalization.CompareInfo.IndexOfCore (System.String source, System.String target, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00006] in <47fc8c70fa834cbf8141d7c1a7589125>:0 at System.Globalization.CompareInfo.IndexOf (System.String source, System.String value, System.Int32 startIndex, System.Int32 count, System.Globalization.CompareOptions options, System.Int32* matchLengthPtr) [0x00071] in <47fc8c70fa834cbf8141d7c1a7589125>:0 at System.String.ReplaceCore (System.String oldValue, System.String newValue, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) [0x0005d] in <47fc8c70fa834cbf8141d7c1a7589125>:0 at System.String.Replace (System.String oldValue, System.String newValue, System.StringComparison comparisonType) [0x00055] in <47fc8c70fa834cbf8141d7c1a7589125>:0 at Oxide.Plugins.EntityLimit.ReplaceArgs (System.String message, System.Collections.Generic.Dictionary`2[TKey,TValue] args) [0x0005c] in <a956749f2f084139ae8db18fc8482957>:0 at Oxide.Plugins.EntityLimit.GetMessage (Oxide.Plugins.EntityLimit+MessageType key, System.String playerID, System.Object[] args) [0x00020] in <a956749f2f084139ae8db18fc8482957>:0 at Oxide.Plugins.EntityLimit.SendMessage (System.Object receiver, Oxide.Plugins.EntityLimit+MessageType key, System.Object[] args) [0x00013] in <a956749f2f084139ae8db18fc8482957>:0 at Oxide.Plugins.EntityLimit.CheckBuild (BasePlayer player, System.String fullName) [0x002d2] in <a956749f2f084139ae8db18fc8482957>:0 at Oxide.Plugins.EntityLimit.CanBuild (Planner planner, Construction entity, Construction+Target target) [0x00007] in <a956749f2f084139ae8db18fc8482957>:0

People may hate it but ChatGPT helped me get it working. Testing is on-going but it compiles and blocks what I have in the config.

Replace the ReplaceArgs method with the below.

        private static string ReplaceArgs(string message, Dictionary<string, object> args)
		{
			if (args == null || args.Count < 1)
			{
				return message;
			}
			
			foreach (var pair in args)
			{
				var s0 = "{" + pair.Key + "}";
				var s1 = pair.Key;
				var s2 = pair.Value != null ? pair.Value.ToString() : "null";
				
				if (message.IndexOf(s0, StringComparison.OrdinalIgnoreCase) >= 0)
				{
					message = message.Replace(s0, s2);
				}
				
				if (message.IndexOf(s1, StringComparison.OrdinalIgnoreCase) >= 0)
				{
					message = message.Replace(s1, s2);
				}
			}

			return message;
		}

It doesnt matter to me if a robot fixed it. Can you share the plugin or is that allowed?

hotfix please.....