Skip to content

Commit d84952b

Browse files
committed
Merge branch 'develop' of https://github.com/LinwoodDev/Setonix into develop
2 parents be08fca + 64c5594 commit d84952b

11 files changed

Lines changed: 79 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,32 @@
22

33
<!--ENTER CHANGELOG HERE-->
44

5+
## 0.6.0 (2026-01-28)
6+
7+
* Add lua scripting support to server
8+
* Add game modes to packs
9+
* Add scripts directory
10+
* Add blackjack sample game mode
11+
* Add waypoints
12+
* Add action buttons support
13+
* Add toolbar options
14+
* Add welcome text to server
15+
* Add checkbox and dropdown dialog components
16+
* Improve message author display
17+
* Fix home page header text color in certain themes
18+
* Fix released server archives have no core pack
19+
* Fix design name
20+
* Fix kick command usage
21+
* Fix cards stretches if texture is not rectangular
22+
* Fix kick message
23+
* Fix user system on server
24+
* Rebuild event system
25+
* Add legacy android build
26+
* Modernize project structure
27+
* Upgrade to flutter 3.38
28+
29+
Read more here: https://linwood.dev/setonix/0.6.0
30+
531
## 0.5.2 (2025-09-30)
632

733
* Add snap support

api/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: setonix_api
22
description: The Linwood Setonix API
3-
version: 0.6.0
3+
version: 0.6.1
44
publish_to: none
55
# repository: https://github.com/my_org/my_repo
66

app/linux/debian/DEBIAN/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: linwood-setonix
2-
Version: 0.6.0
2+
Version: 0.6.1
33
Section: base
44
Priority: optional
55
Homepage: https://github.com/LinwoodDev/Setonix

app/linux/debian/usr/share/metainfo/dev.linwood.setonix.appdata.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
</description>
4242
<launchable type="desktop-id">dev.linwood.setonix.desktop</launchable>
4343
<releases>
44+
<release version="0.6.0" date="2026-01-28" />
4445
<release version="0.5.2" date="2025-09-30" />
4546
<release version="0.5.1" date="2025-07-22" />
4647
<release version="0.5.0" date="2025-07-02" />

app/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1147,7 +1147,7 @@ packages:
11471147
path: "../api"
11481148
relative: true
11491149
source: path
1150-
version: "0.6.0"
1150+
version: "0.6.1"
11511151
setonix_plugin:
11521152
dependency: "direct main"
11531153
description:

app/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: Play games without internet
1111
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
1212
# Read more about iOS versioning at
1313
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
14-
version: 0.6.0+10
14+
version: 0.6.1+11
1515
publish_to: none
1616

1717
environment:

plugin/lib/native.dart

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import 'dart:io';
2+
3+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
4+
import 'package:path/path.dart' as p;
5+
6+
/// Load the setonix_plugin library from the lib/ directory relative to the executable.
7+
/// This is used for compiled server binaries where the library is bundled alongside sqlite3.
8+
Future<ExternalLibrary?> loadExternalPluginLibrary() async {
9+
try {
10+
// Get the directory containing the executable
11+
final executablePath = Platform.resolvedExecutable;
12+
final executableDir = p.dirname(executablePath);
13+
// Look for the library in ../lib/ relative to the executable (same as sqlite3)
14+
final libDir = p.join(executableDir, '..', 'lib');
15+
16+
String libraryName;
17+
if (Platform.isWindows) {
18+
libraryName = 'setonix_plugin.dll';
19+
} else if (Platform.isMacOS) {
20+
libraryName = 'libsetonix_plugin.dylib';
21+
} else {
22+
libraryName = 'libsetonix_plugin.so';
23+
}
24+
25+
final libraryPath = p.join(libDir, libraryName);
26+
if (await File(libraryPath).exists()) {
27+
return ExternalLibrary.open(libraryPath);
28+
}
29+
// Fallback: try the default loading mechanism
30+
return null;
31+
} catch (_) {
32+
// Fallback: try the default loading mechanism
33+
return null;
34+
}
35+
}

plugin/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ packages:
410410
path: "../api"
411411
relative: true
412412
source: path
413-
version: "0.6.0"
413+
version: "0.6.1"
414414
shelf:
415415
dependency: transitive
416416
description:

server/lib/src/server.dart

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
66
import 'package:networker/networker.dart';
77
import 'package:networker_socket/server.dart';
88
import 'package:setonix_api/setonix_api.dart';
9+
import 'package:setonix_plugin/native.dart';
910
import 'package:setonix_server/src/asset.dart';
1011
import 'package:setonix_server/src/bloc.dart';
1112
import 'package:setonix_server/src/config.dart';
@@ -197,7 +198,9 @@ final class SetonixServer {
197198
);
198199
log('Verbose logging activated', level: LogLevel.verbose);
199200
try {
200-
await initPluginSystem(externalLibrary: await _loadPluginLibrary());
201+
await initPluginSystem(
202+
externalLibrary: await loadExternalPluginLibrary(),
203+
);
201204
log('Plugin system initialized', level: LogLevel.info);
202205
} catch (e) {
203206
log(
@@ -207,8 +210,12 @@ final class SetonixServer {
207210
}
208211
SecurityContext? securityContext;
209212
try {
210-
final privateKey = await File(p.join(rootDirectory, 'certs/server.key')).readAsBytes();
211-
final certificate = await File(p.join(rootDirectory, 'certs/server.crt')).readAsBytes();
213+
final privateKey = await File(
214+
p.join(rootDirectory, 'certs/server.key'),
215+
).readAsBytes();
216+
final certificate = await File(
217+
p.join(rootDirectory, 'certs/server.crt'),
218+
).readAsBytes();
212219
securityContext = SecurityContext()
213220
..usePrivateKeyBytes(privateKey)
214221
..useCertificateChainBytes(certificate);

server/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ packages:
492492
path: "../api"
493493
relative: true
494494
source: path
495-
version: "0.6.0"
495+
version: "0.6.1"
496496
setonix_plugin:
497497
dependency: "direct main"
498498
description:

0 commit comments

Comments
 (0)