Skip to content

Commit

Permalink
Merging from develop
Browse files Browse the repository at this point in the history
  • Loading branch information
raulssorban committed Apr 4, 2024
2 parents 13f9b05 + c502039 commit f9ef65d
Show file tree
Hide file tree
Showing 24 changed files with 121 additions and 248 deletions.
2 changes: 1 addition & 1 deletion .githooks/post-checkout
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ new_branch=$(git symbolic-ref -q --short HEAD)
pushd "$(dirname "$0")/../../.."
BOOTSTRAP_ROOT=$(pwd)

for P in "Carbon.Core/Carbon.Components/Carbon.Bootstrap" "Carbon.Core/Carbon.Components/Carbon.Common" "Carbon.Core/Carbon.Components/Carbon.Common.Client" "Carbon.Core/Carbon.Components/Carbon.Compat" "Carbon.Core/Carbon.Components/Carbon.Modules" "Carbon.Core/Carbon.Components/Carbon.Preloader" "Carbon.Core/Carbon.Components/Carbon.SDK" "Carbon.Core/Carbon.Components/Carbon.Compiler" "Carbon.Core/Carbon.Extensions/Carbon.Ext.Discord" "Carbon.Core/Carbon.Hooks/Carbon.Hooks.Base" "Carbon.Core/Carbon.Hooks/Carbon.Hooks.Oxide" "Carbon.Core/Carbon.Hooks/Carbon.Hooks.Community"; do
for P in "Carbon.Core/Carbon.Components/Carbon.Bootstrap" "Carbon.Core/Carbon.Components/Carbon.Common" "Carbon.Core/Carbon.Components/Carbon.Common.Client" "Carbon.Core/Carbon.Components/Carbon.Compat" "Carbon.Core/Carbon.Components/Carbon.Modules" "Carbon.Core/Carbon.Components/Carbon.Preloader" "Carbon.Core/Carbon.Components/Carbon.SDK" "Carbon.Core/Carbon.Hooks/Carbon.Hooks.Base" "Carbon.Core/Carbon.Hooks/Carbon.Hooks.Oxide" "Carbon.Core/Carbon.Hooks/Carbon.Hooks.Community"; do
cd "$BOOTSTRAP_ROOT/Carbon.Core/$P"
git checkout "${new_branch}" || true
done
2 changes: 1 addition & 1 deletion Carbon.Core/.msbuild/Protocol.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
carbon that forces the users to update all the compontents at the
same time, like updating core and hooks in one shot.
-->
<CarbonProtocol>2024.03.07.0</CarbonProtocol>
<CarbonProtocol>2024.04.04.0</CarbonProtocol>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion Carbon.Core/.msbuild/References.props
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<Reference Include="System.Xml" />
<Reference Include="System" />

<PackageReference Include="Lib.Harmony" Version="2.3.1.1" />
<PackageReference Include="Lib.Harmony" Version="2.3.3" />

<!-- Carbon API -->
<ProjectReference Include="$(SolutionDir)\Carbon.Components\Carbon.SDK\Carbon.SDK.csproj" Private="false" Condition="!$(Product.Contains('Carbon.SDK')) and !$(Product.Contains('Carbon.Compiler'))" />
Expand Down
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Components/Carbon.Bootstrap
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Components/Carbon.Common
Submodule Carbon.Common updated 40 files
+0 −2 src/Base/BaseModule.cs
+12 −12 src/Base/BaseProcessor.cs
+12 −18 src/Carbon/Components/Entities.cs
+94 −53 src/Carbon/Components/HookCaller.cs
+7 −2 src/Carbon/Config.cs
+5 −5 src/Carbon/Core/Core.Commands.Conditionals.cs
+4 −4 src/Carbon/Core/Core.Commands.Config.cs
+45 −146 src/Carbon/Core/Core.Commands.Engine.cs
+2 −1 src/Carbon/Core/Core.Commands.Extensions.cs
+189 −13 src/Carbon/Core/Core.Commands.Hooks.cs
+22 −21 src/Carbon/Core/Core.Commands.Modules.cs
+175 −11 src/Carbon/Core/Core.Commands.Plugin.cs
+103 −21 src/Carbon/ModLoader.cs
+158 −20 src/Carbon/Modules/AdminModule/AdminModule.Tabs.Carbon.cs
+49 −18 src/Carbon/Modules/AdminModule/AdminModule.Tabs.Configuration.cs
+3 −3 src/Carbon/Modules/AdminModule/AdminModule.Tabs.Entities.cs
+96 −0 src/Carbon/Modules/AdminModule/AdminModule.Tabs.LangEditor.cs
+11 −3 src/Carbon/Modules/AdminModule/AdminModule.Tabs.Players.cs
+50 −26 src/Carbon/Modules/AdminModule/AdminModule.Tabs.Plugins.cs
+4 −8 src/Carbon/Modules/AdminModule/AdminModule.Tabs.SetupWizard.cs
+51 −24 src/Carbon/Modules/AdminModule/AdminModule.cs
+7 −7 src/CommunityCommon.cs
+2 −1 src/Contracts/Base/IBaseProcessor.cs
+2 −2 src/Covalence/GenericPosition.cs
+2 −2 src/Covalence/IPlayer.cs
+3 −3 src/Oxide/CUI/CuiHelper.cs
+6 −0 src/Oxide/Core/CSharpPluginLoader.cs
+14 −1 src/Oxide/Core/PluginLoader.cs
+8 −0 src/Oxide/Covalence/CovalencePlugin.cs
+4 −4 src/Oxide/Covalence/IPlayer.cs
+2 −1 src/Oxide/Extensions/ExtensionManager.cs
+6 −23 src/Oxide/Interface.cs
+11 −1 src/Oxide/Libraries/Permissions.cs
+2 −2 src/Oxide/Libraries/Player.cs
+32 −12 src/Oxide/Libraries/Timer.cs
+58 −87 src/Oxide/Libraries/WebRequest.cs
+80 −0 src/Oxide/OxideConfig.cs
+4 −0 src/Oxide/OxideMod.cs
+25 −1 src/Oxide/Plugin.cs
+15 −20 src/Oxide/RustPlugin.cs
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Components/Carbon.Common.Client
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Components/Carbon.Modules
Submodule Carbon.Modules updated 0 files
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Components/Carbon.Preloader
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Components/Carbon.SDK
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Hooks/Carbon.Hooks.Base
Submodule Carbon.Hooks.Base updated 0 files
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Hooks/Carbon.Hooks.Community
2 changes: 1 addition & 1 deletion Carbon.Core/Carbon.Hooks/Carbon.Hooks.Oxide
Submodule Carbon.Hooks.Oxide updated 0 files
15 changes: 0 additions & 15 deletions Carbon.Core/Carbon/src/Hooks/HookCallerInternal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,21 +121,6 @@ public override object CallHook<T>(T hookable, uint hookId, BindingFlags flags,
if (hooks != null && hooks.Count > 0)
{
hook = hooks[0];

if (args != null)
{
var actualLength = hook.Parameters.Length;

if (actualLength != args.Length)
{
args = RescaleBuffer(args, actualLength, hook);
hasRescaledBuffer = true;
}
else
{
ProcessDefaults(args, hook);
}
}
}

#if DEBUG
Expand Down
5 changes: 4 additions & 1 deletion Carbon.Core/Carbon/src/Jobs/ScriptCompilationThread.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class ScriptCompilationThread : BaseThreadedJob
public List<ISource> Sources;
public string[] References;
public string[] Requires;
public string InternalCallHookSource;
public bool IsExtension;
public List<string> Usings = new();
public Dictionary<Type, List<uint>> Hooks = new();
Expand Down Expand Up @@ -325,7 +326,7 @@ public override void ThreadFunction()

try
{
conditionals.AddRange(Community.Runtime.Config.Debugging.ConditionalCompilationSymbols);
conditionals.AddRange(Community.Runtime.Config.Compiler.ConditionalCompilationSymbols);
}
catch (Exception ex)
{
Expand Down Expand Up @@ -419,6 +420,7 @@ public override void ThreadFunction()
pdbFilename, ClassList);

InternalCallHookGenTime = _stopwatch.Elapsed;
InternalCallHookSource = partialTree.NormalizeWhitespace().ToFullString();
trees.Add(partialTree.SyntaxTree);
}

Expand Down Expand Up @@ -570,5 +572,6 @@ public override void Dispose()
PluginReferences = null;
Exceptions = null;
Warnings = null;
InternalCallHookSource = null;
}
}
69 changes: 41 additions & 28 deletions Carbon.Core/Carbon/src/Loaders/ScriptLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ void ExecuteProcess(IScriptProcessor processor, bool folderMode, params string[]

foreach (var plugin in processor.InstanceBuffer)
{
plugin.Value.SetDirty();
plugin.Value.MarkDirty();
}

Array.Clear(folders, 0, folders.Length);
Expand All @@ -114,9 +114,6 @@ void ExecuteProcess(IScriptProcessor processor, bool folderMode, params string[]

public void Clear()
{
AsyncLoader?.Abort();
AsyncLoader = null;

if (Scripts != null)
{
for (int i = 0; i < Scripts.Count; i++)
Expand Down Expand Up @@ -356,31 +353,45 @@ public IEnumerator Compile()
Logger.Error($" {i + 1:n0}. {print}");
}

var compilationFailure = new ModLoader.FailedCompilation
var compilationFailure = ModLoader.GetOrCreateFailedCompilation(InitialSource.ContextFilePath);
compilationFailure.Clear();

compilationFailure.RollbackType = ModLoader.GetRegisteredType(InitialSource.ContextFilePath);
compilationFailure.AppendErrors(AsyncLoader.Exceptions.Select(x => new ModLoader.Trace
{
File = InitialSource.ContextFilePath,
Errors = AsyncLoader.Exceptions.Select(x => new ModLoader.FailedCompilation.Trace
{
Message = x.Error.ErrorText,
Number = x.Error.ErrorNumber,
Column = x.Error.Column,
Line = x.Error.Line
}).ToArray(),
Message = x.Error.ErrorText,
Number = x.Error.ErrorNumber,
Column = x.Error.Column,
Line = x.Error.Line
}));

#if DEBUG
Warnings = AsyncLoader.Warnings.Select(x => new ModLoader.FailedCompilation.Trace
{
Message = x.Error.ErrorText,
Number = x.Error.ErrorNumber,
Column = x.Error.Column,
Line = x.Error.Line
}).ToArray()
compilationFailure.AppendWarnings(AsyncLoader.Warnings.Select(x => new ModLoader.Trace
{
Message = x.Error.ErrorText,
Number = x.Error.ErrorNumber,
Column = x.Error.Column,
Line = x.Error.Line
}));
#endif
};

// OnCompilationFail
HookCaller.CallStaticHook(150731668, InitialSource.ContextFilePath, compilationFailure.Errors, compilationFailure.Warnings);
HookCaller.CallStaticHook(150731668, InitialSource.ContextFilePath, compilationFailure);

if (Community.Runtime.Config.Compiler.UnloadOnFailure)
{
var rollbackTypeName = compilationFailure.GetRollbackTypeName();

ModLoader.FailedCompilations.Add(compilationFailure);
if (!string.IsNullOrEmpty(rollbackTypeName))
{
var existentPlugin = ModLoader.FindPlugin(rollbackTypeName);

if (existentPlugin != null)
{
ModLoader.UninitializePlugin(existentPlugin);
}
}
}
}

AsyncLoader.Exceptions?.Clear();
Expand All @@ -397,8 +408,6 @@ public IEnumerator Compile()

Logger.Debug($" Compiling '{(!string.IsNullOrEmpty(InitialSource.FilePath) ? Path.GetFileNameWithoutExtension(InitialSource.FilePath) : "<unknown>")}' took {AsyncLoader.CompileTime.TotalMilliseconds:0}ms [int. {AsyncLoader.InternalCallHookGenTime.TotalMilliseconds:0}ms]...", 1);

ModLoader.RegisterAssembly(AsyncLoader.Assembly);

var assembly = AsyncLoader.Assembly;
var firstPlugin = true;

Expand All @@ -413,7 +422,7 @@ public IEnumerator Compile()

if (type.GetCustomAttribute(typeof(InfoAttribute), true) is not InfoAttribute info) continue;

if (!IsExtension && firstPlugin && Community.Runtime.Config.Watchers.FileNameCheck && !BypassFileNameChecks)
if (!IsExtension && firstPlugin && !BypassFileNameChecks)
{
var name = Path.GetFileNameWithoutExtension(InitialSource.FilePath).ToLower().Replace(" ", "").Replace(".", "").Replace("-", "");

Expand Down Expand Up @@ -442,7 +451,7 @@ public IEnumerator Compile()
p.HasConditionals = Sources.Any(x => x.Content.Contains("#if "));
p.IsExtension = IsExtension;
#if DEBUG
p.CompileWarnings = AsyncLoader.Warnings.Select(x => new ModLoader.FailedCompilation.Trace
p.CompileWarnings = AsyncLoader.Warnings.Select(x => new ModLoader.Trace
{
Message = x.Error.ErrorText,
Number = x.Error.ErrorNumber,
Expand All @@ -462,6 +471,7 @@ public IEnumerator Compile()
p.SetProcessor(Community.Runtime.ScriptProcessor);
p.CompileTime = AsyncLoader.CompileTime;
p.InternalCallHookGenTime = AsyncLoader.InternalCallHookGenTime;
p.InternalCallHookSource = AsyncLoader.InternalCallHookSource;
p.FilePath = AsyncLoader.InitialSource.ContextFilePath;
p.FileName = AsyncLoader.InitialSource.ContextFileName;
Expand All @@ -471,7 +481,7 @@ public IEnumerator Compile()

Community.Runtime.Events.Trigger(CarbonEvent.PluginPreload, new CarbonEventArgs(rustPlugin));

ModLoader.RegisterAssembly(plugin.Name, AsyncLoader.Assembly);
ModLoader.RegisterType(AsyncLoader.InitialSource.ContextFilePath, type);

Plugin.InternalApplyAllPluginReferences();

Expand Down Expand Up @@ -505,6 +515,9 @@ public void Dispose()
{
HasFinished = true;

AsyncLoader?.Abort();
AsyncLoader = null;

if (Scripts != null)
{
foreach (var script in Scripts)
Expand Down
Loading

0 comments on commit f9ef65d

Please sign in to comment.