5253 Commits

Author SHA1 Message Date
UnknownShadow200
a589c25ae1 GUI: Split up Messages into Messages and Moderation messages 2022-09-08 22:42:33 +10:00
UnknownShadow200
72fdb1c835 Move plugin dll assembly resolving and directory creation to IScripting.cs 2022-09-08 20:03:51 +10:00
UnknownShadow200
028425ed5f Optimise dithering to one pass, and fix image being drawn upside down 2022-09-07 18:03:36 +10:00
UnknownShadow200
800cd535bb Optimise image dithering to use one less pass 2022-09-06 23:49:51 +10:00
UnknownShadow200
3d853c5b7a Fix LAB colorspace conversion, and simplify ImagePalette API a bit 2022-09-06 23:26:28 +10:00
UnknownShadow200
f88d8c1b50
Merge pull request #721 from Goodlyay/master
Imageprint improvements
2022-09-06 19:47:41 +10:00
UnknownShadow200
cfd98807d7 GUI: Avoid duplicate entries in input log, to simplify navigation through input history 2022-09-05 08:24:48 +10:00
UnknownShadow200
4fd0868a29 Add gradient brush 2022-09-04 10:10:59 +10:00
UnknownShadow200
d0eab2e6c9 Use AssemblyResolve event to fix plugin DLLs depending on other plugin DLLs not working on .NET framework and dotnet 2022-09-03 17:57:11 +10:00
UnknownShadow200
002def7f1a Add additional 'announce' parameter to OnConnectionReceivedEvent, to allow supressing the 'X connected to the server' message 2022-09-03 16:20:45 +10:00
UnknownShadow200
ee397b1008 Warn when can-mention-everyone is enabled in discordbot.properties 2022-09-03 09:31:49 +10:00
UnknownShadow200
edb6a653df Fix standalone build not loading SSL/TLS certificates on Linux 2022-09-01 21:06:55 +10:00
UnknownShadow200
5b4cd6fdd0 Move Database date/timespan parsing things to Database class, also stop using Action/T Func delegates since they don't exist in .NET 2.0 2022-08-30 08:31:12 +10:00
UnknownShadow200
40b99a0ae9 Add dotnet .csproj for GUI (only works on Windows though) 2022-08-28 20:19:38 +10:00
UnknownShadow200
84534f45b0 Fix error getting logged when starting a fresh server due to plugins folder not existing, introduced by d912fe994228bf99205cdc8678353872f0265ff4
Note that since IScripting.AutoloadPlugins() was the last thing called in the scheduled task anyways, this didn't actually cause any problems
2022-08-28 19:58:43 +10:00
UnknownShadow200
a0360981dc Reduce DB max retries from 10 to 5, make /server update use absolute path of server DLL instead of just assuming MCGalaxy_.dll in current directory 2022-08-28 19:35:10 +10:00
UnknownShadow200
e3aa3ec5b2 Add //pluginref to allow referencing plugin .dlls in source files 2022-08-28 10:11:19 +10:00
UnknownShadow200
19f81dfc14 Prevent using /mi env on levels you can't visit 2022-08-26 20:19:40 +10:00
UnknownShadow200
ae388a11bc Prevent using /ignore,/afk,/whisper in MBs (unless you're a high enough rank to be able to put any commands in MBs 2022-08-26 20:06:27 +10:00
Goodlyay
ef73d67bd7 Remove unnecessary IPaletteMatcher method 2022-08-25 17:34:21 -07:00
UnknownShadow200
fabd077658 Discord: Fix messages with newlines not appearing in-game at all 2022-08-25 21:22:50 +10:00
Goodlyay
0c2821a862 Imageprint improvements
Add dithered mode (floyd-steinberg)
Simplify mode names
In 2layer mode, ensure that the stone shadow strip isn't cut off at the top of the map
In 2layer mode, printing an image at the very edge of the map will no longer cut off the back layer
2022-08-24 19:40:51 -07:00
UnknownShadow200
89e4cf371c Make TableDumper use backend to generate SQL instead of manually generating the insert SQL dtatement 2022-08-23 20:53:10 +10:00
UnknownShadow200
cf1667a0c1 Zones should default to perbuild of level (and perbuildmax) 2022-08-22 20:17:43 +10:00
UnknownShadow200
d912fe9942 Ensure that plugins are loaded in a consistent order 2022-08-19 19:18:07 +10:00
UnknownShadow200
4e9f9c754a add ImageSharp license 2022-08-18 21:28:27 +10:00
UnknownShadow200
09897986fa Allow changing default login/logout message 2022-08-17 22:22:21 +10:00
UnknownShadow200
522260da58 Use ImageSharp instead for image decoding/resizing in dotnet build 2022-08-16 17:12:23 +10:00
UnknownShadow200
e36b969243 Fix when running on mono with relevant System.Drawing package installed but libgdiplus missing, that doing /imgprint or /gen with heightmap theme would crash the server
An important background note is that finalisers are run even when constructors throw exceptions - https://stackoverflow.com/questions/188693/is-the-destructor-called-if-the-constructor-throws-an-exception

What happened was that
a) new Bitmap() was called to decode the byte array
b)  this would in turn call the static constructor of 'GDIPlus' class
c)  since libgdiplus could not be loaded, a DllNotFoundException would get thrown
d) a TypeInitializationException would get thrown because the 'GDIPlus' class failed to initialise

However, Bitmap implements a finaliser, which meant that a bit later on the background thread
e) ~Image() was called
f)  which in turn called Dispose(false)
g)   which in turn calls 'if (GDIPlus.GdiPlusToken != 0 ..'
h)    which in turn calls the static constructor of 'GDIPlus' class
i)      which in turn throws a DllNotFoundException since libgdiplus was not found
j)    which therefore throws a TypeInitializationException
k) ... which ends up being unhandled
l)   ... and therefore takes down the process due to the exception being unhandled

So, the solution is to switch to using Image.LoadStream instead - the difference here is that
 the first TypeInitializationException is thrown before an Image object is even created,
 therefore no Image object gets finalised, sidestepping the issue altogether
2022-08-15 22:50:38 +10:00
UnknownShadow200
13447112b6 Abstract all System.Drawing stuff in ImageUtils.cs, in preparation for #720 2022-08-15 20:07:56 +10:00
UnknownShadow200
36ba055f4d Fix when dotnet MCGalaxy build is started through dotnet process (e.g. 'dotnet MCGalaxyCLI_core.dll'), that /restart would fail to work
Also fix exporting BLOB values via /server backup table, would generate invalid SQL that could not be subsequently imported again with /server import table
2022-08-13 22:07:35 +10:00
UnknownShadow200
009b31734a DB: Simplify date parsing a bit and remove RawGetDateTime 2022-08-13 17:17:28 +10:00
UnknownShadow200
01fc519082 Make /server backup table work with double/blob columns 2022-08-13 15:27:13 +10:00
UnknownShadow200
9922eae316 SQlite: Optimise GetStringValues to simply call GetString
This also means BLOB columns produce meaningful values instead of just 'System.Byte[]'
2022-08-13 14:44:41 +10:00
UnknownShadow200
d316992307 Move RawGetDateTime from IDatabaseBackend to ISqlRecord instead 2022-08-13 12:55:13 +10:00
UnknownShadow200
08a4128bfd
Merge pull request #718 from UnknownShadow200/DBRewrite3v2
Rewrite SQL to avoid directly depending on System.Data
2022-08-10 21:42:28 +10:00
UnknownShadow200
5f16176ff3 Minorly optimise SQLite backend
Allocates less memory now
2022-08-09 19:26:22 +10:00
UnknownShadow200
9f35b57478 Move MySQL backend to new interfaces 2022-08-09 18:47:18 +10:00
UnknownShadow200
bad7d3443e Move SQLite backend to new interfaces 2022-08-09 18:43:42 +10:00
UnknownShadow200
81b1617ba1 Change rest of code to use new interfaces instead of System.Data 2022-08-09 18:21:18 +10:00
UnknownShadow200
ffbd4a0edd Add interfaces for SQL objects 2022-08-09 18:05:10 +10:00
UnknownShadow200
cc600079a7 Disable MySQL support in standalone build, move compiling support to also be behind standalone build define 2022-08-09 11:39:00 +10:00
UnknownShadow200
1fdc08353f Don't try to download sqlite DLLs on non-windows 2022-08-09 11:26:48 +10:00
UnknownShadow200
2f803e1770 CLI: Reset color instead of explicitly setting foreground color to white, to produce better output on terminals using non-dark colour themes 2022-08-08 23:39:26 +10:00
UnknownShadow200
d37eb29460 Fix in standalone build, /restart didn't work 2022-08-08 21:11:36 +10:00
UnknownShadow200
efd7bd0373 Move process restart to IOperatingSystem class 2022-08-08 20:17:10 +10:00
UnknownShadow200
23b3f9709b Fix on NetBSD that doing /sinfo shows IndexOutOfRangeException for all process CPU usage 2022-08-07 14:26:34 +10:00
UnknownShadow200
2541bad9be Move all cpu time methods to dedicated IOperatingSystem class 2022-08-07 13:26:31 +10:00
UnknownShadow200
a75ea460b2 Move OS detection code out of CmdServerInfo.cs and into Server.cs 2022-08-07 10:32:08 +10:00
UnknownShadow200
5a5eb4492b
Merge pull request #717 from UnknownShadow200/DBRewrite2
Simplify database iteration API to avoid object arg/return value
2022-08-06 15:38:42 +10:00