Commit Graph
2456 Commits
Author SHA1 Message Date
Hornwitser a1c7173dd2 Merge pull request #661 from Hornwitser/windows-rework
Rework Factorio server stop logic
2024-09-14 18:15:19 +02:00
Cooldude2606 dfc406d025 Host shutdown on duplicate connection (#647)
* Update no-shadow lint rule for enums

https://typescript-eslint.io/rules/no-shadow/

* Add websocket close codes enum

* Pass close code and reason to event handlers

* Shutdown host on duplicate connection

* Add connection refusal

* Fix lib/link tests

* Response to comments

* Additional Tests

* Removed missed codes in close event
2024-09-14 16:39:59 +01:00
Hornwitser 10a857c4ad Gracefully handle RCON connection dropping
Handle the edge cases of RCON authentication failing and RCON connection
failing during startup so that server stop still works in these cases.
2024-09-14 16:09:17 +02:00
Hornwitser e4aeafaf14 Set a map limit to speed up integration test 2024-09-14 15:05:13 +02:00
Hornwitser a1e7b24298 Fix lingering killed server flag
Fix killing the Factorio server causing the next run of it to report a
different error when it's killed by an external factor than what's
expected.
2024-09-14 15:05:13 +02:00
Hornwitser 7ff06f2b96 Rewrite Factorio server shutdown logic
Rewrite shutdown logic for Factorio servers to send a /quit command via
RCON for both Linux and Windows when stopping a server to avoid having
two confusingly intermixed code paths for Windows and Unix systems.
This makes shutdown on Windows tell clients the server shut down instead
of abruptly stoping to respond.
2024-09-14 15:05:13 +02:00
Hornwitser 36fc2ac1db Support nested factorio dirs in server test
Source the factorio directory from the host config as with other tests
and handle it pointing to a folder of Factorio installations.
2024-09-14 15:05:13 +02:00
Hornwitser 64cc9c2b64 Use factorioDir for alt-host config
Source the factorio installation from the host config for the alt host
test like with other tests.
2024-09-14 14:58:55 +02:00
Hornwitser c0e631e251 Fix tables sorting being broken
Newer versions of Ant Design requires either dataIndex or key to be
defined on columns for sorting of the tables to work.  Add missing key
entries on columns.
2024-09-12 22:32:42 +02:00
Hornwitser 8e21290b22 Enable skipped tests on Windows
Use the stop host command to stop alt-host so that the tests that depend
on it can also be run on Windows.
2024-09-12 15:26:12 +02:00
Hornwitser a05aef260f Allow iterating through datastores like a Map
Support the for (const [k, v] of datastore) syntax which is commonly
used with maps by adding a Symbol.iterator function returning the
appropriate iterator.
2024-09-04 13:43:56 +02:00
Hornwitser 7547a48fd6 Fix controller not accepting old hosts.json format
Migrate the content of the hosts.json file before attempting to loading
it into the new datastore format.
2024-09-04 13:40:15 +02:00
Arvids Godjuks 33c9542524 Merge pull request #660 from clusterio/bugfix/special-case-base-mod
Fix built-in mods showing up as missing in web UI
2024-09-04 14:36:29 +03:00
Hornwitser 95396ff1c3 Fix this is not a constructor error on startup
When passing methods around they lose their binding to this, which means
the fromJSON methods no longer has this be their class.  Fix by binding
the methods to the class they belong to before passing them on to the
datastore.
2024-09-04 13:32:38 +02:00
Arvids Godjuks 59091d74f5 Fix built-in mods showing up as missing in web ui
Added "builtInMods" array that contains a list of built-in mod names that we check against to not show an error and remove ability to delete those mods from mod packs

Fixes #581
2024-09-04 14:14:55 +03:00
Hornwitser 6226a45d0b Fix safeOutputFile writing to wrong directory (#659)
When renaming a file over another file the operation is only atomic if
both the source file and the target file is in the same directory.  Fix
safeOutputFile writing the temporary file to a different directory than
the target file due to the path separator not being included when
creating the temporary file path.
2024-09-04 00:14:47 +02:00
Hornwitser 84958e3f9d Merge pull request #629 from Cooldude2606/feature/datastore
Impliment datastores to reduce boilerplate
2024-09-04 00:14:16 +02:00
Hornwitser a2ea2f2604 Merge branch 'master' into feature/datastore 2024-09-04 00:08:52 +02:00
Hornwitser 5d97e8e816 Source factorio dir from config-host.json in tests
If a factorio dir is configured in config-host.json then use that in the
tests.  This removes the requirement of having a factorio installation
in ./factorio or linking to one there when running the tests.
2024-09-03 21:58:45 +02:00
Hornwitser f3150a9261 Add tests for Address.addressedTo
Make sure the confusing logic in addressedTo is working correctly by
adding tests for it.
2024-09-03 21:58:45 +02:00
Hornwitser 4068129124 Remove useless div on drop zone
This would render on top of modals and doesn't appear to be necessary.
2024-09-03 21:58:45 +02:00
Hornwitser a883e692e4 Add changelog for #619 2024-09-03 21:58:45 +02:00
Hornwitser 5a73a73c36 Fix installer setting bad controller_url
The host.controller_url config is required to end with a / for the url
joining logic to work.  Fix code added #619 setting this to a value not
ending with a /.
2024-09-03 21:58:45 +02:00
Hornwitser a1856e6edf Merge pull request #573 from CCpersonguy/feature/instance-version-2
Display Instance's Factorio version in the web UI
2024-09-03 21:57:42 +02:00
Arvids Godjuks b2f0000a64 Update CHANGELOG.md
Fixed extra new line in changelog
2024-09-03 14:58:38 +03:00
Cooldude2606 8054bd66d2 Fix instance subscriptions (#655)
Remove some assumptions that prevent subscription listeners from working on an
instance.  This means allowing the host to forward the event from the instance
to the controller; correctly storing subscription listeners by address rather
than by connection; and a bunch of network and event stuff to correctly clean up
a listener.

Remove the assumption that all subscriptions events contains the updates
property.  This meant fixing inconsistent types; always checking if the property
existed; fixing lots of the tests that made incorrect assumptions.

Minior fixes:
- Fix double firing of listener callbacks on first connection.
- Fix synced being set to true too early on first connection.
- Fix edge case interaction between last response and last snapshot for values
  with updated set as 0.

Also change the the output made during the start of tests to indicate something
is happening when start up is slow and allow for silent testing to reduce the
amount of text output to the console.
2024-09-03 12:31:32 +02:00
Arvids Godjuks 0c63852a2c Merge branch 'master' into feature/instance-version-2 2024-09-03 02:09:28 +03:00
Hornwitser 47896247fe Add option to set path to server executable (#657)
Allow overriding the logic selecting the path to the Factorio
executable.  This is mainly useful when working with development
versions of the game.
2024-09-03 01:04:50 +02:00
Arvids Godjuks 1687f2f896 Merge pull request #654 from Cooldude2606/feature/plugin-mono-repos
Include mono repo plugins in build
2024-09-03 02:01:04 +03:00
Arvids Godjuks 7e5608e2d8 Merge pull request #656 from clusterio/bugfix/numeric-user-name-as-string
Fix bootstrap command missing type declaration for admin name
2024-09-03 01:31:57 +03:00
Arvids Godjuks 55fcd90ed2 Fix bootstrap command missing type declaration for admin name
Lack of typing was resulting in admin name being serialized to storage as a number and breaking websocket communications protocol due to type mismatch: expected string, got number.

Fixes #536
2024-09-03 01:24:24 +03:00
Cooldude2606 7db5821967 Update change log and publish steps (#646) 2024-09-02 23:06:40 +02:00
Cooldude2606 5215ee8eef Include mono repo plugins in build 2024-09-02 22:01:59 +01:00
Hornwitser 0b50a6a29e Add changelog entry for #652 2024-09-02 22:43:53 +02:00
Arvids Godjuks b69db08414 Merge pull request #652 from Hornwitser/fix-installer-breaking-on-space
Escape arguments when installer invokes commands
2024-09-02 23:18:02 +03:00
Hornwitser 0cd24d120c Install optional dependencies on CI
The @swc/core module depends on optional dependencies being installed in
order to get the correct native binding's package installed.  Remove
--no-optional flag passed to pnpm to install these.
2024-08-30 01:03:54 +02:00
Hornwitser 70cf680edd Escape arguments when installer invokes commands
The usage of shell: true means that no escaping is done on the arguments
passed to the commands invoked by the installer. This leads to the
installation failing if the user for example puts a space in the
username for the admin account.

Fix by escaping the arguments passed on command lines. This is
unreasonably complicated on Windows 😡.
2024-08-30 00:32:58 +02:00
Cooldude2606 660af756e6 Minor Corrections 2024-08-16 07:00:08 +02:00
Cooldude2606 08c522429b Implemented configDir for outDir 2024-08-16 07:00:08 +02:00
Cooldude2606 02df956f6c Fix breaking change introduced in v5.5
https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#simplified-reference-directive-declaration-emit
2024-08-16 07:00:08 +02:00
Cooldude2606 263bb16619 Fix missing codecov upload token 2024-08-16 06:58:14 +02:00
Cooldude2606 1f47f6dfc9 Update all pages to use PageHeader 2024-06-14 19:20:07 +02:00
Danielv123 51657bea44 Extend PageHeader for plugins
My plugins used the antd pageheader more than base did. I did not notice that these features dissappeared when we migrated from antd to our own implementation - this brings them back
2024-06-14 19:19:42 +02:00
Cooldude2606 498638c0c9 Improve config, message, and module templates (#641)
* Improve config, message, and module templates

* Update global handler in template module

* Add comments to empty instance template
2024-06-08 13:53:23 +01:00
Cooldude2606 51c450727d Add clean script to remove dist and other artifacts (#640)
* Add clean script

* Switch to using yargs
2024-06-08 13:53:00 +01:00
Cooldude2606 dbc79779ea Fix sending log messages across invalid link (#639) 2024-06-08 13:52:29 +01:00
Cooldude2606 2c2521a688 Add error tests for sendEvent and sendRequest (#638) 2024-06-07 15:46:49 +01:00
Cooldude2606 70e95a56b9 Fix test starting alt host under windows 2024-06-07 07:28:04 -06:00
Cooldude2606 fa0b0a6c21 Bump ci action versions (#637) 2024-05-26 19:28:27 +01:00
Cooldude2606 8b823a571d Coverage 100% 2024-05-25 18:17:50 +01:00