Changelog
- 325667f Merge branch 'release/53.0.0'
- ed7ad79 ensure type conversion does not crash
- d2d7da5 ensure thread get cleaned up when ctx is done
- 0e3c3be fix type
- 67bc68f handle ctx to unblock WithPriority
- b393ca9 cleanup
- 4d94e97 add MaintenanceOn flag in server settings
- 1a55f3f add doc
- 295299f add GetChapter & ChapterClaimAll & ChapterCollectReward
- dcc1c36 extract lifeform phalanx range bonus
- 89e9404 use login proxy to get the login link
- bf430d9 fix support link
- 93270d7 cleanup useless code
- bfd84f1 add login link example
- 2d4f6db add ExtractAttackBlock
- d11f6dd fix login issue get login link after lobby update
- b82c0f4 fix login functions
- 7d2da18 use mtx library from github
- 9bb8ecf add LoginFn type
- 78fd9b2 fix error handling
- c49b903 keep reason for AccountBlocked error
- e6a977d fix ogamed
- 24db320 fix WithContext
- c94d054 move solvers in gameforge directory
- f434444 consistent variable name
- 531200c handle errors
- df84626 handle errors
- 28457ba ensure calls to discord api uses the context
- c6d720f cleanup duplicated strings
- 632c6c1 cleanup indentation
- 00f68fe cleanup useless code
- 321c86f cleanup telegram solver
- 716f7cd handle errors & cleanup code
- 07c558f handle error
- 501994b update dependencies
- 3503a25 fix rebase
- b9f69ed cleanup
- e81cc0b simplify code
- 8410d9b cleanup
- d339f77 use built-in min/max functions
- 511e26b cleanup error handling
- b3151c3 avoid locking the whole bot on websocket messages
- 316564e cleanup
- 117128b cleanup repeated logic
- 2b3e073 add doc
- 0d9315e cleanup public interface
- c49cf82 cleanup
- 1242273 cleanup mutex
- 240b698 add mtx library
- 90dcb48 cleanup
- 13628d6 move code
- 7c1071f fix typo
- c467c6d cleanup
- 01d6dd9 delete useless code
- 52dfb27 cleanup
- 59a6460 cleanup
- 6071564 cleanup
- f7981c5 add utils.Default
- bd5deb7 add Quiet in params
- 325dc91 can change logger via initial parameters
- ad22b4e cleanup
- 97444d8 cleanup
- beb415c fix token
- 05a728a fix typo
- a103899 cleanup Attr to AttrOr
- e8d5541 make it clear we're not ignoring the error
- b57ce05 cleanup duplicated code
- f1bcfb9 cleanup
- 837fa5e cleanup proxy code
- 412d86d handle error
- eda18cc handle errors
- 010bd13 cleanup
- f2dac52 cleanup
- 81be0fe handle errors
- 27188e1 handle goquery parsing errors
- ea9682f add compile time checks
- aa34f07 use Deref
- 9ee3e9d use iterator in extractors
- 1dda703 cleanup using iterator
- e1e131b lock bot when settings cache values from external calls
- ab442a1 fix broken code
- d5eddb3 use ctx in ogamed
- 81393c6 update ishell
- ff68a1a update echo framework
- aa070db update tablewriter
- 4e6ca8c upgrade and cleanup go-version
- 9af9470 upgrade to urfave cli v3
- 84b1876 remove useless dependency
- 8346395 update dependencies
- 6f04bcd cleanup dependencies
- 20d0416 update stretchr/testify
- f31f6f9 cleanup useless dependencies
- 8cdb7eb update goquery
- 01f3dfa useless dependency
- 61a7c13 update dependencies
- c4a9da7 fix error handling
- 65e0389 add ogame.Techs
- 64238c6 handle errors
- d4e4a74 handle errors
- cc31921 handle errors
- acce745 return on error
- 74353b3 allow wrapper to have a parent context
- 9424d4c expose cache token
- d4136a7 extract player id
- c277b2b handle error
- aa327ef handle errors
- e414711 add GetWeaponPower/GetShieldPower/GetStructuralIntegrity to ShipsInfos/DefensesInfos
- 0abda57 fix json
- 13393d8 add ErrForbidden
- 79d74c1 fix struct
- 7e26ff1 add SendSystemDiscoveryFleet
- 59f7ea9 cleanup repeated code
- 617980a cleanup
- 58c4676 improve highscore id extraction, and fix "ignored player" bug
- 5e6e04f ConstructionsBeingBuilt to return an error
- 919d48d extract construction level
- 1676fb5 use time.Duration for countdown values
- cfd0f92 refactor "ConstructionsBeingBuilt" output type
- 1d4dbdd fix index out of range
- 4792589 missile attack cannot be cancelled
- 76580cb add test
- 26eb9fc add IsCancellable method to Fleet
- 3f72166 add constructors for Coordinate
- f471d7f add SoftLogout to Wrapper interface
- 2abda49 sort lines
- 6ecb4e7 add "SoftLogout" to simulate closing the browser and closing the ws
- 087b893 close websocket when ws goes out of scope
- c26db6b add tests for Coordinate
- 90d4a7b reusable i18n strings
- a66c717 add IsZero to Coordinate
- d2e9311 fix cookie
- 480446f add Cargo to FleetBuilder
- 5cb59ce improve errors for phalanx
- 69ccc6e fix login
- 56a2b35 handle potential casting error
- b626eee cleanup duplicated code
- e223a83 cleanup
- e471110 cleanup
- aa1537c add utils Deref
- 092cbff cleanup logs
- 2361c9f new login
- 5343f2f cleanup fleet builder
- b36091b fix FastFlightTime
- 31f6391 add settings for cached values
- e7fba65 cleanup
- dc038e1 add FastFlightTime that avoid checkTarget
- 064d860 fix planet type
- e0a97e1 move struct in ogame package
- c278556 add FastMiniFleetSpy
- 190b62f fix timestamp
- a746fa2 add options to minifleet
- 90db8a0 add MiniFleetSpy
- 805e7b9 cleanup minifleet
- 19f3be8 cleanup
- 7fa4250 cleanup Coordinate Equal code
- d498d82 cleanup
- b5e7092 cleanup
- 88bd37f cleanup
- 5e49eda cleanup
- fb47cea cleanup
- 9699440 use built-in min/max
- aaafb3f use Find to cleanup some code
- 2cda511 add generic Find function
- ebdc602 getCachedCelestial to support anything that HasCoordinate
- 8c45b56 cleanup ConvertIntoCoordinate, and add support for EmpireCelestial
- 1500ec9 add GetCoordinate to EmpireCelestial struct
- 3f3fda8 add Cmp function for Coordinate
- 1fce1fd add GetCombatReportForFleet
- d71aec3 extract fleet id from combat reports
- 44f1f0c Fix ErrNotEnoughShips
- 55a3ae0 Fix ActivateItem
- 5a4cc45 fix GetItems
- b368b21 probes now have a base 1 fuel consumption
- cc71c05 add holding time to FlightTime for fuel calc
- 8ac1f31 fix tests
- fb58d5b add tests
- 4b6defc sollow ogame js logic
- 3c1f01a min consumption is 1
- bd11b5d use same logic as ogame js
- e9f25aa add ShipsInfos SlowestShip
- 7b3b580 add utils First/Second
- cc22812 rhis is the same as slices.Values
- 0afdf94 add utils functions
- fb73ee7 add tests
- 41d3470 cleanup
- 08f6322 add Any2 utils
- cc8829c refactor name
- 23a44ff cleanup
- 5a67072 add Count2 utils
- 9a4f5bf cleanup
- 3d87c76 cleanup
- 1f95ce7 cleanup
- 724f391 cleanup
- ca5884d add doc
- 142658a cleanup
- 735397f cleanup
- 811d923 cleanup code using IterFlyable
- c690c30 add Iter / IterFlyable to ShipsInfos
- 12b0f0e use built-in max function
- 0e32c64 cleanup
- 5ac7b52 move test
- 7ce7055 remove useless code
- 830bd2c cleanup
- 0ad6263 refactor variable name
- f07107d simplify code
- f582952 simplify code
- 61bc411 add BearerToken to gameforge config
- f43d966 add HasCombatShips & HasCivilShips to ShipsInfos
- bf92b72 add IsCivilShip
- c27b49b cleanup IsShip
- 6692de4 add Pathfinder to combat ships
- 3611a78 cleanup
- 2014cad cleanup
- cc3701d cleanup min
- 371992d cleanup
- 5f2c913 add PlanetID function to return the currently selected celestial ID
- 675a63e add CalcFlightTimeWithBaseSpeedDistance
- f254d0f add tests
- b5e5033 handle error
- dbd8500 cleanup
- 9b0d2ad refactor name
- 85a5058 cleanup refactor name
- 0b5912c remove useless code
- a7bdfc7 put back LoginResponse
- 92c6502 fix login challengeID
- 7505fa4 cleanup login
- ae45476 cleanup login process
- 8cce18a use built-in max function
- b61609b cleanup
- c3036f9 reorder params
- ae15154 fix code
- ae58890 if we already have a bearerToken avoid gameforge login
- 2e817db fix login challengeID param
- dea2f95 fix argument order
- 17fca6e cleanup
- e0d2343 add Logout
- aa55dad fix sitting code
- b73af97 GenerateSittingCode & fix gifting code payload
- edb962f add GenerateGiftingCode / RevokeGiftingCode
- 4150916 fix handlers
- 58a1209 add doc
- 7e805a6 cleanup refactor
- bc379d1 add doc
- 8d84373 refactor name
- 4fe8002 cleanup
- 5e4b77d move code & add doc
- db7e9ed cleanup
- 00988a4 cleanup
- aca183c cleanup
- 3c0a80b ensure config is not nil
- 2c16f86 move code
- ba1a985 cleanup captcha retry code
- ac38a43 fix Register
- 88d28da cleanup
- 624eb04 improved condition
- 1ce51b4 add doc, add GetLoginLink/ExecLoginLink
- e3b7b12 rename AddAccountRes to AddAccountResponse
- cc0baaa add GameforgeClient interface & move code
- 3ad99d2 cleanup
- 393aca8 add GetSErverAccount method to Gameforge struct
- ab14354 cleanup
- 35d1848 cleanup
- 5ef79eb rename GFLoginRes to LoginResponse
- 16edeb0 rename GfLogin to Login
- 205f985 fix tests
- 466ad7a rename CaptchaCallback to CaptchaSolver
- 81274e0 rename NewGameforge to New
- a25052e rename interface IHttpClient to HttpClient
- 0197e1d remove useless code
- 6339582 gameforge package no longer dependent on device package
- 20cc69c remove dependencies for gameforge package
- c032793 custom http client to handle gzip decompression
- 52e7fcf add utils Noop
- d44381e cleanup auctioneer websocket code
- 57584eb cleanup
- 729582e cleanup websocket instance
- d21af00 cleanup
- 20b5885 cleanup
- 6dc507e remove useless label
- 21b5d9e cleanup code
- 1c3ee3f cleanup ExponentialBackoff constructor
- 4d584ba reuse exponential backoff to cleanup code
- 69d8374 cleanup code
- 0ace5bc easier to read numbers
- 167e2f1 useless code
- 75a7de1 reuse constants
- 0027b88 cleanup
- d6d7955 use context instead of channel to close chat thread
- 58cbbd2 use go 1.23 Iterator to simplify exponential backoff code
- 6708434 add test
- 646bf63 fix exponential backoff
- 6c96b31 remove unnecessary property
- 9abe649 move code
- c938f88 cleanup
- a7e71e5 cleanup sanitize version + tests
- bc7e46f cleanup extractors
- 3cfac5b cleanup extractors
- e5db4aa start cleanup of extractor mess
- 89ee2f7 remove IsV7 IsV9 ...
- d8cfa54 move code
- 33ad3d9 cleanup imports
- e000d45 move code
- 5906bdf fix tests
- 81e1758 deadcode, moved to gameforge pkg
- e09d4e3 cleanup login code
- dccb90f cleanup "New"
- a5022f6 reorder fields
- e2888ef cleanup websocket code
- e2bffba cleanup code
- 84e84dd cleanup warnings
- f525c53 cleanup string format
- f3ccc21 username should not be exported
- 38a05a4 universe should not be exported
- 827cb9c remove useless ServerDataWrapper
- 8203c9c move fields that are cache of ogame values in cache sub structure
- 34f711f cleanup string format
- b2ce8b1 cleanup code to find user account
- 324dfc4 cleanup string format
- 0e816af simplify code
- 5b91742 cleanup
- c090f21 cleanup
- fccfe52 cleanup platform dup code
- 9df217b move code
- 95371e0 refactor var name
- 984dfcb move FindAccount in gameforge package
- 21e9728 move ExecLoginLink to gameforge package
- 58d6949 cleanup code
- 0cbefef log error
- af6a9f0 move ogame errors that belongs in gameforge package, remove gameforge pkg dependency on ogame pkg
- af4f40a rename universe to serverName in gameforge package
- 5e8e9a5 cleanup
- b1b6c56 add "Or" utils function
- 054d2fb add documentation
- 3ea63a0 cleanup login captcha solver
- 540fdec cleanup server settings using generics
- ed7d29a add IkariamSettings method
- a044b94 fix settings
- 71c64b9 add LoginAndRedeemCode & LoginAndAddAccount
- f1215ca add SolveChallenge and StartCaptchaChallenge
- 705a195 remove useless code
- 6281dfe move ogame specific code out of gameforge package
- b28481b cleanup gameforge package to work with multiple gameforge games
- 5a6f680 Add ShipsInfos Get method
- 96401dd add objs.GetShip utils function
- bdfa869 add ShipsInfos SetShip method
- 7698d20 add ShipsInfos ByShip method
- 255bd90 extract lifeform character classes bonuses
- 9d6e502 extract LfResourcesBonuses ResourcesExpedition
- bfed565 Fix alliance member count
- c63e743 Fix highscore player id extractor
- 28abf65 fix typo
- 8d89d9a add some top padding to make the text easier to read
- 501b773 min go version to 1.21 so we can use built-in min/max
- 513c732 cleanup code to merge question/icons images for discord
- 601d1e2 file name should be jpg
- a7188b6 cleanup ManualSolver
- f99a022 add documentation
- 1d58145 solvers should return -1 on error
- 2016f85 Merge tag '52.4.0' into develop