Compare commits

..

1418 Commits

Author SHA1 Message Date
Chaoscaot 07bf47481a Fix
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-05-12 20:52:36 +02:00
Chaoscaot 5305aaf669 Normalize block entity IDs and handle bundled packets
SteamWarCI Build successful
- Normalize hidden block entity identifiers across versions
- Add block break and tile entity handling for newer protocol versions
- Preserve packet filtering through bundle packets and fix chunk section copying
2026-05-11 23:40:36 +02:00
YoyoNow 1ea8dea381 Fix WhoisCommand.whois
SteamWarCI Build successful
2026-05-11 21:03:51 +02:00
Chaoscaot 15aa0572f3 Merge pull request 'Implement old bau behavior for WGS' (#332) from old-bau-behavior into main
SteamWarCI Build successful
Reviewed-on: #332
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2026-05-10 18:55:25 +02:00
Chaoscaot 6a843f4a71 Implement old bau behavior for WGS
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-05-10 11:29:26 +02:00
Chaoscaot a63c1a94ca Fix TNT explosion logic to handle non-TNT entities correctly
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-05-09 21:10:43 +02:00
Chaoscaot 43263035d9 Merge pull request 'Add DB Indexes for future local Development deployments' (#262) from add-db-indexes into main
SteamWarCI Build successful
Reviewed-on: #262
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2026-05-09 20:23:56 +02:00
Chaoscaot 42ab55d0f8 Merge branch 'main' into add-db-indexes
SteamWarCI Build successful
# Conflicts:
#	CommonCore/SQL/src/de/steamwar/sql/BannedUserIPs.kt
2026-05-09 20:22:15 +02:00
YoyoNow 8ade5180cb Fix FightSystem
SteamWarCI Build successful
2026-05-08 20:55:17 +02:00
Chaoscaot d0535d0c47 Merge pull request '[fightsystem]: Fix broken kit system' (#322) from bugfix/fightsystem-broken-kits into main
SteamWarCI Build successful
Reviewed-on: #322
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2026-05-04 18:31:25 +02:00
zOnlyKroks 79fa09e39b Chaos zufrieden stellen
SteamWarCI Build successful
2026-05-04 18:27:28 +02:00
Chaoscaot 4010c2125c Refactor lazy loading of dependents and relations to return lists
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-05-04 13:41:07 +02:00
zOnlyKroks 32de0077de [fightsystem]: Rework blacklist to whitelist
SteamWarCI Build successful
2026-05-03 14:15:59 +02:00
Chaoscaot bd53e016c5 Merge pull request 'feat: Add highligh flag for tracer' (#320) from BauSystem/add-highlight-trace-flag into main
SteamWarCI Build successful
Reviewed-on: #320
Reviewed-by: zOnlyKroks <zonlyknox@gmail.com>
2026-05-03 13:04:37 +02:00
zOnlyKroks 5b1ed644d1 [fightsystem]: Fix broken kit system
SteamWarCI Build successful
2026-05-03 12:52:23 +02:00
D4rkr34lm a41787d89d Add flag
SteamWarCI Build successful
2026-05-02 13:36:32 +02:00
Chaoscaot 8e392b56c3 Merge pull request 'fix: windcharge check' (#318) from fix/mssing-string-get into main
SteamWarCI Build successful
Reviewed-on: #318
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2026-05-01 12:30:42 +02:00
D4rkr34lm 42feadcd2d Add left out name get
SteamWarCI Build successful
2026-05-01 11:53:57 +02:00
Chaoscaot 15f0344416 Merge pull request 'feat: Add temporary hardcoded windcharge check to autockecker for WGS' (#316) from fix/enable-windcharges-for-wgs into main
SteamWarCI Build successful
Reviewed-on: #316
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2026-05-01 11:03:38 +02:00
D4rkr34lm c90a977ab2 use same hacky impl as in fight system
SteamWarCI Build successful
2026-05-01 11:02:33 +02:00
D4rkr34lm b186228f4e Revert "swap out used api"
SteamWarCI Build successful
This reverts commit 5f38474809.
2026-05-01 10:59:23 +02:00
D4rkr34lm 5f38474809 swap out used api
SteamWarCI Build failed
2026-05-01 10:54:53 +02:00
Manuel Frohn 4f27320548 Implement hardcoded windcharge check
SteamWarCI Build successful
2026-04-30 14:44:54 +02:00
D4rkr34lm ba7bd1f1dd Configure V21 impl
SteamWarCI Build failed
2026-04-30 12:52:46 +02:00
YoyoNow fbe70e7ead Improve CheckCommand for WGS
SteamWarCI Build successful
2026-04-24 10:09:56 +02:00
YoyoNow 30a499be1d Hotfix CheckCommand
SteamWarCI Build successful
Remove uneeded stuff in SQLWrapper
2026-04-23 23:33:02 +02:00
Chaoscaot 86e212fe42 Fix Kits
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-04-23 18:23:13 +02:00
YoyoNow 4a646e6be0 Improve WindchargeStopper
SteamWarCI Build successful
2026-04-23 12:09:17 +02:00
YoyoNow bc0dc1925e Merge pull request 'Add WindchargeStopper to handle wind charge entity removal based on fight boundaries' (#182) from windcharges into main
SteamWarCI Build successful
Reviewed-on: #182
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2026-04-23 12:04:34 +02:00
YoyoNow c3af4dbc68 Merge pull request 'Add CreateKitCommand' (#271) from add-kit-command into main
SteamWarCI Build successful
Reviewed-on: #271
2026-04-23 12:01:18 +02:00
YoyoNow 703639537d Fix CreateKitCommand
SteamWarCI Build failed
2026-04-23 11:59:28 +02:00
YoyoNow 9ac3bf6a6c Redesign GameModeConfig and SchematicType
SteamWarCI Build successful
2026-04-23 11:54:50 +02:00
YoyoNow 41ea6c9407 Fix ViewFlag.ADVANCED
SteamWarCI Build successful
2026-04-23 08:27:43 +02:00
YoyoNow 67e9a3544e Fix Tablist.disable removing gm knowledge
SteamWarCI Build successful
2026-04-20 13:45:16 +02:00
YoyoNow f69ae3e77b Fix BauLock
SteamWarCI Build successful
2026-04-20 13:31:45 +02:00
Chaoscaot 2208dcc0fb Fix Set Parent
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-04-15 18:20:07 +02:00
YoyoNow b466216b3a Fix BlockFormListener
SteamWarCI Build successful
2026-04-13 20:33:11 +02:00
YoyoNow 5a862b251b Add BlockFormListener
SteamWarCI Build successful
2026-04-13 20:29:47 +02:00
YoyoNow 60a82a685d Improve FightSystem REDUCED_DEBUG_INFO on Test Arena
SteamWarCI Build successful
2026-04-13 20:18:43 +02:00
YoyoNow 573b0c14ae Improve FightSystem REDUCED_DEBUG_INFO on Test Arena
SteamWarCI Build successful
2026-04-13 20:03:41 +02:00
YoyoNow 82abe7e20f Fix OutsideWincondition
SteamWarCI Build successful
2026-04-05 12:34:11 +02:00
YoyoNow 34da59714e Fix IngameListener and StartCommand
SteamWarCI Build successful
2026-04-05 12:30:55 +02:00
YoyoNow 97071165cd Fix IngameListener, OutsideWincondition, TowerGenerator
SteamWarCI Build successful
2026-04-05 12:08:29 +02:00
YoyoNow 634465fbf1 Fix BanListener inserting bedrock ips
SteamWarCI Build successful
2026-04-04 12:08:17 +02:00
YoyoNow 2ad8cc3f4a Merge branch 'RemoveUnusedSQL'
SteamWarCI Build successful
2026-04-02 09:01:20 +02:00
YoyoNow e190fe0858 Fix FreezeListener
SteamWarCI Build successful
2026-04-01 19:43:31 +02:00
YoyoNow 569d91a0d3 Remove SelectAdjacent as it annoys most players
SteamWarCI Build successful
2026-03-29 14:15:01 +02:00
YoyoNow 487a15849a Add supress warnings
SteamWarCI Build successful
2026-03-29 13:12:09 +02:00
YoyoNow e110033315 Fix Replays for 1.21
SteamWarCI Build successful
2026-03-29 13:05:41 +02:00
YoyoNow c0b192e2bf Fix WorldEditWrapper not loading schematics in 1.21
SteamWarCI Build successful
2026-03-29 12:53:55 +02:00
YoyoNow 612254296c Fix WorldEditWrapper21
SteamWarCI Build successful
2026-03-29 11:55:16 +02:00
Chaoscaot 1dbcb122c2 Change Loader to use FastSchematicReaderV3
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-03-28 22:30:01 +01:00
Chaoscaot f2ee9dbeb3 Fix Schematic Tabcomplete
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-03-28 22:24:07 +01:00
YoyoNow 404ab2abfb Update GDPRQuery
SteamWarCI Build successful
2026-03-25 07:46:38 +01:00
YoyoNow 59a927c33c Remove Team.address and Team.port
SteamWarCI Build successful
Remove PollAnswer and UserElo from GDPRQuery
2026-03-24 22:11:19 +01:00
Chaoscaot 6c062216a1 Remove usage of EffectiveSchematicNode
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-03-24 20:07:17 +01:00
YoyoNow 72d62dfbe5 Fix AutoCheckerResult ignoring Water and Lava correctly
SteamWarCI Build successful
2026-03-22 15:23:46 +01:00
YoyoNow 76ecaccc41 Hotfix AutoChecker15 for now
SteamWarCI Build successful
2026-03-21 17:45:26 +01:00
YoyoNow 9587b9e1fd Fix Laufbau double click
SteamWarCI Build successful
2026-03-21 09:46:20 +01:00
YoyoNow 14dc807fd9 Fix SoulSand in LaufbauCommand
SteamWarCI Build successful
2026-03-21 09:39:17 +01:00
YoyoNow 63ad85f727 Fix TickManager21.stepTicks
SteamWarCI Build successful
2026-03-21 09:37:05 +01:00
YoyoNow 72e88502d2 Fix TeamCommand /team event ...
SteamWarCI Build successful
2026-03-21 09:26:02 +01:00
YoyoNow 71767ef6d9 Fix TeamCommand /team event ...
SteamWarCI Build successful
2026-03-21 09:20:57 +01:00
YoyoNow 5e19629df5 Fix build
SteamWarCI Build successful
2026-03-15 12:54:43 +01:00
YoyoNow ca70c6685c Remove Lunar client support
SteamWarCI Build failed
They currently have a problem with their maven repository
2026-03-15 12:52:56 +01:00
YoyoNow f00bd153fe Add GameModeConfig#Schematic#ReplacementsWithoutBlockUpdates
SteamWarCI Build failed
Add GameModeConfig#Schematic#ReplacementsWithBlockUpdates
2026-03-15 12:49:13 +01:00
YoyoNow c1221e5cf5 Remove SWTSI (SteamWar Teamserver Integration)
SteamWarCI Build failed
2026-03-13 21:16:13 +01:00
YoyoNow 236944ff69 Remove useless System.out
SteamWarCI Build failed
2026-03-13 21:12:34 +01:00
YoyoNow ab85c72fe3 Fix DesignEndStone
SteamWarCI Build failed
Closes: #292
Closes: #288
2026-03-13 21:08:00 +01:00
YoyoNow a750185df0 Fix stop not working for DevServer starter
SteamWarCI Build successful
2026-03-02 12:10:18 +01:00
YoyoNow 008ff1091f Hotfix DevCommand
SteamWarCI Build successful
2026-03-02 11:59:52 +01:00
YoyoNow 5d24581038 Fix WaterRemover.handleEntityExplode
SteamWarCI Build successful
2026-03-01 21:47:22 +01:00
YoyoNow bce07a4ac8 Add GameModeConfig.ArenaConfig.WaterDamage for hard water damage by setting air or normal handling
SteamWarCI Build successful
2026-03-01 21:36:29 +01:00
Chaoscaot 30b7bbc283 Fix WebPW Command
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-02-09 09:28:14 +01:00
Chaoscaot 46a11af6ca Fix Ban Command
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-02-02 19:12:34 +01:00
Chaoscaot 73f903fc23 Merge branch 'main' into add-db-indexes
SteamWarCI Build successful
2026-01-23 23:04:11 +01:00
YoyoNow 361c698323 Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 10:07:26 +01:00
YoyoNow db4ea2d69d Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 10:05:17 +01:00
YoyoNow 3cecc58bce Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 10:03:14 +01:00
YoyoNow ce3d50fcb7 Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 10:01:36 +01:00
YoyoNow 61bd28150b Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 09:59:22 +01:00
YoyoNow bb9caa28a3 Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 09:57:18 +01:00
YoyoNow 4b2970d243 Check why StaticMessageChannel does not work?
SteamWarCI Build successful
2026-01-09 09:53:34 +01:00
Chaoscaot 834767edbe Fix API
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-04 12:35:11 +01:00
Chaoscaot 25116c3865 Add CreateKitCommand
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-03 02:30:36 +01:00
Chaoscaot 4bea077d36 Fix Kits
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-03 02:25:52 +01:00
Chaoscaot 74d6ccc24f Fix Kits
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-03 02:22:55 +01:00
Chaoscaot d9f905d957 Fix Kits
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-02 14:24:49 +01:00
Chaoscaot 663a745d8f Fix Kits
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-02 14:08:49 +01:00
Chaoscaot 1f64c3383d Fix HotbarKitListener
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2026-01-01 17:04:09 +01:00
Lixfel e4676d5eba Test hotpatch kit
SteamWarCI Build successful
2026-01-01 15:08:37 +01:00
Chaoscaot ebb2ec817d Fix Windcharge Damage on Arena
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-27 19:18:31 +01:00
Chaoscaot b6445ce2e9 Merge pull request 'Change Bug Button to Link' (#263) from update-bug-button into main
SteamWarCI Build successful
Reviewed-on: #263
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-12-25 21:09:37 +01:00
Chaoscaot a454da6da8 Change Bug Button to Link
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-25 21:07:53 +01:00
Chaoscaot 22ed7e23da Add DB Indexes for future local Development deployments
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-25 20:51:57 +01:00
YoyoNow a87cc94700 Pot fix for WinconditionBasePercent
SteamWarCI Build successful
2025-12-23 12:27:48 +01:00
YoyoNow 31dac93698 Remove UnrankCommand
SteamWarCI Build successful
2025-12-23 10:40:53 +01:00
YoyoNow 1f568f3d8b Remove UnrankCommand
SteamWarCI Build failed
2025-12-22 21:25:40 +01:00
YoyoNow b8b8dd1ba0 Update UserPerm.kt
SteamWarCI Build successful
2025-12-21 13:25:30 +01:00
YoyoNow 99f864d889 Hotfix SteamwarUser and ServerStarter
SteamWarCI Build successful
2025-12-21 12:27:55 +01:00
YoyoNow 711a21b634 Merge pull request 'Remove SchemElo and UserElo' (#256) from RemoveElo into main
SteamWarCI Build successful
Reviewed-on: #256
2025-12-21 12:04:27 +01:00
YoyoNow 9a85e8b442 Merge branch 'main' into RemoveElo
SteamWarCI Build successful
2025-12-21 12:03:33 +01:00
Chaoscaot 8358203cd4 Fix kits frfrfrfrfrfr
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-20 22:15:30 +01:00
Chaoscaot 6a619c2fd1 Fix kits frfrfrfrfr?
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-20 22:12:48 +01:00
Chaoscaot d348e4a480 Fix kits frfrfrfr?
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-20 22:10:25 +01:00
Chaoscaot 1269e4d971 Fix kits frfrfr
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-20 22:03:09 +01:00
Chaoscaot feac17d732 Fix kits frfr
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-20 21:58:44 +01:00
Chaoscaot 975b2bb8e6 Fix Kits and Maybe? Locale
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-20 21:35:34 +01:00
YoyoNow a1add4f997 Remove SchemElo and UserElo
SteamWarCI Build successful
2025-12-20 21:28:00 +01:00
YoyoNow b517fe3ad0 Remove SchemElo and UserElo
SteamWarCI Build successful
2025-12-20 21:26:42 +01:00
YoyoNow ac5dda58a1 Remove SchemElo and UserElo
SteamWarCI Build successful
2025-12-20 21:19:20 +01:00
YoyoNow 9efe625603 Pot fix for too many open files
SteamWarCI Build successful
2025-12-20 13:14:35 +01:00
YoyoNow 146ed598c8 Improve message on non ManualCheck submitted schematics
SteamWarCI Build successful
2025-12-20 12:20:36 +01:00
YoyoNow 50e86fbf89 Add 1.19 impl for SteamwarGameProfileRepository
SteamWarCI Build successful
2025-12-20 11:53:28 +01:00
YoyoNow 7216806a1c Fix SWPlayer on 1.15
SteamWarCI Build successful
2025-12-20 11:45:36 +01:00
YoyoNow 6cda79f7e1 Fix AbstractLinker
SteamWarCI Build successful
2025-12-20 11:41:36 +01:00
YoyoNow 87cc43a348 Fix FAWE stuff in 1.15
SteamWarCI Build successful
2025-12-20 11:35:08 +01:00
YoyoNow f9509c19d1 Trigger rebuild
SteamWarCI Build successful
2025-12-19 21:20:32 +01:00
YoyoNow e7bd5a9e74 Fix translation
SteamWarCI Build successful
2025-12-19 13:37:29 +01:00
YoyoNow aa74e0b887 Fix SQLWrapperImpl
SteamWarCI Build successful
2025-12-18 18:18:56 +01:00
Chaoscaot fe8d37c966 Maybe? Fix kits
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-17 23:29:00 +01:00
YoyoNow ccb79737db Fix Core.setServerName
SteamWarCI Build successful
2025-12-17 21:33:19 +01:00
Chaoscaot 1eea792e23 Synchronize team cache access to ensure thread safety
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-17 21:29:14 +01:00
YoyoNow 19c6ad0965 Merge pull request 'Add WorldIdentifier' (#249) from SpigotCore/WorldIdentifier into main
SteamWarCI Build successful
Reviewed-on: #249
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-12-17 21:28:41 +01:00
YoyoNow 2c5306bfd1 Merge pull request 'Add WaterDestroy feature with command and listener' (#248) from waterblocker into main
SteamWarCI Build successful
Reviewed-on: #248
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-12-17 21:13:45 +01:00
YoyoNow 1982b5e42c Update WaterDestroyCommand
SteamWarCI Build successful
2025-12-17 21:13:31 +01:00
Chaoscaot 3ad4081add Merge pull request 'Add AuditLog to Backend' (#244) from Backend/auditlog into main
SteamWarCI Build successful
Reviewed-on: #244
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-12-17 21:03:04 +01:00
Chaoscaot 33a7961979 Add WaterDestroy feature with command and listener
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-17 20:49:23 +01:00
YoyoNow 4e994813eb Add WorldIdentifier
SteamWarCI Build successful
2025-12-17 20:31:21 +01:00
YoyoNow 367a72141a Undo Improve TNTDistributor
SteamWarCI Build successful
2025-12-17 11:32:11 +01:00
YoyoNow c29788f1eb Improve TNTDistributor
SteamWarCI Build successful
2025-12-17 11:15:47 +01:00
YoyoNow 9d32a331ca Improve TNTDistributor
SteamWarCI Build successful
2025-12-16 14:50:56 +01:00
YoyoNow c55494aeba Revert WinconditionPercent for QuickGear
SteamWarCI Build successful
2025-12-16 14:15:04 +01:00
YoyoNow 61dcee6f8e Improve WinconditionPercent for QuickGear
SteamWarCI Build successful
2025-12-16 13:20:55 +01:00
Chaoscaot 8b2b7e011a Add WaterDestroy feature with command and listener
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-11 00:34:29 +01:00
YoyoNow 8640d43d4b Merge pull request 'BauSystem/ImproveRegionData' (#234) from BauSystem/ImproveRegionData into main
SteamWarCI Build successful
Reviewed-on: #234
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-12-03 13:26:10 +01:00
YoyoNow fbdb0cfaf1 Merge pull request 'Fix replay in 1.21 -> RPlayer needs fixing before' (#199) from FightSystem/ReplayFix21 into main
SteamWarCI Build successful
Reviewed-on: #199
2025-12-03 10:05:03 +01:00
YoyoNow 9305ab5f91 Merge pull request 'Refactor Authlib integration and adjust entity handling for 1.21 compatibility' (#106) from 1.21.1/rplayer-fix into main
SteamWarCI Build successful
Reviewed-on: #106
2025-12-03 10:04:50 +01:00
YoyoNow 34ade1de19 Merge branch 'main' into 1.21.1/rplayer-fix
SteamWarCI Build successful
2025-12-03 09:59:33 +01:00
YoyoNow 87d0df8067 Merge pull request 'Remove Poll-System' (#245) from Refactor/remove-poll-system into main
SteamWarCI Build successful
Reviewed-on: #245
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-12-03 09:56:28 +01:00
Chaoscaot 09d2ed5384 Include permissions in /me route response
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 22:24:24 +01:00
Chaoscaot b576c36c2d Reapply "Improve Performance"
This reverts commit 0a7a753c48.

Signed-off-by: Chaoscaot <max@maxsp.de>

# Conflicts:
#	WebsiteBackend/src/de/steamwar/routes/AuditLog.kt
2025-12-02 21:59:34 +01:00
Chaoscaot 2f8491c3f6 Fix Team Creation
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 21:35:14 +01:00
Chaoscaot a089d42d9a Improve Performance
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 21:34:35 +01:00
Chaoscaot 0a7a753c48 Revert "Improve Performance"
SteamWarCI Build successful
This reverts commit 86bfde90b8.
2025-12-02 21:14:00 +01:00
Chaoscaot 86bfde90b8 Improve Performance
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 21:13:43 +01:00
Chaoscaot 4df92f7e5f Remove Poll-System
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 20:43:37 +01:00
Chaoscaot 9a78b99a75 Remove Poll-System
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 16:39:16 +01:00
Chaoscaot 1de1bf6571 Fix Leaderboard ID handling
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-02 00:47:54 +01:00
Chaoscaot 7c5a927d0f Add AuditLog to Backend
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-01 18:36:36 +01:00
Chaoscaot dfb71594b9 Fix Leaderboard
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-01 14:49:23 +01:00
Chaoscaot f535e056c7 Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
# Conflicts:
#	LobbySystem/src/de/steamwar/lobby/special/advent/Present.java
2025-12-01 12:23:34 +01:00
Chaoscaot e67e340707 Fix Advent Calendar Present parent ID handling
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-01 12:23:04 +01:00
YoyoNow a594a163f7 Fix NodeMember for Present since the setter for parent apparently does not work
SteamWarCI Build successful
2025-12-01 09:14:09 +01:00
YoyoNow 1c0146a02d Fix SchematicNode.parentNode get
SteamWarCI Build successful
2025-12-01 09:01:00 +01:00
Chaoscaot d3fecf763c Fix Lobby
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-12-01 00:21:12 +01:00
Chaoscaot 3944c011b0 Fix Lobby
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-30 21:22:21 +01:00
Chaoscaot 1f4a77e8b4 Fix Lobby
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-30 20:59:03 +01:00
Chaoscaot 4d40e52ea6 Merge pull request 'Refactor leaderboard management' (#166) from Lobby/refactor-leaderboard into main
SteamWarCI Build successful
Reviewed-on: #166
2025-11-30 20:56:10 +01:00
YoyoNow 698e411944 Fix SQLWrapperImpl.getMaterialWithGreaterBlastResistance for 1.12 or lower
SteamWarCI Build successful
2025-11-30 20:18:58 +01:00
Chaoscaot 0fd7aab86c Fix FightStatistics
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-30 17:27:27 +01:00
YoyoNow 624fe98c47 Add some Clear tasks
SteamWarCI Build successful
2025-11-30 16:12:52 +01:00
Chaoscaot ede7df82f3 Fix FightStatistics
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-30 16:09:40 +01:00
Chaoscaot 3970f21999 Yeet Lunar
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-30 15:04:56 +01:00
Chaoscaot 6f248b78b8 Maybe fix Techhider
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-30 14:36:44 +01:00
Chaoscaot 6f4ec64ef7 Fix EventRelations
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-29 18:51:18 +01:00
YoyoNow bfc835b0dc Hotfix steamwar.java.gradle
SteamWarCI Build failed
2025-11-29 18:27:08 +01:00
YoyoNow 2dfad9e55c Hotfix FightStatistics
SteamWarCI Build successful
2025-11-29 17:57:25 +01:00
YoyoNow 00f5481630 Fix tnt only listeners detecting WindCharges
SteamWarCI Build successful
2025-11-28 12:15:34 +01:00
YoyoNow 2424bd430d Fix TNTListener action bar message showing for WindCharge
SteamWarCI Build successful
Remove OtherTNTListener and merge into TNTListener
2025-11-28 12:13:06 +01:00
YoyoNow eafb469eca Remove FlagStorage and merge into RegionData
SteamWarCI Build successful
2025-11-28 12:04:36 +01:00
YoyoNow 14bd38f471 Improve FlagStorage 2025-11-28 11:59:14 +01:00
YoyoNow c107b741c0 Merge pull request 'Add UserPerm.PUNISHMENTS' (#233) from CommonCore/UserPerm-Punishments into main
SteamWarCI Build successful
Reviewed-on: #233
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-11-28 10:10:13 +01:00
YoyoNow febf2c283d Fix REntity.bowDrawnWatcher
SteamWarCI Build successful
2025-11-28 09:56:18 +01:00
YoyoNow 5f53ebf5b3 Fix REntity.getEquipmentPacket
SteamWarCI Build successful
Fix FightSchematic.pasteTeamName
2025-11-28 09:27:04 +01:00
YoyoNow f6f7b0dced Add UserPerm.PUNISHMENTS
SteamWarCI Build successful
Improve PunishmentType needed permissions
2025-11-28 08:02:28 +01:00
YoyoNow 5bdbf5dff4 Fix schematic commands for SteamWarLuaPlugin
SteamWarCI Build successful
Closes: #228
2025-11-25 22:10:14 +01:00
YoyoNow 1ae445319a Improve Present.click
SteamWarCI Build successful
2025-11-25 22:04:44 +01:00
YoyoNow a426a563db Fix SpectatorListener running the techhider all the time
SteamWarCI Build successful
2025-11-25 21:40:23 +01:00
Chaoscaot 1098c5617f Redirect to Issue tracker
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-25 21:11:47 +01:00
Chaoscaot c2bca83735 Fix Tab Complete
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-25 18:37:58 +01:00
YoyoNow cfa1b5d0cd Hotfix XrayCommand bugging players back
SteamWarCI Build successful
2025-11-25 18:26:48 +01:00
Chaoscaot 500f8978e5 Fix Schematic List
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-25 18:12:30 +01:00
YoyoNow 395e4a2167 Hotfix windcharges destroying blocks
SteamWarCI Build successful
2025-11-25 17:37:23 +01:00
YoyoNow 1d65f2349e Merge pull request 'Add SWPlayer for per player storage and without Memory Leaks' (#188) from SpigotCore/SWPlayer into main
SteamWarCI Build successful
Reviewed-on: #188
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-11-25 17:00:24 +01:00
YoyoNow c0a4413b7a Merge branch 'main' into SpigotCore/SWPlayer
SteamWarCI Build successful
2025-11-25 16:59:28 +01:00
YoyoNow 6b71ac28fe Merge pull request 'bausystem/TLS' (#184) from bausystem/TLS into main
SteamWarCI Build successful
Reviewed-on: #184
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-11-25 16:58:21 +01:00
YoyoNow 880c6f5066 Remove TypeGenerator
SteamWarCI Build successful
2025-11-25 16:37:19 +01:00
PsiRobot e284f8f08c Fix PR
SteamWarCI Build successful
2025-11-25 12:57:28 +00:00
PsiRobot 8a5c5794c0 Replace - with : in translation
SteamWarCI Build successful
2025-11-25 12:54:10 +00:00
PsiRobot a9e278ccd9 Fix spelling (s.a. PR)
SteamWarCI Build successful
2025-11-25 12:43:38 +00:00
YoyoNow c9bfcc5c0c Fix not ignoring deleted teams
SteamWarCI Build successful
Closes: #226
2025-11-24 20:55:58 +01:00
Chaoscaot e343d044ff Refactor Discord authentication endpoint for improved error handling and structure
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-14 23:56:04 +01:00
Chaoscaot f923a007a7 Revert "Add EventCache for efficient retrieval of event groups and teams"
SteamWarCI Build successful
This reverts commit 8b4f864f99.

Revert "Refactor EventFights and Fight classes to improve player initialization and retrieval"

This reverts commit 8d705e7a84.

Revert "Refactor EventFights and Fight classes to improve player initialization and retrieval"

This reverts commit 78352a3e67.
2025-11-14 23:25:05 +01:00
Chaoscaot 78352a3e67 Refactor EventFights and Fight classes to improve player initialization and retrieval
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-14 23:18:38 +01:00
Chaoscaot 8d705e7a84 Refactor EventFights and Fight classes to improve player initialization and retrieval
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-14 23:14:13 +01:00
Chaoscaot 8b4f864f99 Add EventCache for efficient retrieval of event groups and teams
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-14 22:47:27 +01:00
Chaoscaot f9cb712b07 Merge pull request 'Simplify Tokens and add Discord OAuth' (#220) from authv3 into main
SteamWarCI Build successful
Reviewed-on: #220
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-11-14 22:43:04 +01:00
Chaoscaot b3b13d2950 Move Chatter.disconnect call to ensure proper execution after IP ban check.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-13 23:01:37 +01:00
Chaoscaot 08ad5edf76 Simplify Tokens and add Discord OAuth
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-13 14:31:05 +01:00
Chaoscaot afcf3a1906 Fix Schematic Move
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-12 22:52:51 +01:00
YoyoNow 33efd26d48 Fix build.gradle.kts
SteamWarCI Build successful
2025-11-12 07:43:36 +01:00
YoyoNow 2a96b3c26a Hotfix AutoCheckerItems for 1.19
SteamWarCI Build failed
2025-11-11 22:06:44 +01:00
YoyoNow 3de4b3871d Hotfix ModifyPart
SteamWarCI Build successful
2025-11-11 21:42:38 +01:00
YoyoNow 67223be80e Trigger rebuild
SteamWarCI Build successful
2025-11-11 21:28:13 +01:00
Chaoscaot 81715736ae Refactor TeamTable to introduce default values for color and deleted, and make address column nullable.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 18:44:46 +01:00
Chaoscaot 36691c6fea Refactor TeamTable to introduce default values for color and deleted, and make address column nullable.
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 18:44:25 +01:00
Chaoscaot d0c1413ea6 Refactor Leaderboard to Kotlin, leveraging Exposed library for database operations, and update LeaderboardManager for compatibility.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 17:39:39 +01:00
YoyoNow 58618a3991 Fix FightTeam.removeLeader
SteamWarCI Build successful
Fix FightTeam.setLeader
2025-11-11 17:36:19 +01:00
Chaoscaot 5f7c5f0a18 Merge remote-tracking branch 'origin/Lobby/refactor-leaderboard' into Lobby/refactor-leaderboard
# Conflicts:
#	LobbySystem/src/de/steamwar/lobby/util/LeaderboardManager.java
2025-11-11 17:28:03 +01:00
Chaoscaot 9e9f405e30 Refactor leaderboard management: replace UserConfig-based implementation with new Leaderboard SQL class, update related classes to use LeaderboardManager, and fix query/logic for best time retrieval. 2025-11-11 17:27:24 +01:00
Chaoscaot e6848b27a0 Refactor FightTable to use WinningTeam enum for win column and adjust related logic.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 17:25:38 +01:00
Chaoscaot 93d0011b46 Update openMaterialSelector to exclude non-item materials in UtilGui.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 17:20:33 +01:00
YoyoNow fd4d15ac5a Fix replay in 1.21 -> RPlayer needs fixing before
SteamWarCI Build successful
2025-11-11 17:13:35 +01:00
YoyoNow f56fedefe4 Fix Obsidian and Bedrock
SteamWarCI Build successful
2025-11-11 17:07:56 +01:00
YoyoNow 167bb4e266 Fix YMLWrapper
SteamWarCI Build successful
2025-11-11 17:05:46 +01:00
YoyoNow f6a9ce184b Closes: #214
SteamWarCI Build successful
Closes: #215
2025-11-11 16:40:26 +01:00
Chaoscaot d5708c110c Refactor NodeDataTable to use default current timestamp for createdAt and ensure schemData reads blob as bytes.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 00:18:16 +01:00
Chaoscaot f23c1215b7 Refactor NodeDataTable to use insert instead of insertIgnore and add blobParam import.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-11 00:15:19 +01:00
YoyoNow cfcaf1569c Add GameModeConfig.Schematic.MaxBlastResistance
SteamWarCI Build successful
2025-11-10 21:39:35 +01:00
Chaoscaot dc56b67ff6 Sort fights by start time in descending order and refactor saveFromStream method to use useDb block.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 14:18:13 +01:00
Chaoscaot 13c4a3ff8b Sort fights by start time in descending order and refactor saveFromStream method to use useDb block.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 12:27:02 +01:00
Chaoscaot 7e5a13989b Sort fights by start time in descending order and refactor saveFromStream method to use useDb block.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 12:24:51 +01:00
Chaoscaot 990a03ca6c Add Exposed library dependencies to WebsiteBackend build script.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 11:57:12 +01:00
YoyoNow 4a608fe5b5 Fix SchematicType.fromDB
SteamWarCI Build successful
2025-11-10 11:55:17 +01:00
Chaoscaot 5ca15aa117 Refactor PersonalKitTable to use explicit ID column initialization and update create method to utilize insert operation.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 11:50:39 +01:00
Chaoscaot 9b459bd12c Refactor PersonalKitTable to use explicit ID column initialization and update create method to utilize insert operation.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 11:40:34 +01:00
Chaoscaot b20d37e252 Refactor PersonalKitTable to use explicit ID column initialization and update create method to utilize insert operation.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 11:40:20 +01:00
YoyoNow a8c98594a9 Fix GameModeConfig.Schematic.SubTypes
SteamWarCI Build successful
2025-11-10 11:32:03 +01:00
Chaoscaot 1c076b5bbf Fix incorrect field references in BauweltMember methods.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 11:19:56 +01:00
Chaoscaot 133ddb39cc Add ID column initialization for BauweltMember
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 11:09:57 +01:00
YoyoNow ebb375d8d6 Improve messages
SteamWarCI Build successful
2025-11-10 11:04:29 +01:00
YoyoNow 8ada9a6335 Fix UserElo.getEloFromDb
SteamWarCI Build successful
2025-11-10 11:01:31 +01:00
Chaoscaot 0760a5a08a Update build scripts: migrate to Spigot API, adjust JVM toolchains and Java version.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:42:24 +01:00
Chaoscaot 852ff95757 Update build scripts: migrate to Spigot API, adjust JVM toolchains and Java version.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:40:36 +01:00
Chaoscaot 5c7d388876 Remove unused SLF4J exclusion from shadowJar task.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:34:44 +01:00
Chaoscaot 4f92f8132d Remove unused SLF4J exclusion from shadowJar task.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:27:58 +01:00
Chaoscaot 56fb63f781 Add MySQL dependency to KotlinCore build script.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:17:37 +01:00
Chaoscaot 273efff87d Remove unused api-version field from plugin.yml.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:16:14 +01:00
Chaoscaot 0cac6f36c1 Remove unused api-version field from plugin.yml.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:09:44 +01:00
Chaoscaot 8680b9e6cf Change api dependencies to compileOnlyApi in build.gradle.kts and rename KitName column to Name in PersonalKitTable.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 09:02:23 +01:00
YoyoNow 6c94efaf90 Improve TeamCommand.info
SteamWarCI Build successful
2025-11-10 09:00:18 +01:00
YoyoNow f6261ad989 Improve output for DevCommand reloadmodes 2025-11-10 09:00:18 +01:00
Chaoscaot 614e989892 Rename IgnoreTable to IgnoredPlayers in IgnoreSystemTable for improved clarity.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-10 08:47:32 +01:00
Chaoscaot 84e1f605bd Merge pull request 'Exposed!' (#179) from exposed into main
SteamWarCI Build successful
Reviewed-on: #179
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-11-10 08:42:59 +01:00
Chaoscaot 0ea5a62dbe Merge branch 'main' into exposed
SteamWarCI Build successful
2025-11-10 08:40:42 +01:00
Chaoscaot 0eb6047139 Merge remote-tracking branch 'origin/exposed' into exposed
SteamWarCI Build successful
2025-11-09 17:48:12 +01:00
Chaoscaot fcebecf745 Add placement column to TeamTeilnahme table and corresponding property.
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-09 17:48:02 +01:00
YoyoNow dd14e9f518 Cleanup Session
SteamWarCI Build successful
2025-11-09 17:30:21 +01:00
Chaoscaot 6c5239c8fc Optimize imports across SQL module: replace explicit class imports with wildcard imports, remove unused imports for cleaner structure.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-09 17:28:40 +01:00
Chaoscaot fc71f47add Remove needsAdmin property from PunishmentType enum and refactor related declarations for cleaner structure.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-09 17:25:19 +01:00
Chaoscaot 5d36393643 Refactor EventRelation, EventGroup, and EventFight classes: ensure database operations are enclosed in useDb, add default values for group points, and override delete methods. Update Gradle build script to include lombok dependencies.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-08 22:44:22 +01:00
Chaoscaot fa4d006dd3 Refactor Authlib integration and adjust entity handling for 1.21 compatibility
SteamWarCI Build successful
2025-11-08 20:09:02 +01:00
Chaoscaot ebc6f50261 Refactor Gradle build scripts: update source set exclusions, add java-library plugin, and remove redundant configurations in SQL module.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-08 13:52:27 +01:00
YoyoNow 69cf219e39 Fix FlatteningWrapper21
SteamWarCI Build successful
2025-11-07 22:47:05 +01:00
YoyoNow fb4e53165f Hotfix FixedFlagStorage.clear and FixedGlobalFlagStorage.clear
SteamWarCI Build successful
2025-11-07 22:42:48 +01:00
YoyoNow 415d783365 Hotfix SEND_COMMAND_FEEDBACK in 1.20+
SteamWarCI Build successful
2025-11-07 22:17:30 +01:00
YoyoNow ee99708340 Hotfix (FA)WE Selection 1.20+
SteamWarCI Build successful
2025-11-07 22:13:31 +01:00
Chaoscaot c9d74fb656 Remove redundant SQL logger in useDb and extra newlines in SQLConfig.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 18:59:01 +01:00
Chaoscaot e50e52950b Refactor Token and SteamwarUser classes: enhance owner property with memoized transformation, increase hash generation key size, and ensure database usage in useDb block.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 18:57:34 +01:00
YoyoNow aaccd4b095 Merge branch 'main' into SpigotCore/SWPlayer
SteamWarCI Build successful
2025-11-07 15:41:56 +01:00
YoyoNow cac0ae3e13 Hotfix MaterialLazyInit for 1.21
SteamWarCI Build successful
2025-11-07 15:41:48 +01:00
YoyoNow 14045a3366 Update method name in Countingwand
SteamWarCI Build successful
2025-11-07 15:30:18 +01:00
YoyoNow f9b3dd34cf Trigger rebuild
SteamWarCI Build successful
2025-11-07 15:25:20 +01:00
Chaoscaot e5a61226ca Add newline at end of build.gradle.kts file for consistency.
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 15:06:37 +01:00
YoyoNow cc3b93a8f6 Improve SelectAdjacent
SteamWarCI Build successful
2025-11-07 14:54:57 +01:00
Chaoscaot 0c35ace5e2 Remove redundant Java installation paths in Gradle configuration.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 14:54:30 +01:00
Chaoscaot 23bcf14ca5 Update Gradle configuration to specify multiple Java installation paths for compatibility.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 14:53:07 +01:00
YoyoNow 58460416c3 Improve WarpListener
SteamWarCI Build successful
2025-11-07 14:49:10 +01:00
YoyoNow 40ac7b2139 Improve NoClipCommand
SteamWarCI Build successful
Improve SelectBauGuiItem
2025-11-07 14:43:52 +01:00
Chaoscaot 63a5fcff97 Add Kotlin plugin and configure build scripts for Kotlin compatibility, integrate exposed library dependencies, and enhance JVM settings.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 14:40:10 +01:00
YoyoNow b69adcd362 Improve MaterialCommand
SteamWarCI Build successful
2025-11-07 14:34:30 +01:00
YoyoNow ceb8d2c6d4 Improve LaufbauUtils
SteamWarCI Build successful
2025-11-07 14:21:05 +01:00
Chaoscaot 39b3cdb897 Introduce GDPRQuery command for GDPR data generation, refactor SQL statements, and improve null safety across modules.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-07 12:42:15 +01:00
YoyoNow 26b4d8578a Improve ScriptRunner
SteamWarCI Build successful
2025-11-07 09:43:11 +01:00
YoyoNow 51411ceabe Improve ScriptRunner
SteamWarCI Build successful
2025-11-07 09:34:28 +01:00
YoyoNow 1ccc2c4b55 Improve Loader
SteamWarCI Build successful
Improve ObserverTracer
2025-11-07 09:25:40 +01:00
YoyoNow 941a1916b7 Improve Detonator
SteamWarCI Build successful
2025-11-07 09:12:17 +01:00
YoyoNow 3ccfe92afb Remove DC prefix for discord send messages to cleanup the chat
SteamWarCI Build successful
2025-11-07 08:46:26 +01:00
YoyoNow c17b76851d Improve chat from discord
SteamWarCI Build successful
2025-11-07 08:44:07 +01:00
YoyoNow f0e18bfc72 Improve CouncilChannel and StaticMessageChannel
SteamWarCI Build successful
2025-11-07 08:39:42 +01:00
YoyoNow 160f982955 Improve ChatListener for STC Chat
SteamWarCI Build successful
Add debug output for DiscordChannel
Fix CouncilChannel
2025-11-07 08:34:19 +01:00
YoyoNow 6b8f791497 Add SWPlayer for per player storage and without Memory Leaks
SteamWarCI Build successful
2025-11-06 21:38:24 +01:00
Chaoscaot 6ac0143459 Remove outdated SQL-related Java classes (GDPRQuery, Field, SelectStatement, SqlTypeMapper, Statement) and update references across modules.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-06 11:30:01 +01:00
Chaoscaot 98ca9e852c Merge pull request 'Add version dependant impl of tps warp to fight system' (#187) from FightSystem/Add-version-dependent-impl-of-tps-warp into main
SteamWarCI Build successful
Reviewed-on: #187
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-11-06 09:50:24 +01:00
D4rkr34lm 17910ec8a4 Add version dependant impl
SteamWarCI Build successful
2025-11-06 02:07:20 +01:00
Chaoscaot 56bc75763b Migrate Token class to Kotlin, remove outdated Java implementation, and refactor references across modules. Update timestamp fields to use CurrentTimestamp where applicable.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-05 21:44:52 +01:00
Chaoscaot 8272c73b48 Migrate SQL-related classes (Referee, SchemElo, Script, Session, SWException, TeamTeilnahme) to Kotlin and remove outdated Java implementations. Update references across modules.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-05 17:47:30 +01:00
YoyoNow 6cb2c56e47 Merge pull request 'Remove some strain on the Database' (#185) from BauSystem/RemoveDatabaseStrain into main
SteamWarCI Build successful
Reviewed-on: #185
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-11-05 17:20:35 +01:00
YoyoNow a3273f6814 Fix some stuff related to CRIU
SteamWarCI Build successful
2025-11-05 17:15:20 +01:00
YoyoNow 2534451e26 Fix caching problems
SteamWarCI Build successful
2025-11-05 17:13:54 +01:00
YoyoNow 0f0c8b763e Remove some strain on the Database
SteamWarCI Build successful
2025-11-05 17:09:53 +01:00
Chaoscaot 9acfb32ae0 Refactor SQL classes: update GameModeConfig functions, improve null safety in SchematicNode and SchematicType, and adjust NodeMemberTable structure.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-05 17:04:01 +01:00
Chaoscaot b2a4b05545 Merge branch 'main' into exposed
# Conflicts:
#	CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java
#	CommonCore/SQL/src/de/steamwar/sql/Punishment.java
2025-11-05 16:18:30 +01:00
PsiRobot acf9325179 Add Help messages and small refactor
SteamWarCI Build successful
2025-11-04 21:02:57 +00:00
Chaoscaot 89e2df0eb2 Migrate Punishment and PollAnswer classes to Kotlin and remove outdated Java implementations. Update references across modules.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-04 21:17:53 +01:00
PsiRobot ca3a7a82be Add /tb default subcommand
SteamWarCI Build successful
2025-11-04 15:52:41 +00:00
YoyoNow 73b3d21749 Remove unused stuff
SteamWarCI Build successful
2025-11-04 16:38:16 +01:00
PsiRobot 0e5a03e139 Added tls toggle 2025-11-04 15:18:29 +00:00
YoyoNow e97fb674a2 Fix FlatteningWrapper21
SteamWarCI Build successful
2025-11-04 16:15:36 +01:00
Chaoscaot 73da9179bf Migrate SQL-related classes (IgnoreSystem, Mod, NodeDownload, NodeMember) to Kotlin and remove old Java implementations. Update references across modules.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-02 19:28:14 +01:00
Chaoscaot 0fbbcdacea Migrate Fight, FightPlayer, and SchematicType classes to Kotlin and remove old Java implementations. Update references across modules.
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-11-01 13:52:26 +01:00
Chaoscaot 4e6933f2fd Remove Event-related SQL classes and update relevant references across modules
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-30 23:14:25 +01:00
YoyoNow 62c41cdda8 Improve softreload
SteamWarCI Build successful
2025-10-30 16:29:57 +01:00
YoyoNow 6d8c765483 Hotfix dual checking of Schematics
SteamWarCI Build successful
2025-10-30 15:23:40 +01:00
YoyoNow f216ed0f0b Hotfix CheckCommand
SteamWarCI Build successful
2025-10-30 15:18:09 +01:00
Chaoscaot eea1073892 Migrate Event class to Kotlin and update references across modules
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-29 23:17:17 +01:00
Chaoscaot 702aa1cfa6 Refactor CheckedSchematic and migrate to Kotlin
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-29 17:42:29 +01:00
Chaoscaot 5243cf850e Hotfix: 1.21 Autoprüfer
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 23:46:42 +01:00
Chaoscaot c0163d813e Add WindchargeStopper to handle wind charge entity removal based on fight boundaries
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 23:00:53 +01:00
Chaoscaot f53a31348f Hotfix: Kotlin ist schwer, ne Yoyo?
SteamWarCI Build successful
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 22:27:06 +01:00
Chaoscaot 6ea73f4890 Refactor NodeData
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 22:25:31 +01:00
Chaoscaot 14e82f36a5 Rename .java to .kt
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 22:25:31 +01:00
Chaoscaot a8eaf3daa7 Fixes
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 21:31:57 +01:00
Chaoscaot b51ea484e4 Refactor UserConfig
SteamWarCI Build failed
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 20:38:02 +01:00
Chaoscaot 8bef19ed8b Rename .java to .kt
Signed-off-by: Chaoscaot <max@maxsp.de>
2025-10-28 20:38:02 +01:00
YoyoNow e5edf918cc Merge pull request 'VelocityCore/AddCheckerForEventSchematics' (#181) from VelocityCore/AddCheckerForEventSchematics into main
SteamWarCI Build successful
Reviewed-on: #181
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-10-28 19:54:53 +01:00
YoyoNow 58e885ef8f Merge pull request 'Improve PunishmentCommand Permissions' (#180) from VelocityCore/ImprovePunishmentCommand into main
SteamWarCI Build successful
Reviewed-on: #180
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-10-28 19:54:45 +01:00
Chaoscaot 1aff7b30a6 Refactor SchematicNode
SteamWarCI Build failed
2025-10-28 19:03:30 +01:00
Chaoscaot c8ac984ad3 Rename .java to .kt 2025-10-28 19:03:30 +01:00
YoyoNow 022276e05a Improve SWCommand message visibility
SteamWarCI Build successful
2025-10-28 18:30:49 +01:00
YoyoNow 0c371fb403 Fix ModifyPart.changeType
SteamWarCI Build successful
2025-10-28 18:20:39 +01:00
YoyoNow 2654735bba Hotfix SchematicSystem.getGameModeConfig
SteamWarCI Build successful
2025-10-28 17:58:01 +01:00
YoyoNow 33bb1394aa Add GameModeConfig.Checkers
SteamWarCI Build successful
2025-10-28 17:37:05 +01:00
YoyoNow 52602045a9 Add GameModeConfig.Checkers
SteamWarCI Build successful
2025-10-28 17:36:16 +01:00
YoyoNow 4c730bcc48 Improve PunishmentCommand Permissions
SteamWarCI Build successful
2025-10-28 17:07:50 +01:00
YoyoNow 2410ea3979 Fix PunishmentCommand ban localhost for /ban
SteamWarCI Build successful
2025-10-28 17:03:48 +01:00
YoyoNow e211051294 Hotfix GameModeConfig
SteamWarCI Build successful
2025-10-27 22:04:17 +01:00
Chaoscaot a462231bab Starting...
SteamWarCI Build failed
2025-10-27 18:34:31 +01:00
Chaoscaot e6bbb76a0b Rename .java to .kt 2025-10-27 18:34:30 +01:00
Chaoscaot 89519e05bb Trigger CI
SteamWarCI Build successful
2025-10-26 20:04:49 +01:00
Chaoscaot 129f339ce3 Update Gradle wrapper to version 8.14
SteamWarCI Build failed
2025-10-26 20:01:12 +01:00
YoyoNow 90563b066d Fix Prefix color of Blue team
SteamWarCI Build successful
2025-10-26 18:28:27 +01:00
YoyoNow 986536428d Hotfix static initialisation of GameModeConfig
SteamWarCI Build successful
2025-10-26 18:17:40 +01:00
YoyoNow d7fb7c2a61 Hotfix static initialisation of GameModeConfig
SteamWarCI Build successful
2025-10-26 18:14:52 +01:00
YoyoNow b3f6312288 Hotfix static initialisation of GameModeConfig
SteamWarCI Build successful
2025-10-26 18:07:25 +01:00
YoyoNow f99f9b1564 Trigger rebuild
SteamWarCI Build successful
2025-10-26 17:53:37 +01:00
YoyoNow d860e2b865 Merge pull request 'Add Unified GameModeConfig' (#176) from UnifiedGameModeConfig into main
SteamWarCI Build successful
Reviewed-on: #176
Reviewed-by: D4rkr34lm <dark@steamwar.de>
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-10-26 17:47:57 +01:00
YoyoNow 63069b7caa Remove log in SchematicType
SteamWarCI Build successful
2025-10-26 17:36:48 +01:00
YoyoNow 11eb506f05 Use log of SchematicType
SteamWarCI Build successful
2025-10-26 17:35:19 +01:00
YoyoNow 7a232d5d51 Add ignore for SteamWar team
SteamWarCI Build successful
2025-10-26 16:41:21 +01:00
YoyoNow 4ff9efef33 Merge pull request 'bausystem/TLS' (#178) from bausystem/TLS into main
SteamWarCI Build successful
Reviewed-on: #178
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-10-26 15:30:59 +01:00
PsiRobot 57c8e3319a Remove dead code
SteamWarCI Build successful
2025-10-26 14:29:48 +00:00
PsiRobot ef75c35809 Remove unnecessary translation
SteamWarCI Build successful
2025-10-26 14:24:29 +00:00
PsiRobot 442ef71a17 Fix PR Comments
SteamWarCI Build successful
2025-10-26 14:22:20 +00:00
PsiRobot 3b87a18a5f Modified Format of the TLS Message
SteamWarCI Build successful
2025-10-26 14:06:48 +00:00
PsiRobot b3b7b5e601 Add TLS Feature 2025-10-26 14:06:48 +00:00
YoyoNow dd711be30b Add cache for GameModeConfig
SteamWarCI Build successful
2025-10-26 13:40:17 +01:00
YoyoNow 5ab04d0518 Add cache for GameModeConfig
SteamWarCI Build successful
2025-10-26 13:34:25 +01:00
YoyoNow 79ebdcea85 Make SchematicType static init type safe
SteamWarCI Build successful
2025-10-26 13:14:11 +01:00
YoyoNow dfbeab7b90 Add JavaDoc to GameModeConfig
SteamWarCI Build successful
2025-10-26 12:55:17 +01:00
YoyoNow c6dbece550 Improve GameModeConfig
SteamWarCI Build successful
2025-10-26 12:34:16 +01:00
YoyoNow 35117fdd30 Fix AuthManager.connectAuth
SteamWarCI Build successful
2025-10-26 11:39:00 +01:00
YoyoNow b4791ddf42 Fix VelocityCore
SteamWarCI Build successful
2025-10-26 11:34:43 +01:00
YoyoNow 3e918d031d Fix compilation
SteamWarCI Build successful
2025-10-26 09:42:55 +01:00
YoyoNow 184bd12cb1 Improve SQLWrapperImpl
SteamWarCI Build failed
2025-10-26 09:39:17 +01:00
YoyoNow 167a6b6dc4 Unify SchematicType loading
SteamWarCI Build failed
2025-10-26 09:36:44 +01:00
YoyoNow ef81626e02 Remove CheckSchemTypeManager
SteamWarCI Build successful
2025-10-26 09:28:24 +01:00
YoyoNow d216aac2c4 Improve YMLWrapper
SteamWarCI Build successful
2025-10-26 09:22:48 +01:00
YoyoNow aec03e41a1 Improve YMLWrapper
SteamWarCI Build successful
2025-10-26 09:14:34 +01:00
YoyoNow 4405d9c25d Improve YMLWrapper
SteamWarCI Build successful
2025-10-25 22:08:58 +02:00
YoyoNow e6dea72024 Improve YMLWrapper
SteamWarCI Build successful
2025-10-25 22:03:32 +02:00
YoyoNow 87a4836fa1 Add Unified GameModeConfig
SteamWarCI Build successful
2025-10-25 21:45:44 +02:00
YoyoNow 0a6977e433 Fix Teamserver.properties
SteamWarCI Build successful
2025-10-25 12:16:53 +02:00
YoyoNow c560f669ca Hotfix VersionAnnouncer
SteamWarCI Build successful
2025-10-25 12:07:23 +02:00
YoyoNow 20283e33e0 Add Disconnect for norisk client users
SteamWarCI Build successful
2025-10-25 12:04:28 +02:00
YoyoNow 69bc9142f3 Add emi to channels
SteamWarCI Build successful
2025-10-25 09:04:25 +02:00
YoyoNow aad287d11a Flatten package for linkage
SteamWarCI Build successful
2025-10-24 20:57:37 +02:00
YoyoNow 4cf963e22a Improve steamwar.devserver.gradle
SteamWarCI Build successful
2025-10-24 18:32:44 +02:00
YoyoNow 139f73402a Fix AbstractLinker not accessing private fields
SteamWarCI Build successful
2025-10-24 18:22:56 +02:00
YoyoNow 55a682d782 Add hypixel mods to drop list
SteamWarCI Build successful
2025-10-24 09:03:51 +02:00
YoyoNow 7e012ade9e Add 'xaeroworldmap:main' to disallow list
SteamWarCI Build successful
2025-10-24 08:57:57 +02:00
YoyoNow 55080d0011 Add some of the axiom plugin channels
SteamWarCI Build successful
2025-10-24 08:51:50 +02:00
YoyoNow adbd8f7dd4 Fix FightScoreboard
SteamWarCI Build successful
2025-10-23 20:41:03 +02:00
YoyoNow a03dda9522 Merge pull request 'Update copyright notices' (#171) from UpdateCopyrightNoticeInFiles into main
SteamWarCI Build successful
Reviewed-on: #171
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-10-23 17:59:29 +02:00
YoyoNow a03a3f45e8 Update copyright notices
SteamWarCI Build successful
2025-10-23 17:56:43 +02:00
YoyoNow d02fe1b0c7 Merge pull request 'Add Linkage to CommonCore and implement SpigotLinker used in BauSystem' (#151) from ExtraceLinkageToCommonCore into main
SteamWarCI Build successful
Reviewed-on: #151
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-10-23 17:51:03 +02:00
YoyoNow 9e029ea0f1 Merge pull request 'Update .gitignore and configure IntelliJ IDEA copyright settings' (#170) from add-copyright-to-repo into main
SteamWarCI Build successful
Reviewed-on: #170
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-10-23 17:41:42 +02:00
Chaoscaot 010f36dc86 Update .gitignore and configure IntelliJ IDEA copyright settings
SteamWarCI Build successful
2025-10-23 17:38:54 +02:00
YoyoNow b55c3d332e Fix build problems
SteamWarCI Build successful
2025-10-23 17:27:10 +02:00
YoyoNow 9dabcfc918 Implement Linkage for TowerRun
SteamWarCI Build failed
2025-10-23 17:20:07 +02:00
YoyoNow d75c82dca5 Implement Linkage for Teamserver 2025-10-23 17:20:07 +02:00
YoyoNow 383604ec9f Implement Linkage for SpigotCore 2025-10-23 17:20:07 +02:00
YoyoNow c7284dc7ab Implement Linkage for SchematicSystem 2025-10-23 17:20:07 +02:00
YoyoNow 91a5da9cd2 Implement Linkage for MissileWars 2025-10-23 17:20:07 +02:00
YoyoNow 33b606060a Implement Linkage for LobbySystem 2025-10-23 17:20:07 +02:00
YoyoNow 22d1e15ae0 Implement Linkage for FightSystem 2025-10-23 17:20:07 +02:00
YoyoNow c394478632 Fix VelocityCore 2025-10-23 17:20:07 +02:00
YoyoNow d850894a00 Update VelocityCore to use Linkage 2025-10-23 17:20:07 +02:00
YoyoNow ca589bd07c Add Linkage to CommonCore and implement SpigotLinker used in BauSystem 2025-10-23 17:20:06 +02:00
YoyoNow 04d796bbfc Add millo_cracy for TestblockCommand
SteamWarCI Build successful
2025-10-23 17:17:49 +02:00
YoyoNow 3676da7679 Add zKrote for TestblockCommand 2025-10-23 17:12:37 +02:00
Chaoscaot eb63381b83 Refactor leaderboard management: replace UserConfig-based implementation with new Leaderboard SQL class, update related classes to use LeaderboardManager, and fix query/logic for best time retrieval.
SteamWarCI Build successful
2025-10-20 16:39:35 +02:00
YoyoNow ed672ec07a Add ExpectedCow4019 for TestblockCommand
SteamWarCI Build successful
2025-10-18 13:36:55 +02:00
YoyoNow 67960bfc2a Add Baumwolle_777 for TestblockCommand
SteamWarCI Build successful
2025-10-18 13:36:15 +02:00
YoyoNow c831d994be Merge pull request 'Add enable/disable/clear functionality for Piston Calculator' (#160) from BauSystem/piston-calculator-enable into main
SteamWarCI Build successful
Reviewed-on: #160
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-10-18 07:50:42 +02:00
YoyoNow 08706d705d Update SimulatorCursor
SteamWarCI Build successful
2025-10-18 07:48:29 +02:00
YoyoNow 6ccb056065 Remove TestblockCommand permission check for schematic for now
SteamWarCI Build successful
2025-10-18 07:33:28 +02:00
YoyoNow 2b32cf38c7 Fix TestblockCommand permission check for schematic
SteamWarCI Build successful
2025-10-17 22:27:01 +02:00
YoyoNow bcdda35b44 Fix TestblockCommand permission check for schematic
SteamWarCI Build successful
2025-10-17 22:23:11 +02:00
YoyoNow d154fe90a9 Add Simon4ZX for TestblockCommand
SteamWarCI Build successful
2025-10-17 22:15:23 +02:00
YoyoNow a12c620744 Add Wolf36136 for TestblockCommand
SteamWarCI Build successful
2025-10-17 22:14:10 +02:00
YoyoNow f9c320cb33 Add RegionData
SteamWarCI Build successful
Improve TestblockCommand with remembering the TB
2025-10-17 21:36:50 +02:00
Chaoscaot 4e050106f5 Fix query in allParentsOfNode to use Config field instead of ReplaceColor.
SteamWarCI Build successful
2025-10-14 19:14:31 +02:00
Chaoscaot 089503e0a0 Synchronize access to skins map in PlayerSkinHandler to ensure thread safety and prevent race conditions.
SteamWarCI Build successful
2025-10-14 17:45:58 +02:00
Chaoscaot 7179daedae Add axiom:set_no_physical_trigger to plugin message channels for expanded functionality
SteamWarCI Build successful
2025-10-12 15:30:46 +02:00
Chaoscaot 3bfac2d1cf Hotfix: Portal Permissions
SteamWarCI Build successful
2025-10-07 22:43:54 +02:00
Chaoscaot ac24bc4f5b Hotfix: Portal Permissions
SteamWarCI Build successful
2025-10-07 22:39:38 +02:00
Chaoscaot e69d203b99 Add clear command to Piston Calculator to remove player-related data
SteamWarCI Build successful
2025-10-05 11:45:11 +02:00
Chaoscaot e1fa8aaefa Add enable/disable functionality for Piston Calculator and update help messages
SteamWarCI Build successful
2025-10-05 11:42:44 +02:00
YoyoNow c38777158a Improving SelectAdjacent
SteamWarCI Build successful
2025-10-03 11:55:37 +02:00
YoyoNow 2bc295c620 Fix RegionLib.type
SteamWarCI Build successful
2025-10-03 09:25:21 +02:00
YoyoNow 88cc06560e Fix BauServer Performance
SteamWarCI Build successful
2025-10-03 09:13:32 +02:00
YoyoNow 566a7deee3 Hotfix BackupCommand.backupGui
SteamWarCI Build successful
2025-10-02 21:14:26 +02:00
YoyoNow ea07766460 Fix RegionCommand.genericRestoreCommand
SteamWarCI Build successful
2025-10-02 20:55:06 +02:00
YoyoNow 9c5b7712cb Improve PistonCalculator
SteamWarCI Build successful
2025-10-02 20:41:21 +02:00
YoyoNow 84b14b8c3d Hotfix /region testblockpoint
SteamWarCI Build successful
2025-10-02 20:39:30 +02:00
YoyoNow abeb269368 Fix BackupCommand
SteamWarCI Build successful
2025-09-29 17:46:20 +02:00
YoyoNow fc002abf37 Fix BackupScheduler
SteamWarCI Build successful
2025-09-29 17:36:10 +02:00
YoyoNow 09f9a8ce32 Fix GameModeConfig
SteamWarCI Build successful
2025-09-29 17:33:02 +02:00
YoyoNow d0d353b24d Fix TNTPhase
SteamWarCI Build successful
2025-09-29 16:23:54 +02:00
YoyoNow 52828c8b4e Hotfix TraceRepository
SteamWarCI Build successful
2025-09-29 15:52:13 +02:00
YoyoNow 01efb9fce5 Hotfix TraceRepository
SteamWarCI Build successful
2025-09-29 15:48:25 +02:00
YoyoNow 8b636a11ee Force rebuild
SteamWarCI Build successful
2025-09-29 15:29:31 +02:00
YoyoNow 8ca1cf9b5c Force rebuild
SteamWarCI Build failed
2025-09-29 15:26:51 +02:00
YoyoNow ad4304d7b0 Fix 'BAU_INFO_ITEM_LORE_CHANGED'
SteamWarCI Build successful
2025-09-29 12:44:12 +02:00
YoyoNow e5e931d331 Fix 'BAU_INFO_ITEM_LORE_TESTBLOCK'
SteamWarCI Build successful
2025-09-29 12:41:39 +02:00
YoyoNow ed87197681 Trigger rebuild
SteamWarCI Build successful
2025-09-29 11:28:02 +02:00
YoyoNow e6e475e4bb Trigger rebuild
SteamWarCI Build successful
2025-09-29 11:25:33 +02:00
YoyoNow daa69dc22b Trigger rebuild
SteamWarCI Build successful
2025-09-29 11:23:20 +02:00
YoyoNow d011ffa536 Trigger rebuild
SteamWarCI Build successful
2025-09-29 11:20:32 +02:00
YoyoNow 4798b16015 Hotfix SWItem.setCustomModelData
SteamWarCI Build successful
2025-09-29 11:10:11 +02:00
YoyoNow f4c9ce512e Improve WorldEditRendererWrapper20
SteamWarCI Build successful
2025-09-29 11:00:50 +02:00
YoyoNow bfe9c7559e Improve RayVisualizerCommand
SteamWarCI Build successful
2025-09-29 10:48:24 +02:00
YoyoNow 394e043db3 Hotfix FixedRegion
SteamWarCI Build successful
2025-09-29 09:34:53 +02:00
YoyoNow d2a6ccc46b Merge pull request 'Modular BauSystem Regions' (#26) from BauSystem/RegionSystem into main
SteamWarCI Build successful
Reviewed-on: #26
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-09-29 09:25:20 +02:00
YoyoNow ccd992f1db Improve SimulatorCursor selection changing
SteamWarCI Build successful
2025-09-29 09:23:53 +02:00
YoyoNow fa0a9a5c23 Fix PistonCalculator for GLAZED_TERRACOTTA Variations
SteamWarCI Build successful
Closes: #135
2025-09-29 09:08:45 +02:00
YoyoNow fa6b75e2aa Fix RPlayer (hopefully)
SteamWarCI Build successful
2025-09-29 08:35:03 +02:00
YoyoNow f2073db1e8 Improve PlayerSkinHandler
SteamWarCI Build successful
2025-09-29 08:33:08 +02:00
YoyoNow 5fe62d67d9 Improve StreamingCommand
SteamWarCI Build successful
2025-09-29 08:17:49 +02:00
YoyoNow 524ce0c579 Update VacationCommand add 'Abwesenheitsnotiz'
SteamWarCI Build successful
Closes: #144
2025-09-29 08:06:15 +02:00
YoyoNow 3685d662fb Hotfix CookieEvents
SteamWarCI Build successful
2025-09-28 16:47:16 +02:00
YoyoNow 19344b9f48 Hotfix EventFight and EventModeListener
SteamWarCI Build successful
2025-09-28 16:32:45 +02:00
YoyoNow 3d3c70845e Hotfix EventModeListener
SteamWarCI Build successful
2025-09-28 16:19:37 +02:00
YoyoNow 797f3a3158 Hotfix EventModeListener
SteamWarCI Build successful
2025-09-28 15:48:32 +02:00
YoyoNow 4b1680967a Fixup VelocityCore
SteamWarCI Build successful
2025-09-28 14:02:38 +02:00
YoyoNow 361c86c99e Merge pull request 'Add update of all coming fights if a fight is stopped' (#145) from VelocityCore/AutoReloadEventFightsOnFinish into main
SteamWarCI Build successful
Reviewed-on: #145
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-09-28 14:00:00 +02:00
YoyoNow 613cb76edb Merge pull request 'Add StreamingCommand for streaming mode' (#146) from VelocityCore/StreamingMode into main
SteamWarCI Build successful
Reviewed-on: #146
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-09-28 13:57:43 +02:00
YoyoNow 1231fa5c47 Add StreamingCommand for streaming mode
SteamWarCI Build successful
2025-09-28 13:09:07 +02:00
YoyoNow 06a7d9c7fc Add update of all coming fights if a fight is stopped
SteamWarCI Build successful
2025-09-28 10:42:05 +02:00
Chaoscaot 21d628b338 Refactor EventRelation: Fix query logic for byEvent, adjust insert fields, and update setFrom parameter handling. Update ResponseRelation to align with updated EventRelation structure.
SteamWarCI Build successful
2025-09-28 10:28:24 +02:00
YoyoNow 56d34f0311 Fix EventChannel
SteamWarCI Build successful
2025-09-27 19:50:30 +02:00
YoyoNow 4322547106 Hotfix EventRelation
SteamWarCI Build successful
2025-09-27 17:07:22 +02:00
YoyoNow 43a582edd8 Hotfix EventRelation
SteamWarCI Build successful
2025-09-27 16:42:26 +02:00
YoyoNow d4eabfe9b2 Make optional parameter on 'delete' not optional
SteamWarCI Build successful
2025-09-16 08:54:29 +02:00
YoyoNow bfbb017c8f Remove lockreplay ModifyPart
SteamWarCI Build successful
2025-09-05 07:48:36 +02:00
Chaoscaot 5a7349b5a6 Refactor NMSWrapper21 game mode handling: remove unused import and adjust setInternalGameMode to use direct field modification.
SteamWarCI Build successful
2025-08-09 11:29:58 +02:00
Chaoscaot ef91313c29 Adjust gameStateChangeReason field offset for updated packet structure in Minecraft 1.21.
SteamWarCI Build successful
2025-08-09 11:24:52 +02:00
Chaoscaot ba2297ca9a Add new plugin message channels for extended compatibility and feature integration
SteamWarCI Build successful
2025-08-09 11:18:15 +02:00
Chaoscaot ba843633d7 Downgrade api-version in plugin.yml to 1.13 for broader compatibility.
SteamWarCI Build successful
2025-08-09 00:12:52 +02:00
Chaoscaot 3b43ad3587 Downgrade api-version in plugin.yml to 1.13 for broader compatibility. 2025-08-09 00:11:44 +02:00
Chaoscaot 26a45fabb1 Merge pull request '1.21.6 Fightsystem' (#134) from 1.21.6/fightsystem into main
SteamWarCI Build successful
Reviewed-on: #134
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-08-08 23:48:37 +02:00
YoyoNow f8bb69e829 Merge branch 'main' into 1.21.6/fightsystem
SteamWarCI Build successful
2025-08-05 21:13:24 +02:00
Chaoscaot b74b73b871 BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/techhider/TechHiderCommand.java aktualisiert
SteamWarCI Build successful
2025-08-05 21:12:35 +02:00
YoyoNow b695a7e089 Update stuff from peer review
SteamWarCI Build successful
2025-08-05 20:59:43 +02:00
Chaoscaot 464d7c85bd Update version handling for Minecraft 1.21.5: Adjust TypeUtils and ServerStarter to support PAPER_21.
SteamWarCI Build successful
2025-08-03 22:10:15 +02:00
Chaoscaot 285882be70 Add chunk reset logic for Minecraft 1.21 in CraftbukkitWrapper21 to support advanced chunk management.
SteamWarCI Build successful
2025-08-03 16:42:05 +02:00
Chaoscaot 50780ad9bd Add chunk reset logic for Minecraft 1.21 in CraftbukkitWrapper21 to support advanced chunk management.
SteamWarCI Build successful
2025-08-03 16:39:25 +02:00
YoyoNow bbd2bcae35 Fix BackupCommand
SteamWarCI Build successful
Fix FixedRegion
2025-08-03 13:06:07 +02:00
YoyoNow a3801790a4 Remove old stuff
SteamWarCI Build successful
2025-08-02 14:32:24 +02:00
YoyoNow b14c39683a Implement FixedRegion.regionBackups
SteamWarCI Build successful
2025-08-02 14:31:46 +02:00
YoyoNow 0a3ae7117d Fix FixedGlobalRegion
SteamWarCI Build successful
2025-08-02 13:55:22 +02:00
YoyoNow 830ca93105 Implement Area for FixedRegion
SteamWarCI Build failed
2025-08-02 13:53:52 +02:00
YoyoNow 06333d634e Fix RegionConfig
SteamWarCI Build successful
Implement FixedRegion
Add RegionHistory.Impl
2025-08-02 13:25:22 +02:00
YoyoNow ecb9571624 Add toString() methods 2025-08-02 13:25:22 +02:00
YoyoNow 9e0e339277 Finish FixedFlagStorage 2025-08-02 13:25:22 +02:00
YoyoNow 06de120fe1 Add RegionSystem.getWorldSpawn
Fix Warp
Update FixedRegionSystem
2025-08-02 13:25:22 +02:00
YoyoNow 30db0bb718 Fix Warp.enable 2025-08-02 13:25:22 +02:00
YoyoNow 0a4dccd95a Fix WarpListener 2025-08-02 13:25:22 +02:00
YoyoNow 5550aa4930 Make FixedGlobalFlagStorage load the options from file 2025-08-02 13:25:22 +02:00
YoyoNow 811bd00ed2 Fix Flag.Value to have enum methods for save/load 2025-08-02 13:25:22 +02:00
YoyoNow bc371df796 Rework FixedFlagStorage and FixedGlobalFlagStorage to not be sensitive on adding a new Flag 2025-08-02 13:25:22 +02:00
YoyoNow 144975d977 Remove TNTMode.ONLY_BUILD 2025-08-02 13:25:22 +02:00
YoyoNow 0763e4b189 Move some stuff around 2025-08-02 13:25:22 +02:00
YoyoNow 38b061c12c Add JavaDoc to RegionSystem 2025-08-02 13:25:22 +02:00
YoyoNow 91a41ccd3f Add Prototype 2025-08-02 13:25:22 +02:00
YoyoNow 576ce891f6 Optimize WorldData 2025-08-02 13:25:22 +02:00
YoyoNow 7aff9f08d0 Remove old simulator loading 2025-08-02 13:25:22 +02:00
YoyoNow 13ef131401 Remove RegionSkins 2025-08-02 13:25:22 +02:00
YoyoNow 56680119e2 Fix ColorCommand 2025-08-02 13:25:22 +02:00
YoyoNow 6a5507321e Add FixedGlobalFlagStorage 2025-08-02 13:25:22 +02:00
YoyoNow 01d9532aa6 Pot impl a FixedGlobalRegion 2025-08-02 13:25:22 +02:00
YoyoNow c49a212c05 Move regionold to RegionFixed module 2025-08-02 13:25:22 +02:00
YoyoNow e6196251a6 Remove SkinCommand
Fix TickManager15
2025-08-02 13:25:22 +02:00
YoyoNow 698f917828 Add RegionSkins 2025-08-02 13:25:22 +02:00
YoyoNow ad87ad7495 Add RegionConfig 2025-08-02 13:25:22 +02:00
YoyoNow 6a78499193 Fix some more errors 2025-08-02 13:25:22 +02:00
YoyoNow d55556cb47 Fix some more errors 2025-08-02 13:25:22 +02:00
YoyoNow 4f24adf9fd Fix some more errors 2025-08-02 13:25:22 +02:00
YoyoNow 94e3eed6df Fix RegionScoreboardElement 2025-08-02 13:25:22 +02:00
YoyoNow 8a43809322 Fix RegionScoreboardElement 2025-08-02 13:25:22 +02:00
YoyoNow 8fb10c9266 Fix DesignEndStone and DesignEndStoneCommand
Fix Region.Area.reset
2025-08-02 13:25:22 +02:00
YoyoNow fb518efe63 Reduce to 24 compiler errors 2025-08-02 13:25:22 +02:00
YoyoNow 598daadd33 Reduce to 34 compiler errors 2025-08-02 13:25:22 +02:00
YoyoNow 0287881e33 Fix some more issues 2025-08-02 13:25:22 +02:00
YoyoNow a6b703b821 Fix some more issues 2025-08-02 13:25:22 +02:00
YoyoNow 43cca3376e Fix some more issues 2025-08-02 13:25:22 +02:00
YoyoNow 7e61db5e58 Fix some more issues 2025-08-02 13:25:22 +02:00
YoyoNow c9b4e6ab45 Improve Region some more 2025-08-02 13:25:22 +02:00
YoyoNow 314aaf7a76 Update Region 2025-08-02 13:25:22 +02:00
YoyoNow e98f53bbab Update Region 2025-08-02 13:25:22 +02:00
YoyoNow 7dc9da549c Fix some more stuff 2025-08-02 13:25:22 +02:00
YoyoNow 3bb84d0dcc Fixup BoundaryViewer to trigger rebuild 2025-08-02 13:25:22 +02:00
YoyoNow 3d0e5fc28d Fix many things 2025-08-02 13:25:22 +02:00
YoyoNow 5e5bfedb52 Fix some more build errors 2025-08-02 13:25:22 +02:00
YoyoNow ef19959eb2 Fix some more build errors 2025-08-02 13:25:22 +02:00
YoyoNow ae15e16dae Update BauMemberUpdate 2025-08-02 13:25:22 +02:00
YoyoNow 9a506a34f8 Fix things and optimize imports 2025-08-02 13:25:22 +02:00
YoyoNow 6822dc796f Update Region System of BauSystem 2025-08-02 13:25:22 +02:00
YoyoNow 8427ae36f2 Remove unused TestblockMode 2025-08-02 13:25:22 +02:00
YoyoNow 7f41559647 Fix build.gradle.kts as of 43618fc2 2025-08-02 13:25:22 +02:00
YoyoNow 4e70a675c2 Update Region.inBuildRegion and Region.inTestblockRegion 2025-08-02 13:25:22 +02:00
YoyoNow 96daa2c861 Update some part of Region 2025-08-02 13:25:21 +02:00
YoyoNow 45646b6ba3 Update SelectAdjacent
SteamWarCI Build successful
2025-08-02 13:23:03 +02:00
YoyoNow 8d1b15b019 Fix PistonCalculator
SteamWarCI Build successful
2025-08-02 13:14:05 +02:00
YoyoNow 2e91a5a582 Trigger rebuild
SteamWarCI Build successful
2025-08-02 11:42:39 +02:00
YoyoNow 018b9a971f Fix stuff in DiscordBot
SteamWarCI Build successful
2025-08-02 11:36:08 +02:00
YoyoNow 70d0f179cc Fix stuff in DiscordBot
SteamWarCI Build successful
2025-08-02 11:34:41 +02:00
YoyoNow 2166096ba5 Fix PistonCalculator
SteamWarCI Build successful
2025-08-01 21:17:58 +02:00
YoyoNow 3a13fc7bb9 Reduce MAX_BLOCKS of SelectAdjacent
SteamWarCI Build successful
2025-08-01 17:51:19 +02:00
YoyoNow 01f55c4309 Fix VacationCommand
SteamWarCI Build successful
2025-08-01 10:51:17 +02:00
YoyoNow d968187750 Fix VacationCommand
SteamWarCI Build successful
2025-08-01 10:49:28 +02:00
YoyoNow 9e629d09a8 Fix VacationCommand
SteamWarCI Build successful
2025-08-01 10:48:17 +02:00
YoyoNow d14022e69e Fix ChannelListener
SteamWarCI Build successful
2025-08-01 10:46:54 +02:00
YoyoNow 6623e9d808 Add VacationCommand
SteamWarCI Build successful
2025-08-01 10:43:37 +02:00
YoyoNow 9279d9cd8e Improve SelectAdjacent
SteamWarCI Build successful
2025-07-31 18:37:02 +02:00
YoyoNow b7963f2fe6 Fix PistonCalculator
SteamWarCI Build successful
2025-07-31 18:00:38 +02:00
YoyoNow 3f88ea1e57 Fix SelectAdjacent but make it a touch slower
SteamWarCI Build successful
2025-07-31 16:30:02 +02:00
YoyoNow 8076f31a19 Fix SelectAdjacent but make it a touch slower
SteamWarCI Build successful
2025-07-31 16:25:05 +02:00
YoyoNow 33e9b3409f Add SelectAdjacent for BauSystem and Builder
SteamWarCI Build successful
2025-07-31 16:21:08 +02:00
Chaoscaot e7803dcf82 Enhance compatibility and feature support for Minecraft 1.21: Add ProtocolWrapper21, update gamerule management, streamline entity tracking, and refine chunk hider logic.
SteamWarCI Build successful
2025-07-31 11:34:56 +02:00
Chaoscaot cf52b50333 Introduce support for Minecraft 1.21: Add ReflectionWrapper21, ChunkHider21, and enhance version compatibility across systems.
SteamWarCI Build successful
2025-07-31 10:43:40 +02:00
YoyoNow 297aa6151d Pot fix RPlayer
SteamWarCI Build successful
2025-07-31 09:44:28 +02:00
YoyoNow 14be3a8e3b Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 21:01:18 +02:00
YoyoNow 1c1e2e2efe Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 20:59:03 +02:00
YoyoNow e30eb35792 Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 20:57:38 +02:00
YoyoNow e94f273e21 Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 20:56:52 +02:00
YoyoNow c76648e630 Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 20:54:18 +02:00
YoyoNow a943dd6014 Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 20:51:17 +02:00
YoyoNow 0d7776ec6f Fix CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-30 20:47:27 +02:00
YoyoNow 7db1d80988 Add SpaceCraft to startable fight servers
SteamWarCI Build successful
2025-07-30 20:41:01 +02:00
YoyoNow 50bd18bae7 Fix DevCommand
SteamWarCI Build successful
2025-07-30 18:20:41 +02:00
YoyoNow 89a55996fc Fix steamwar.devserver.gradle
SteamWarCI Build successful
2025-07-30 16:45:08 +02:00
YoyoNow f494729b89 Update steamwar.devserver.gradle
SteamWarCI Build successful
2025-07-30 16:03:39 +02:00
YoyoNow bcabce8b23 Fix JVMCRIUException
SteamWarCI Build successful
2025-07-30 14:00:47 +02:00
YoyoNow 376da2028b Fix ColorCommand
SteamWarCI Build failed
2025-07-30 13:36:24 +02:00
YoyoNow b6cfaf8135 Fix BauSystem.properties NO_PERMISSION
SteamWarCI Build failed
2025-07-30 13:34:51 +02:00
YoyoNow 5daee0f589 Fix checkpointing of a dev server
SteamWarCI Build failed
2025-07-30 11:36:40 +02:00
YoyoNow 43663ea099 Fix CRIUSupport for local building
SteamWarCI Build failed
2025-07-30 11:27:09 +02:00
YoyoNow 9d1b0063b9 Hotfix RayVisualizerCommand
SteamWarCI Build successful
2025-07-29 17:55:38 +02:00
YoyoNow e706044f44 Add RayVisualizerCommand
SteamWarCI Build successful
Closes: #99
2025-07-29 17:46:12 +02:00
YoyoNow 332daec716 Enable Loader.setTicksBetweenShots before loader finished
SteamWarCI Build successful
Closes: #76
2025-07-29 15:37:56 +02:00
YoyoNow 2daca017c2 Add InventoryFillerCommand.gui
SteamWarCI Build successful
Closes: #27
Fix PistonCalculator movement
2025-07-29 14:52:03 +02:00
YoyoNow 7edd72ac27 Improve PistonCalculator last time
SteamWarCI Build successful
2025-07-29 12:32:25 +02:00
YoyoNow 1355b57a93 Improve Subserver.run for CRIU
SteamWarCI Build successful
2025-07-29 12:04:48 +02:00
YoyoNow e04f0d4ad1 Revert the PR merge
SteamWarCI Build successful
2025-07-29 12:03:33 +02:00
YoyoNow 79a6c93f8f Merge pull request 'Improve Subserver.run for checkpoint' (#116) from VelocityCore/ImproveCheckpointHandling into main
SteamWarCI Build successful
Reviewed-on: #116
2025-07-29 11:56:39 +02:00
YoyoNow e36bbfd2a7 Improve PistonCalculator
SteamWarCI Build successful
2025-07-29 11:18:04 +02:00
YoyoNow 65cb544b64 Merge pull request 'Implement anvil inventory handling through SWAnvilInv and related network packets' (#117) from VelocityCore/anvil-inv into main
SteamWarCI Build successful
Reviewed-on: #117
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-07-29 11:06:18 +02:00
Chaoscaot 8a22afab63 Handle NullPointerException in handleClick method of SWAnvilInv to prevent crashes
SteamWarCI Build successful
2025-07-29 11:05:46 +02:00
Chaoscaot caae9542f4 Fix CLOSE case in SWAnvilInv to properly remove player from openInv map
SteamWarCI Build successful
2025-07-29 11:03:00 +02:00
YoyoNow 4104c60f6b Hotfix PistonCalculator
SteamWarCI Build successful
2025-07-29 10:52:18 +02:00
YoyoNow 69260a9b73 Hotfix PistonCalculator
SteamWarCI Build successful
2025-07-29 10:15:08 +02:00
YoyoNow 4fb6505aef Hotfix PistonCalculator
SteamWarCI Build successful
2025-07-29 10:09:55 +02:00
YoyoNow bb2f7cf0c1 Hotfix PistonCalculator
SteamWarCI Build successful
2025-07-29 10:09:14 +02:00
YoyoNow 8516c8e536 Closes: #120
SteamWarCI Build successful
Fix Loader.single
2025-07-29 09:59:38 +02:00
YoyoNow 066f06a6e3 Closes: #121
SteamWarCI Build successful
Improve PistonCalculator
2025-07-29 09:53:17 +02:00
YoyoNow 78e176b55e Closes: #94
SteamWarCI Build successful
2025-07-28 22:08:39 +02:00
Chaoscaot 86a10b3e97 Remove unused imports and redundant method annotations in SavePart class
SteamWarCI Build successful
2025-07-26 20:59:45 +02:00
Chaoscaot d01efffb6a Add steamshrimp.de to known hostnames in Hostname class
SteamWarCI Build successful
2025-07-20 00:45:56 +02:00
Chaoscaot fd57ba43e9 Mark createdAt as primary key in NodeData class
SteamWarCI Build successful
2025-07-19 22:48:03 +02:00
Chaoscaot eac0390dd3 Implement anvil inventory handling through SWAnvilInv and related network packets
SteamWarCI Build successful
2025-07-19 22:34:36 +02:00
Chaoscaot 03005adcd8 Merge pull request 'Add enhance ReplayCommand' (#115) from add-fight-id into main
SteamWarCI Build successful
Reviewed-on: #115
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-07-19 22:06:36 +02:00
YoyoNow 933e2119ef Improve Subserver.run for checkpoint
SteamWarCI Build successful
2025-07-19 18:20:48 +02:00
YoyoNow 679d373a1e Fix colors final time, for 1.15 and earlier support
SteamWarCI Build successful
2025-07-19 18:11:10 +02:00
YoyoNow 828084a3d6 Update Guide color
SteamWarCI Build successful
2025-07-19 17:58:53 +02:00
YoyoNow 2b782585b1 Hotfix TeamCommand and WhoisCommand
SteamWarCI Build successful
2025-07-19 17:54:39 +02:00
YoyoNow b43965be91 Revert "Update PREFIX_GUIDE color to §a in UserPerm"
SteamWarCI Build successful
This reverts commit 30cdbe072e.
2025-07-19 17:45:39 +02:00
Chaoscaot d82f306094 Add getById method in Fight class and enhance ReplayCommand handling with admin replay checks
SteamWarCI Build successful
2025-07-19 17:12:44 +02:00
Chaoscaot 30cdbe072e Update PREFIX_GUIDE color to §a in UserPerm
SteamWarCI Build successful
2025-07-19 17:07:18 +02:00
Chaoscaot db7e1a5fc9 Add immersive portals channel to PluginMessage listener
SteamWarCI Build successful
2025-07-19 17:01:30 +02:00
Chaoscaot 3e5055c246 Refine checkpoint handling in Subserver and remove unnecessary debug logs in CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-16 09:43:24 +02:00
Chaoscaot 44c06314c6 Update checkpoint restoration message handling in Subserver
SteamWarCI Build successful
2025-07-16 09:39:38 +02:00
Chaoscaot e06742d6d2 SpigotCore/SpigotCore_Main/src/de/steamwar/core/CheckpointUtilsJ9.java aktualisiert
SteamWarCI Build successful
2025-07-16 09:34:38 +02:00
Chaoscaot 62e674ed42 SpigotCore/SpigotCore_Main/src/de/steamwar/core/CheckpointUtilsJ9.java aktualisiert
SteamWarCI Build successful
2025-07-14 19:40:33 +02:00
Chaoscaot 0464442b83 VelocityCore/Persistent/src/de/steamwar/persistent/Subserver.java aktualisiert
SteamWarCI Build successful
2025-07-14 19:38:46 +02:00
Chaoscaot c682333771 Add Criu Debug
SteamWarCI Build successful
2025-07-14 19:13:25 +02:00
Chaoscaot 58ab619144 Add Criu Debug
SteamWarCI Build successful
2025-07-14 19:08:35 +02:00
Chaoscaot 00de852575 Add Criu Debug
SteamWarCI Build successful
2025-07-14 19:07:48 +02:00
Chaoscaot 948cf5e8db Add Criu Debug
SteamWarCI Build successful
2025-07-14 18:52:08 +02:00
Chaoscaot 7aba8da5a0 Add revision handling to setSchematic method in FightTeam
SteamWarCI Build successful
2025-07-14 13:40:43 +02:00
Chaoscaot 5a77854752 Fix replaceColor usage and correct config flag handling
SteamWarCI Build successful
2025-07-14 11:20:26 +02:00
Chaoscaot cf1422f532 Fix NodeData query to correctly order by CreatedAt descending
SteamWarCI Build successful
2025-07-14 09:46:06 +02:00
Chaoscaot 6260e65b33 Merge pull request 'Add Schematic Revisions' (#93) from schematic-revisions into main
SteamWarCI Build successful
Reviewed-on: #93
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-07-14 09:13:16 +02:00
Chaoscaot 6db404c1e6 Merge pull request 'Add AuditLog' (#89) from AuditLog into main
SteamWarCI Build successful
Reviewed-on: #89
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-07-14 09:13:02 +02:00
Chaoscaot b086fcaa32 Refactor validator method in download command
SteamWarCI Build successful
2025-07-13 21:11:18 +02:00
YoyoNow f33b3521b8 Hotfix TNTPoint for 1.15 or earlier
SteamWarCI Build successful
2025-07-13 21:00:42 +02:00
YoyoNow dc72ec1b93 Hotfix REntityServer for 1.15 or earlier
SteamWarCI Build successful
2025-07-13 20:57:22 +02:00
YoyoNow 0e9c9bd4dc Hotfix DiscordChannel
SteamWarCI Build successful
2025-07-13 20:48:43 +02:00
YoyoNow 291b6b1804 Merge pull request 'Add Winconditions.TIMED_DAMAGE_TECH_KO and Winconditions.RANDOM_ROTATE' (#111) from FightSystem/RandomRotationAndTimedDamageTechKO into main
SteamWarCI Build successful
Reviewed-on: #111
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-07-13 18:40:52 +02:00
YoyoNow 104f0cf02d Fix final stuff
SteamWarCI Build successful
2025-07-13 18:39:53 +02:00
YoyoNow f7662cdcba Fix build
SteamWarCI Build successful
2025-07-13 18:15:24 +02:00
YoyoNow 167b36b10c Update RandomRotate
SteamWarCI Build failed
2025-07-13 18:10:53 +02:00
YoyoNow b9b541957b Fix older replays
SteamWarCI Build successful
2025-07-13 17:54:28 +02:00
YoyoNow e9d107f0ed Fix older replays
SteamWarCI Build successful
2025-07-13 17:54:06 +02:00
YoyoNow 1e264a63a2 Add Winconditions.TIMED_DAMAGE_TECH_KO and Winconditions.RANDOM_ROTATE
SteamWarCI Build successful
2025-07-13 16:48:35 +02:00
YoyoNow 868ba4073b Add Winconditions.TIMED_DAMAGE_TECH_KO and Winconditions.RANDOM_ROTATE
SteamWarCI Build successful
2025-07-13 16:46:11 +02:00
Chaoscaot 3410dd5a4b Merge pull request 'Improve perceived server start time' (#108) from VelocityCore/ImprovePerceivedServerStartTimeWithCRIU into main
SteamWarCI Build successful
Reviewed-on: #108
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-07-10 13:46:03 +02:00
YoyoNow b86a26a709 Fix Simulator.autoTrace
SteamWarCI Build successful
2025-07-10 13:44:06 +02:00
YoyoNow 71238a0167 Add Simulator.autoTestblock
SteamWarCI Build successful
2025-07-10 13:40:21 +02:00
YoyoNow 30ac947ebb Add Simulator.autoTestblock
SteamWarCI Build successful
2025-07-10 13:39:03 +02:00
YoyoNow a7d64b5887 Improve TickManager21
SteamWarCI Build successful
2025-07-10 13:21:17 +02:00
YoyoNow d7908c8255 Improve perceived server start time
SteamWarCI Build successful
2025-07-10 13:02:24 +02:00
YoyoNow 12f26b982e Rever CheckpointUtilsJ9
SteamWarCI Build successful
2025-07-10 10:52:14 +02:00
YoyoNow 2be4118399 Close server socket before world saving
SteamWarCI Build successful
2025-07-10 10:23:28 +02:00
YoyoNow 9d6981ee0c Trigger rebuild
SteamWarCI Build successful
2025-07-10 10:09:39 +02:00
YoyoNow 97a4d47aa7 Merge pull request 'Add support for TPS and tick rate management in 1.21+' (#105) from 1.21.1/tpslimit into main
SteamWarCI Build successful
Reviewed-on: #105
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-07-08 22:17:22 +02:00
YoyoNow d657f9871d Update and integrate legacy system
SteamWarCI Build successful
2025-07-08 22:16:52 +02:00
Chaoscaot a572b84016 Add Items
SteamWarCI Build successful
2025-07-08 21:11:27 +02:00
YoyoNow f1c6b4b453 Update UserPerm colors "final?"
SteamWarCI Build successful
2025-07-08 19:58:49 +02:00
Chaoscaot d0414c71f3 Fix v3Mode handling in WorldEditWrapper14
SteamWarCI Build successful
2025-07-08 12:07:03 +02:00
Chaoscaot 3530aec5e2 Add more Flowers and add Leather horse Armour
SteamWarCI Build successful
2025-07-08 10:45:40 +02:00
Chaoscaot cccd090357 Add support for TPS and tick rate management in 1.21+
SteamWarCI Build successful
2025-07-07 22:43:16 +02:00
Chaoscaot 3ae9a41b31 Hotfix: Entities on 1.21+
SteamWarCI Build successful
2025-07-06 21:58:05 +02:00
Chaoscaot b8b38cf777 Merge pull request 'Handle KickedFromServerEvent with redirect and empty component' (#103) from remove-kicked-message into main
SteamWarCI Build successful
Reviewed-on: #103
2025-07-06 17:58:46 +02:00
Chaoscaot c1eca74dd0 Handle KickedFromServerEvent with redirect and empty component
SteamWarCI Build successful
2025-07-06 14:06:07 +02:00
Chaoscaot 8c23bf5bd4 Fix 1.21 DisplayEntities
SteamWarCI Build successful
2025-07-06 11:58:54 +02:00
YoyoNow 556c8f7db1 Fix MissileWars team colors and TNTLeague team colors
SteamWarCI Build successful
2025-07-04 17:49:58 +02:00
YoyoNow 7a03b327ef Fix tablist for real
SteamWarCI Build successful
2025-07-03 18:00:17 +02:00
YoyoNow 0091cba336 Fix Tablist in 1.21.5 or greater
SteamWarCI Build successful
2025-07-03 16:59:24 +02:00
YoyoNow 35d8bfb588 Update UserPerm
SteamWarCI Build successful
Fix Tablist
2025-07-03 16:47:58 +02:00
YoyoNow 78584fea34 Update UserPerm
SteamWarCI Build successful
2025-07-03 16:38:46 +02:00
YoyoNow 66511e514c Merge pull request 'Add a simple smaller Trace file' (#25) from BauSystem/SmallerTraces into main
SteamWarCI Build successful
Reviewed-on: #25
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-07-03 11:29:52 +02:00
YoyoNow 6f64d03fee Update pr stuff
SteamWarCI Build successful
2025-07-03 11:07:52 +02:00
Chaoscaot c04e8d75eb Reorder Colors (again)
SteamWarCI Build successful
2025-07-03 00:57:25 +02:00
Chaoscaot 5c7c982175 Merge branch 'main' into schematic-revisions
SteamWarCI Build successful
2025-07-03 00:45:03 +02:00
Chaoscaot d5ca1e14e1 Add prepared flag to schematics and refactor related logic
SteamWarCI Build successful
2025-07-02 12:25:58 +02:00
YoyoNow 60347bc481 Hotfix dependencies
SteamWarCI Build successful
2025-07-02 11:53:24 +02:00
Chaoscaot fbfdcf8fff Merge pull request 'VelocityCore/JDADependencyPlugin' (#91) from VelocityCore/JDADependencyPlugin into main
SteamWarCI Build successful
Reviewed-on: #91
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-07-02 11:46:07 +02:00
YoyoNow e56c41ca66 Improve dependency upload
SteamWarCI Build successful
2025-07-02 11:36:06 +02:00
YoyoNow 3b67048b9c Improve jar size
SteamWarCI Build successful
2025-07-02 11:22:36 +02:00
YoyoNow 6efbda669e Optimize and improve VelocityCore size
SteamWarCI Build successful
Improve steamwar.devserver.gradle to not upload anything that is up to date!
2025-07-02 11:17:55 +02:00
YoyoNow 4bd5d9eb0b Remove unused get and query
SteamWarCI Build successful
2025-07-02 10:00:43 +02:00
YoyoNow 60a70dfc40 Remove unused get
SteamWarCI Build successful
2025-07-02 09:59:09 +02:00
YoyoNow 95a97aed93 Update TraceRepository to save quite a bit smaller traces
SteamWarCI Build successful
2025-07-02 09:16:48 +02:00
Chaoscaot 6fa54aba2f Merge pull request 'Update UserPerm' (#92) from UserPermColorUpdate into main
SteamWarCI Build successful
Reviewed-on: #92
2025-07-02 09:16:04 +02:00
YoyoNow d04939fb2c Add a simple smaller Trace file, not finished!
SteamWarCI Build successful
2025-07-02 08:12:09 +02:00
Chaoscaot 4c98ce4aff Add Schematic Revisions
SteamWarCI Build successful
2025-07-01 21:39:08 +02:00
YoyoNow 4ed6bc52d0 Update TheBreadBeards Easter particle
SteamWarCI Build successful
2025-07-01 21:37:12 +02:00
YoyoNow bc00873314 Update UserPerm
SteamWarCI Build successful
2025-07-01 21:28:59 +02:00
YoyoNow 8677d59cce Fix some stuff
SteamWarCI Build successful
2025-07-01 19:04:13 +02:00
YoyoNow 6b16bbc785 Add DiscordDependency plugin for faster upload times
SteamWarCI Build successful
2025-07-01 19:00:14 +02:00
YoyoNow 617bae5a5c Add AuditLog
SteamWarCI Build successful
2025-07-01 18:48:59 +02:00
YoyoNow 9988774fb4 Fix Warp.WorldSpawn
SteamWarCI Build successful
2025-06-30 17:27:23 +02:00
YoyoNow 4fc707431f Fix WorldEditRenderer
SteamWarCI Build successful
2025-06-30 17:10:24 +02:00
YoyoNow 8ff0319fe6 Fix BauSystem.properties
SteamWarCI Build successful
2025-06-30 16:53:28 +02:00
YoyoNow 86537a00de Fix TraceRecorder
SteamWarCI Build successful
2025-06-30 16:52:02 +02:00
YoyoNow e9f8a89758 Hotfix Tablist duplicate names after softreload
SteamWarCI Build successful
2025-06-30 16:48:03 +02:00
YoyoNow f37fbfffdf Hotfix SmartPlaceListener
SteamWarCI Build successful
2025-06-30 16:05:52 +02:00
YoyoNow 9798c08cf3 Hotfix SmartPlaceListener
SteamWarCI Build successful
2025-06-30 16:02:43 +02:00
Chaoscaot dbd979a5fe Fix 1.21
SteamWarCI Build successful
2025-06-30 15:58:31 +02:00
Chaoscaot 280202c43f Merge pull request 'Update to support Minecraft 1.21.6 version' (#52) from update/1.21.5 into main
SteamWarCI Build successful
Reviewed-on: #52
2025-06-30 15:53:44 +02:00
Chaoscaot 23df187eb1 settings.gradle.kts aktualisiert
SteamWarCI Build successful
2025-06-30 15:52:51 +02:00
YoyoNow 39af920631 Remove TutorialSystem
SteamWarCI Build successful
2025-06-30 15:29:19 +02:00
Chaoscaot e4864e6eaf Add new changetype alias
SteamWarCI Build successful
2025-06-29 20:11:36 +02:00
Chaoscaot d2bb8e8e59 Fix Relations
SteamWarCI Build successful
2025-06-29 19:53:42 +02:00
Chaoscaot bd9451f2aa Fix Backend
SteamWarCI Build successful
2025-06-29 11:22:41 +02:00
YoyoNow 1bb15d9551 Fix RPlayer skin data
SteamWarCI Build successful
2025-06-28 14:14:55 +02:00
YoyoNow d06faa5d18 Fix 'java.lang.reflect.InvocationTargetException' for RPlayer being initialised
SteamWarCI Build successful
2025-06-28 13:32:50 +02:00
YoyoNow bc5e781810 Hotfix VersionAnnouncer
SteamWarCI Build successful
2025-06-28 13:26:05 +02:00
YoyoNow 14b756261e Merge pull request 'Add event grouping' (#57) from event-brackets into main
SteamWarCI Build successful
Reviewed-on: #57
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-06-26 23:40:51 +02:00
Chaoscaot 1f1f99f8f3 Adjust advancing team logic in EventRelation to fix fromPlace handling
SteamWarCI Build successful
2025-06-26 23:38:19 +02:00
YoyoNow d9aeb47a3a Merge pull request 'Update WorldEdit CUI to RBlockDisplay' (#34) from WorldEditCUI into main
SteamWarCI Build successful
Reviewed-on: #34
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-06-26 23:28:16 +02:00
YoyoNow afe30fd348 Merge pull request 'Add BauLockState.SUPERVISOR' (#80) from VelocityCore/BauLockSupervisor into main
SteamWarCI Build successful
Reviewed-on: #80
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-06-26 23:28:07 +02:00
YoyoNow 9f323c8b38 Merge pull request 'Fix RPlayer not showing when same player is present' (#71) from FixRPlayerHandling into main
SteamWarCI Build successful
Reviewed-on: #71
Reviewed-by: D4rkr34lm <dark@steamwar.de>
2025-06-26 23:28:00 +02:00
YoyoNow b6279fd7fa Remove useless line of code
SteamWarCI Build successful
2025-06-26 22:06:38 +02:00
YoyoNow 3f7cd48f27 Update sensible defaults for WorldEditRendererCUIEditor
SteamWarCI Build successful
2025-06-26 22:01:56 +02:00
YoyoNow c682678827 Add ClientVersionPacket
SteamWarCI Build successful
Update VersionAnnouncer
2025-06-26 21:57:44 +02:00
YoyoNow 1fd8b3c4cb Add ClientVersionPacket
SteamWarCI Build successful
2025-06-26 21:52:07 +02:00
YoyoNow c6ecab5aa8 Fix some stuff
SteamWarCI Build successful
2025-06-26 21:05:11 +02:00
YoyoNow 4383e541d8 Fix some stuff 2025-06-26 21:05:11 +02:00
YoyoNow cc4532ab90 Update CAALine to CLine
Update CAABox to CWireframe
2025-06-26 21:05:09 +02:00
YoyoNow 3e448e7597 Remove default methods of WorldEditRendererWrapper 2025-06-26 21:04:46 +02:00
YoyoNow d975110470 Final fixes 2025-06-26 21:04:46 +02:00
YoyoNow f6852a5523 Add WorldEditRendererCUIEditor to Builder server 2025-06-26 21:04:45 +02:00
YoyoNow 40437afb73 Final fixes 2025-06-26 21:04:45 +02:00
YoyoNow 80a156754d Finalize WorldEditCUI 2025-06-26 21:04:45 +02:00
YoyoNow dfc7bbbe13 Fix WorldEditRendererWrapper9 2025-06-26 21:04:45 +02:00
YoyoNow dd5f46069f Delete WorldEditRenderer8 2025-06-26 21:04:45 +02:00
YoyoNow b10897c204 Update WorldEditRenderer 2025-06-26 21:04:43 +02:00
YoyoNow f6dc1e1059 Update WE version of 1.20 to FAWE 1.18 2025-06-26 21:04:35 +02:00
YoyoNow dccb435bce Update WorldEdit CUI to RBlockDisplay 2025-06-26 21:04:35 +02:00
YoyoNow 1c8d6580d5 Fix Scoreboard
SteamWarCI Build successful
2025-06-26 21:01:29 +02:00
YoyoNow 187087f56b Fix LaufbauSettings
SteamWarCI Build successful
2025-06-26 20:20:59 +02:00
YoyoNow 77cf101889 Add BauLockState.SUPERVISOR
SteamWarCI Build successful
2025-06-26 14:49:48 +02:00
YoyoNow 0f68f671f5 Merge pull request 'Remove Shields from Check Arena' (#67) from remove-shield-from-check-arena into main
SteamWarCI Build successful
Reviewed-on: #67
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-06-26 14:20:15 +02:00
YoyoNow 75c4966e37 Fix SimulatorTNTGui for 1.19
SteamWarCI Build successful
2025-06-26 13:52:01 +02:00
Chaoscaot fcebb4ffd3 Add red team schematic paste in WGCommand
SteamWarCI Build successful
2025-06-14 22:01:29 +02:00
Chaoscaot 9abbcc908d Remove unused fillRegion method from WorldEdit wrapper and related code
SteamWarCI Build successful
2025-06-14 21:56:02 +02:00
YoyoNow 4eb40581f2 Hotfix TexturePackSystem
SteamWarCI Build successful
2025-06-12 22:07:24 +02:00
YoyoNow c3a4e7ed85 Improve network code
SteamWarCI Build successful
2025-06-12 21:28:49 +02:00
Chaoscaot 5201a3edc0 Adjust TechareaCommand to refine wireframe bounds using offset subtraction
SteamWarCI Build successful
2025-06-12 19:53:22 +02:00
Chaoscaot c9821053ce Refactor TechareaCommand to support per-player REntityServer instances and add periodic tick updates
SteamWarCI Build successful
2025-06-12 19:45:45 +02:00
YoyoNow eb8562b3a9 Merge pull request 'Add BlueInsetRegion management and implement TechareaCommand' (#73) from show-tech-area into main
SteamWarCI Build successful
Reviewed-on: #73
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-06-12 19:29:32 +02:00
Chaoscaot 37acbf0033 Add BlueInsetRegion management and implement TechareaCommand
SteamWarCI Build successful
2025-06-12 19:27:56 +02:00
YoyoNow 9e294afa8f Merge pull request 'Add CEntity, CLine, CWireframe and optimize REntityServer' (#72) from WireFrames into main
SteamWarCI Build successful
Reviewed-on: #72
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-06-12 19:20:58 +02:00
YoyoNow 3e9ffa52c3 Fix nit
SteamWarCI Build successful
2025-06-12 19:19:38 +02:00
YoyoNow 3296d9ebb3 Add CEntity, CLine, CWireframe and optimize REntityServer
SteamWarCI Build successful
2025-06-12 18:53:35 +02:00
YoyoNow 3d562cf743 Add skin cache to VelocityCore
SteamWarCI Build successful
2025-06-11 17:05:47 +02:00
YoyoNow 24f4ab7f37 Fix RPlayer not showing when same player is present
SteamWarCI Build successful
Add DevLobby20 to LobbySystem build.gradle.kts
2025-06-11 15:35:27 +02:00
YoyoNow 0ea92be2e1 Fix TexturePackSystem
SteamWarCI Build successful
2025-06-11 11:25:56 +02:00
YoyoNow 88d8016987 Fix TexturePackSystem
SteamWarCI Build successful
2025-06-11 10:58:01 +02:00
YoyoNow 909c1c52aa Hotfix Persistent
SteamWarCI Build successful
2025-06-11 08:09:31 +02:00
YoyoNow 26b126fdba Hotfix Persistent
SteamWarCI Build successful
2025-06-11 08:05:28 +02:00
Chaoscaot ecb2e736aa Mark declined schematics as seen and fix substring usage in CheckedSchematic creation
SteamWarCI Build successful
2025-06-10 22:34:27 +02:00
Chaoscaot 38559e8a2b Fix parameter order in CheckedSchematic.create method
SteamWarCI Build successful
2025-06-10 22:31:14 +02:00
Chaoscaot 1aba92e707 Add seen and nodeType fields to CheckedSchematic class
SteamWarCI Build successful
2025-06-10 22:29:31 +02:00
YoyoNow e4df6f55fb Merge pull request 'GUIImprovements' (#64) from GUIImprovements into main
SteamWarCI Build successful
Reviewed-on: #64
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-06-10 21:08:23 +02:00
YoyoNow ff5113e112 Merge pull request 'Refactor schematic checks to handle unseen notifications' (#33) from add-offline-notify into main
SteamWarCI Build successful
Reviewed-on: #33
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-06-10 20:57:33 +02:00
YoyoNow c425ca1171 Merge pull request 'Add declined question handling in CheckCommand' (#66) from add-saved-declined-questions-history into main
SteamWarCI Build successful
Reviewed-on: #66
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-06-10 20:43:53 +02:00
YoyoNow c1293ffda0 Merge pull request 'Add 'queuerestart' command' (#68) from VelocityCore/QueueRestartCommand into main
SteamWarCI Build successful
Reviewed-on: #68
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-06-10 20:43:04 +02:00
YoyoNow 02428868c2 Merge pull request 'Add player count to ListCommand' (#69) from VelocityCore/CountInListCommand into main
SteamWarCI Build successful
Reviewed-on: #69
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-06-10 20:42:37 +02:00
YoyoNow adaae7f943 Update Persistent.queueRestart to toggle
SteamWarCI Build successful
2025-06-10 20:40:04 +02:00
YoyoNow c12d2c2ddf Add player count to ListCommand
SteamWarCI Build successful
2025-06-10 20:39:11 +02:00
YoyoNow 428c63429c Add 'queuerestart' command
SteamWarCI Build successful
2025-06-10 17:26:20 +02:00
YoyoNow edec84c60a Merge pull request 'Use Transfer Packet for Event Velocity' (#40) from transfer-packet into main
SteamWarCI Build successful
Reviewed-on: #40
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-06-10 17:18:58 +02:00
YoyoNow 4f885a7269 Merge branch 'main' into transfer-packet
SteamWarCI Build successful
2025-06-10 17:18:08 +02:00
Chaoscaot dfd9febd8c Remove Shields from Check Arena
SteamWarCI Build successful
2025-06-08 22:34:05 +02:00
Chaoscaot 1a570dca17 BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/SteamWarLuaPlugin.java aktualisiert
SteamWarCI Build successful
2025-06-08 18:18:44 +02:00
Chaoscaot 761977c90a BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/SteamWarLuaPlugin.java aktualisiert
SteamWarCI Build successful
2025-06-08 16:42:45 +02:00
Chaoscaot 5cc417c43c Add declined question handling in CheckCommand
SteamWarCI Build successful
- Implemented tracking of declined questions during checks.
- Updated messaging logic to display declined questions to users.
- Added new translations for decline-related messages.
2025-06-05 23:41:01 +02:00
Chaoscaot 1014df5f31 PR Stuff
SteamWarCI Build successful
2025-06-03 23:39:16 +02:00
Chaoscaot c920664920 Merge branch 'main' into add-offline-notify 2025-06-03 23:35:35 +02:00
Chaoscaot 3069ffc991 Merge branch 'main' into update/1.21.5
SteamWarCI Build successful
2025-06-03 23:09:05 +02:00
Chaoscaot c3db2b7f86 VelocityCore/src/de/steamwar/velocitycore/listeners/EventModeListener.java aktualisiert
SteamWarCI Build successful
2025-06-01 14:36:49 +02:00
YoyoNow c30f24ab8f Hotfix Protocol Version for real now
SteamWarCI Build successful
2025-05-31 21:32:19 +02:00
Chaoscaot bcb0ad4bef Merge branch 'main' into update/1.21.5
SteamWarCI Build successful
# Conflicts:
#	VelocityCore/src/de/steamwar/velocitycore/ServerVersion.java
2025-05-31 20:20:07 +02:00
Chaoscaot f2a46e54ea Revert "Add WeatherCommand"
SteamWarCI Build successful
This reverts commit 30fa3fd66e.
2025-05-31 19:40:08 +02:00
YoyoNow daede98a0f Hotfix TeamCommand
SteamWarCI Build successful
2025-05-31 17:45:24 +02:00
YoyoNow d37a14f280 Move some constants around
SteamWarCI Build successful
2025-05-31 10:04:21 +02:00
YoyoNow 083c5c07c2 Update CMDs for all current CustomModelData usages
SteamWarCI Build successful
2025-05-31 09:39:03 +02:00
YoyoNow 7b059cde0e Add customModelData to Velocity SWItem
SteamWarCI Build successful
2025-05-31 08:51:56 +02:00
YoyoNow 30fa3fd66e Add WeatherCommand
SteamWarCI Build successful
2025-05-30 21:37:07 +02:00
YoyoNow 37f6723542 Add CommonCore.DATA and CMDs
SteamWarCI Build successful
2025-05-29 17:12:32 +02:00
Chaoscaot 7a9740c4c4 Fix EventFight activeFights query and add null check for spectatePort in CookieEvents
SteamWarCI Build successful
2025-05-29 15:05:01 +02:00
Chaoscaot 54eec6d57c Merge pull request 'SchematicSystem: Add music disks to auto checker' (#59) from SchematicSystem/Allow-music-disks into main
SteamWarCI Build successful
Reviewed-on: #59
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-05-29 14:37:49 +02:00
Chaoscaot 2f93f336c9 Add image upload functionality and enhance page metadata creation.
SteamWarCI Build successful
2025-05-29 14:30:06 +02:00
Chaoscaot 62f9d37230 Merge pull request 'Add tech hider bug handling for arena subservers in BugCommand' (#62) from bug-auto-techhider-bug into main
SteamWarCI Build successful
Reviewed-on: #62
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-05-29 14:27:56 +02:00
YoyoNow b479b6667b Merge pull request 'Enable a Dirt Block (Schem owner -1 and Name like GameMode) to be selected for any ServerTeam member' (#51) from FightSystem/EnableDirtBlockForServerTeam into main
SteamWarCI Build successful
Reviewed-on: #51
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-05-29 12:06:41 +02:00
YoyoNow 9bc01a4e3b Revert FightTeam
SteamWarCI Build successful
2025-05-29 12:00:12 +02:00
YoyoNow b14cf445df Fix PR stuff
SteamWarCI Build successful
2025-05-29 11:32:50 +02:00
YoyoNow 527bc39d38 Add some more CustomModelData ids to items
SteamWarCI Build successful
2025-05-29 08:44:58 +02:00
Chaoscaot 8defbaa18b Add tech hider bug handling for arena subservers in BugCommand
SteamWarCI Build successful
2025-05-29 00:03:25 +02:00
Chaoscaot a5bb62590c Refactor page routing and point calculation logic
SteamWarCI Build successful
Streamlined the `page` routing structure by optimizing branch and file handling, introducing a reusable `filesInDirectory` method, and cleaning up redundancies. Enhanced `EventGroup` point calculation with incremental updates, new helper methods (`getTeams`, `getTeamsId`), and better handling of unfinished fights.
2025-05-28 23:57:29 +02:00
YoyoNow c35d4741a0 Add TexturePackSystem
SteamWarCI Build successful
2025-05-28 14:19:21 +02:00
YoyoNow a2a101c4e3 Merge pull request 'Add NoGravity' (#61) from FightSystem/EnableNoGravityFights into main
SteamWarCI Build successful
Reviewed-on: #61
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-05-27 19:58:55 +02:00
YoyoNow 277e1f9f9b Add NoGravity
SteamWarCI Build successful
2025-05-27 18:15:03 +02:00
YoyoNow 380506542f Remove some more duplicates
SteamWarCI Build successful
2025-05-23 09:13:23 +02:00
YoyoNow d410484e4c Update JDA to newest version
SteamWarCI Build successful
2025-05-22 19:47:14 +02:00
Chaoscaot 8768fd7d81 Refactor event handling and group assignment logic
SteamWarCI Build successful
Replaced `fight.event` with `event.eventID` for consistency and improved event handling. Adjusted `setGroup` to accept `Integer` instead of `EventGroup` to simplify group assignment logic. Removed unused `event` field in `CreateEventFight` and streamlined related processing.
2025-05-22 19:42:49 +02:00
Chaoscaot 374e314faa Add new WATUT Channel
SteamWarCI Build successful
2025-05-22 18:19:31 +02:00
Chaoscaot 45a8aab321 Revert "Add "/event vote" command for SteamWarArcade Event"
SteamWarCI Build successful
This reverts commit 7f215b921e.
2025-05-18 19:44:29 +02:00
Chaoscaot 0d15bbc266 Revert "Add "/event vote" command for SteamWarArcade Event"
This reverts commit a5b61fb0d6.
2025-05-18 19:44:28 +02:00
Chaoscaot 7fa97ce36c Revert "Fix TowerRun event"
This reverts commit 8cd088050d.
2025-05-18 19:44:28 +02:00
Chaoscaot 8cd088050d Fix TowerRun event
SteamWarCI Build successful
2025-05-18 16:32:01 +02:00
Chaoscaot b0bbc09113 Fix TowerRun event
SteamWarCI Build successful
2025-05-18 16:28:26 +02:00
Chaoscaot a5b61fb0d6 Add "/event vote" command for SteamWarArcade Event
SteamWarCI Build successful
To be removed after event
2025-05-18 16:22:50 +02:00
YoyoNow 297e6c9b59 Fix OOM?
SteamWarCI Build successful
2025-05-18 15:58:31 +02:00
YoyoNow 400c78447a Fix IngameListener
SteamWarCI Build successful
2025-05-18 15:41:43 +02:00
YoyoNow 778d0282d3 Fix IngameListener
SteamWarCI Build successful
2025-05-18 15:37:43 +02:00
YoyoNow 2a314e7035 Add sout
SteamWarCI Build successful
2025-05-18 15:31:48 +02:00
YoyoNow 6ed639fbb3 Add sout
SteamWarCI Build successful
2025-05-18 13:46:39 +02:00
YoyoNow 3a79f19f37 Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-05-18 13:34:45 +02:00
YoyoNow f7e81f8204 Hotfix OOM in IngameListener 2025-05-18 13:34:42 +02:00
Chaoscaot 7f215b921e Add "/event vote" command for SteamWarArcade Event
SteamWarCI Build successful
To be removed after event
2025-05-18 13:32:09 +02:00
Chaoscaot b0be06136d Add 'ergebnis' field to EventFights data model and update logic
SteamWarCI Build successful
Introduced a new 'ergebnis' field to the EventFights data model to handle fight results. Updated the logic to support processing and updating this field when provided. This ensures better tracking and management of event fight outcomes.
2025-05-18 13:31:14 +02:00
YoyoNow 8132e4fca0 Remove code duplication
SteamWarCI Build successful
2025-05-18 10:34:41 +02:00
YoyoNow bf5eef2ebd Fix copyright nit
Remove SchematicCommand19
2025-05-18 10:28:32 +02:00
D4rkr34lm 69251f42a6 Add music disks to autochecker
SteamWarCI Build successful
2025-05-17 23:40:48 +02:00
Chaoscaot 6bbe94150d Merge pull request 'Prevent usage of Flashback channels for restricted players' (#58) from flashback into main
SteamWarCI Build successful
Reviewed-on: #58
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-05-17 11:57:40 +02:00
Chaoscaot 717cfa8baf Prevent usage of Flashback channels for restricted players
SteamWarCI Build successful
Added new channel handlers to block Flashback mod channels for users without appropriate permissions. Ensures restricted players using these channels are disconnected with a specific warning message. This enhances control over mod usage and maintains server integrity.
2025-05-16 18:00:23 +02:00
Chaoscaot 260656ad35 Fix for events
SteamWarCI Build successful
2025-05-14 19:28:27 +02:00
Chaoscaot e893d7934a Fix TowerRun for events
SteamWarCI Build successful
2025-05-14 19:11:05 +02:00
YoyoNow d0665932f4 Fix TowerRunGame.reset
SteamWarCI Build successful
2025-05-11 20:19:23 +02:00
YoyoNow d6fba9b0af Fix many simple things
SteamWarCI Build successful
2025-05-11 19:02:46 +02:00
YoyoNow b229b0d0ae Fix many simple things
SteamWarCI Build successful
2025-05-11 19:02:02 +02:00
YoyoNow ac00245b04 Fix lag of IngameListener
SteamWarCI Build successful
2025-05-11 18:50:21 +02:00
YoyoNow 6eb01a61b1 Update every Back item to use the new texture
SteamWarCI Build successful
2025-05-11 18:28:06 +02:00
YoyoNow fa13872f22 Add SWListInv 2025-05-11 18:28:06 +02:00
YoyoNow 79edc1c591 Add Simulator to improvements 2025-05-11 18:28:06 +02:00
Chaoscaot 6e9db276ef Add event referees management and teams endpoint.
Introduced a new route for managing event referees with get, put, and delete operations. Also added an endpoint to fetch all teams, and integrated the referees routing into event configuration.
2025-05-10 22:22:43 +02:00
Chaoscaot e3179c69aa Refactor event group management and routing system
SteamWarCI Build successful
2025-05-08 17:32:12 +02:00
Chaoscaot c633694222 Refactor event handling and tie-break logic implementation
SteamWarCI Build successful
Introduced new methods and structures in EventGroup, EventRelation, and EventFight to streamline point calculations, tie-break detection, and dependency resolution. Improved modularity by adding methods like getLastFight, needsTieBreak, and getDependents while optimizing the event result setting process. This refactor enhances clarity, reduces redundancy, and supports better maintainability of event-related logic.
2025-05-07 16:16:36 +02:00
YoyoNow a4eea298d2 Hotfix PrepareSchem not copying allowReplay and replaceColor while creating a prepared schem
SteamWarCI Build successful
2025-05-07 14:37:00 +02:00
Chaoscaot f387805b40 Add event grouping
SteamWarCI Build successful
2025-05-07 13:51:13 +02:00
Chaoscaot 2c644eef26 Merge pull request 'Maybe™️ fix Techhider' (#56) from techhider-fixes into main
SteamWarCI Build successful
Reviewed-on: #56
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-05-02 14:26:18 +02:00
Chaoscaot 7f0fa09c56 Update OpenJ9 dump configuration to enable heap hprof.
SteamWarCI Build successful
2025-05-02 14:14:27 +02:00
Chaoscaot 6940c32b02 Adjust OpenJ9 JVM arguments to include hprof option in dumps.
SteamWarCI Build successful
2025-05-02 14:13:33 +02:00
Chaoscaot 5015aca159 Maybe™️ fix Techhider
SteamWarCI Build successful
2025-05-02 10:13:47 +02:00
Lixfel 32c85b9bd5 Merge pull request 'Add error handling and logging to Techhider and TinyProtocol' (#55) from techhider-debug-nachrichten into main
SteamWarCI Build successful
Reviewed-on: #55
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-04-29 18:13:00 +02:00
Chaoscaot 15bb92fbba Improve error handling and logging in Techhider and TinyProtocol
SteamWarCI Build successful
Refined logging messages for clarity by replacing "Techhider" with "PacketInterceptor" where appropriate. Adjusted error handling in `TechhiderbugCommand` by removing redundant `flush` calls and properly logging exceptions during bug report generation. These changes aim to enhance maintainability and debugging.
2025-04-29 18:04:58 +02:00
Chaoscaot d6a5caf95d Add error handling and logging to Techhider and TinyProtocol
SteamWarCI Build successful
2025-04-29 17:59:22 +02:00
Chaoscaot 1912ad52e4 Add protocol version check to handle potential packet issue
SteamWarCI Build successful
2025-04-28 23:25:36 +02:00
Chaoscaot 66d18e316b Hotfix: Schematic Download geht für nicht Supervisor Player
SteamWarCI Build successful
2025-04-28 16:47:43 +02:00
Chaoscaot f30c3b2f34 Update anvilgui library to version 1.10.5-SNAPSHOT
SteamWarCI Build successful
2025-04-27 02:58:05 +02:00
Chaoscaot 7e863e8062 Refactor entity field access with version-aware adjustments
SteamWarCI Build successful
2025-04-27 02:53:59 +02:00
Chaoscaot 5cdad8c2f4 Add Dev 1.21.5
SteamWarCI Build successful
2025-04-27 02:28:39 +02:00
YoyoNow 87a7120a6a Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-04-26 23:57:03 +02:00
YoyoNow b5a9564808 Allow next next location in JumpAndRun 2025-04-26 23:56:59 +02:00
Chaoscaot f93362a023 LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRun.java aktualisiert
SteamWarCI Build successful
2025-04-26 23:48:33 +02:00
Chaoscaot b1bef4ced5 Add ErrorLogging for Bugged Schematics
SteamWarCI Build successful
2025-04-26 22:27:53 +02:00
Chaoscaot e7e1e2d968 Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-04-26 22:17:50 +02:00
Chaoscaot 713275ba11 Add ErrorLogging for Bugged Schematics 2025-04-26 22:17:43 +02:00
Chaoscaot e72ae3cf94 LobbySystem/src/de/steamwar/lobby/jumpandrun/JumpAndRun.java aktualisiert
SteamWarCI Build successful
2025-04-26 22:13:31 +02:00
YoyoNow d36753dec1 Merge pull request 'Fixed meterstock' (#54) from BauSystem/fix-meterstock into main
SteamWarCI Build successful
Reviewed-on: #54
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-04-26 13:37:33 +02:00
D4rkr34lm 84cc292df4 Fixed meterstock
SteamWarCI Build successful
2025-04-26 13:08:13 +02:00
YoyoNow f89c4e88f9 Fix HotbarKit
SteamWarCI Build successful
Fix steamwar.devserver.gradle
Add WarGear20 to build.gradle.kts
2025-04-25 18:07:14 +02:00
Chaoscaot aeff16b7dd Update to support Minecraft 1.21.5 version
SteamWarCI Build successful
2025-04-24 14:07:35 +02:00
Chaoscaot bb97d80c18 Refactor to align with Minecraft 1.21.5 API changes
SteamWarCI Build successful
2025-04-24 13:10:48 +02:00
YoyoNow 7d45680fcb Enable a Dirt Block (Schem owner -1 and Name like GameMode) to be selected for any ServerTeam member
SteamWarCI Build successful
2025-04-23 21:52:27 +02:00
YoyoNow a38f9222dd Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-04-23 20:55:30 +02:00
YoyoNow 5ee9d3e167 Hotfix HotbarKit 2025-04-23 20:55:26 +02:00
YoyoNow 98321de46c Merge pull request 'Replace Jukeboxes with Lodestone in panzer sklave' (#50) from BauSystem/fix-panzersklave into main
SteamWarCI Build successful
Reviewed-on: #50
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-04-23 19:14:53 +02:00
D4rkr34lm 239ba3f213 made more readable
SteamWarCI Build successful
2025-04-23 19:14:44 +02:00
D4rkr34lm 3d7dedd3ad Fix jukeboxes in panzer sklave
SteamWarCI Build successful
2025-04-23 19:13:07 +02:00
YoyoNow ef66b8c1f1 Fix HotbarKit.onInventoryClick not resetting the cursor item
SteamWarCI Build successful
2025-04-23 18:28:58 +02:00
YoyoNow 1201b16ee4 Merge pull request 'Improve Server starter 'steamwar.devserver.gradle'' (#41) from ImprovedServerStarter into main
SteamWarCI Build successful
Reviewed-on: #41
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-04-23 18:16:39 +02:00
YoyoNow 4ddd88f540 Merge pull request 'Enable clicking 'Ready' in inventory' (#42) from FightSystem/HotbarKitInInv into main
SteamWarCI Build successful
Reviewed-on: #42
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-04-23 18:12:40 +02:00
YoyoNow 147e34c0d6 Fix TNTClickListener
SteamWarCI Build successful
2025-04-21 11:47:00 +02:00
YoyoNow ca35ab9234 Remove code Duplication HotbarKit
SteamWarCI Build successful
2025-04-20 20:41:47 +02:00
YoyoNow 3df84a7dad Update from PR
SteamWarCI Build successful
2025-04-20 20:40:19 +02:00
YoyoNow 313b22cb44 Optimize SimulatorStabGenerator
SteamWarCI Build successful
2025-04-20 18:30:30 +02:00
YoyoNow 83c20729fa Fix RAM usage on multiple usages
SteamWarCI Build successful
2025-04-20 08:27:56 +02:00
YoyoNow 925901e40e Fix steamwar.devserver.gradle 2025-04-20 08:27:56 +02:00
YoyoNow 059dd314d1 Fix building of DevServer 2025-04-20 08:27:56 +02:00
YoyoNow 86ff619548 Add FightServer to configure those 2025-04-20 08:27:56 +02:00
YoyoNow 76e00b07db Add plugins option to DevServer Task 2025-04-20 08:27:56 +02:00
YoyoNow 4edfd32ff5 Add a check if the template exists in the user.home directory 2025-04-20 08:27:56 +02:00
YoyoNow 5669725f9b Fix dev.py path 2025-04-20 08:27:56 +02:00
YoyoNow 335649fa87 Fix steamwar.devserver.gradle 2025-04-20 08:27:56 +02:00
YoyoNow 9001e83321 Add steamwar.properties 'worldName' and 'host'
Remove some options
2025-04-20 08:27:56 +02:00
YoyoNow 32703c6659 Enable Velocity, prio Setup needed for that 2025-04-20 08:27:56 +02:00
YoyoNow e393aad25f Add all parameters that dev.py has 2025-04-20 08:27:56 +02:00
YoyoNow 50543ddd4e Improve Server starter 'steamwar.devserver.gradle'
See build.gradle.kts of BauSystem
2025-04-20 08:27:56 +02:00
YoyoNow 230ac09b61 Hotfix for disabled things
SteamWarCI Build successful
2025-04-20 08:12:22 +02:00
YoyoNow 48ea88e1a7 Merge pull request 'BauSystem/SimulatorStabGenerator' (#47) from BauSystem/SimulatorStabGenerator into main
SteamWarCI Build successful
Reviewed-on: #47
2025-04-19 23:21:45 +02:00
YoyoNow 05dc42355d Update and improve SimulatorStabGenerator
SteamWarCI Build successful
2025-04-19 23:04:19 +02:00
YoyoNow 17704487c9 Add SimulatorStabGenerator 2025-04-19 17:58:40 +02:00
YoyoNow 76bbfd0381 Merge pull request 'Add TNTClickListener.TNT_CLICK_DETAILS as a toggle' (#46) from BauSystem/TNTClickDetails into main
SteamWarCI Build successful
Reviewed-on: #46
2025-04-18 21:52:29 +02:00
YoyoNow ae9166528d Add TNTClickListener.TNT_CLICK_DETAILS as a toggle
SteamWarCI Build successful
2025-04-18 21:49:59 +02:00
YoyoNow 119fae4b51 Merge pull request 'Add ActiveMonths to ArenaMode for rotating modes' (#45) from VelocityCore/ActiveMonthsForRotatingGameModes into main
SteamWarCI Build successful
Reviewed-on: #45
2025-04-18 18:38:41 +02:00
YoyoNow 43621b18b4 Fix TypeMappers.arenaMapTypeMapper
SteamWarCI Build successful
2025-04-18 16:57:35 +02:00
YoyoNow e5bdbac3c7 Change isNotActive to isActive
SteamWarCI Build successful
2025-04-18 16:50:16 +02:00
YoyoNow fd738f539a Add 3 new PluginMessage channel
SteamWarCI Build successful
2025-04-18 14:17:59 +02:00
Chaoscaot b4c7576433 Merge pull request 'TNTLeague/BiggerCoins' (#12) from TNTLeague/BiggerCoins into main
SteamWarCI Build successful
Reviewed-on: #12
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-04-18 12:36:29 +02:00
YoyoNow 8204e2ad21 Fix MWTeam.leave not distributing items correctly
SteamWarCI Build successful
2025-04-18 12:30:22 +02:00
YoyoNow 684a74b60d Fix SmartPlaceListener not updating Comparator or Repeater
SteamWarCI Build successful
2025-04-18 12:14:43 +02:00
YoyoNow 1f58b51af6 Fix NoteBlock turning off on redstone destroy under or up to 2 blocks beside it
SteamWarCI Build successful
2025-04-18 12:07:31 +02:00
YoyoNow c9cfb48c4e Final fix for GlobalListener
SteamWarCI Build successful
2025-04-18 10:14:08 +02:00
YoyoNow ace567ba33 Add chat system to TowerRun
SteamWarCI Build successful
2025-04-18 10:07:42 +02:00
YoyoNow 2094120150 Remove prefix. Cannot merge them together because of 'ChatListener.sendChat'
SteamWarCI Build successful
2025-04-18 09:32:35 +02:00
YoyoNow e143268caa Fix DiscordBot.serverTeamChat sending to discord if received from discord!
SteamWarCI Build successful
2025-04-18 09:30:26 +02:00
YoyoNow 7802fdd7d9 Add ActiveMonths to ArenaMode for rotating modes
SteamWarCI Build successful
2025-04-18 09:13:23 +02:00
YoyoNow 7fb3d3d137 Hotfix DiscordBot.ingameChat going to broadcast instead of globalChat
SteamWarCI Build successful
2025-04-17 21:38:35 +02:00
YoyoNow 61d84492dc Merge branch 'main' into TNTLeague/BiggerCoins
SteamWarCI Build successful
2025-04-17 21:18:40 +02:00
YoyoNow f74780d395 Hotfix IngameListener
SteamWarCI Build successful
2025-04-17 16:47:23 +02:00
YoyoNow 62dac000d4 Merge pull request 'Add general Melting of Blocks' (#43) from TowerRun/GeneralMeltingOfBlocks into main
SteamWarCI Build successful
Reviewed-on: #43
2025-04-17 16:32:28 +02:00
YoyoNow 424c80ec81 Add general Melting of Blocks
SteamWarCI Build successful
2025-04-17 16:09:29 +02:00
YoyoNow ae7d394ae2 Enable clicking 'Ready' in inventory
SteamWarCI Build successful
2025-04-17 15:45:25 +02:00
Chaoscaot 306444356c Update & Fix Spelling on Chaos Messages
SteamWarCI Build successful
2025-04-17 01:28:06 +02:00
YoyoNow 29dff8dce6 Fix PunishmentCommand sending double prefix
SteamWarCI Build successful
2025-04-16 21:07:05 +02:00
YoyoNow cbaacd4e85 Merge pull request 'Improve and fix the discord rate limit warnings' (#37) from VelocityCore/ImproveDiscordChannel into main
SteamWarCI Build successful
Reviewed-on: #37
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-04-16 20:16:52 +02:00
YoyoNow e24dada435 Trigger rebuild
SteamWarCI Build successful
2025-04-16 18:13:58 +02:00
YoyoNow d04ffd5cf6 Fix some stuff for 1.21 BauSystem
SteamWarCI Build failed
2025-04-16 18:12:50 +02:00
YoyoNow 9da1de9b6c Fix MsgCommand being able to /r to offline players
SteamWarCI Build successful
2025-04-16 13:42:31 +02:00
YoyoNow 866c376ee5 Fix DevCommand not working when version switching without trying to connect in between when no server is running
SteamWarCI Build successful
2025-04-16 10:20:10 +02:00
YoyoNow 0b14a216d9 Fix SmartPlaceListener updating block under repeater/comparator
SteamWarCI Build successful
2025-04-14 10:04:57 +02:00
YoyoNow b2853b9dec Fix RCommand being able to send offline players
SteamWarCI Build successful
2025-04-14 10:01:50 +02:00
YoyoNow df5c363fb7 Fix FreezeListener
SteamWarCI Build successful
2025-04-14 09:57:31 +02:00
YoyoNow 5b3c3f36b4 Fix comment
SteamWarCI Build successful
2025-04-14 09:16:06 +02:00
YoyoNow e1bcdd59ba Move 'maxNumberOfWebhooks' constructor parameter to end of list
SteamWarCI Build successful
2025-04-14 09:14:04 +02:00
Chaoscaot 40eeb4993f Add support for cookie-based event spectating
SteamWarCI Build successful
ACHTUNG: Janky!
2025-04-13 20:06:38 +02:00
Chaoscaot 4c23915987 Use Transfer Packet for Event Velocity
SteamWarCI Build failed
2025-04-13 18:09:24 +02:00
Chaoscaot c9e4b57f12 Fix: Explicitly cast null to Integer in DownloadCommand
SteamWarCI Build successful
2025-04-12 19:10:18 +02:00
Chaoscaot fdcd248ba6 Merge branch 'main' of https://git.steamwar.de/SteamWar/SteamWar
SteamWarCI Build failed
2025-04-12 19:04:11 +02:00
Chaoscaot f573771355 Hotfix: Double Creation of //copy Schematics in //download command 2025-04-12 19:03:32 +02:00
Lixfel 80078cd8e2 Merge pull request 'Fix spectator handling' (#38) from spectator-improvements into main
SteamWarCI Build successful
Reviewed-on: #38
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-04-12 14:46:41 +02:00
Chaoscaot 76fc468d89 Merge pull request 'Refactors SchematicNode queries for efficiency' (#39) from improve-search-querry into main
SteamWarCI Build successful
Reviewed-on: #39
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-04-12 14:40:34 +02:00
Chaoscaot 1304048509 Refactors SchematicNode queries for efficiency
SteamWarCI Build successful
2025-04-11 00:07:53 +02:00
Lixfel cf4ac95c2f Bugfix after testing
SteamWarCI Build successful
2025-04-09 21:04:28 +02:00
YoyoNow 4a816696ec Update the message limits
SteamWarCI Build successful
2025-04-09 09:10:30 +02:00
YoyoNow 038f54c3b3 Make it buildable and reduce complexity
SteamWarCI Build successful
2025-04-09 09:03:07 +02:00
Lixfel f2d8c9c02b Only AntiTest
SteamWarCI Build successful
2025-04-08 21:34:41 +02:00
Lixfel 2405c5e620 Fix spectator handling
SteamWarCI Build successful
2025-04-08 21:31:47 +02:00
YoyoNow d9493c7474 Dont show bedrock players and send an error for getting your own skull as a bedrock player
SteamWarCI Build successful
2025-04-08 20:58:23 +02:00
YoyoNow 2ccb240ef5 Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-04-08 20:54:54 +02:00
YoyoNow d1d1679c0a Add /skull shorthand for own skull 2025-04-08 20:54:48 +02:00
YoyoNow 4c6ab2c1a0 Improve and fix the discord rate limit warnings
SteamWarCI Build failed
2025-04-08 20:52:54 +02:00
Lixfel 62002e44d7 Merge pull request 'Add techhiderbug command.' (#36) from FightSystem/techhiderbug into main
SteamWarCI Build successful
Reviewed-on: #36
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-04-07 21:22:39 +02:00
Lixfel 9c3f7526ff Add techhiderbug command.
SteamWarCI Build successful
2025-04-07 19:37:23 +02:00
Lixfel eefe17e5f7 Merge pull request 'Use combinedIds to hide in TechHider.iBlockDataHidden' (#35) from hotfix/TechHider into main
SteamWarCI Build successful
Reviewed-on: #35
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-04-05 18:12:54 +02:00
Lixfel 812e78d277 Make it 1.8 compatible
SteamWarCI Build successful
2025-04-05 18:02:48 +02:00
YoyoNow fd220d7fd4 Fix maven url
SteamWarCI Build successful
2025-04-04 13:57:09 +02:00
YoyoNow 446cd5deae Fixup ChecklistChannel
SteamWarCI Build successful
2025-04-04 11:23:51 +02:00
YoyoNow a6c46d0270 Use combinedIds to hide in TechHider.iBlockDataHidden
SteamWarCI Build successful
2025-04-04 11:21:54 +02:00
YoyoNow 2686ab285b Improve WaitTime in ChecklistChannel
SteamWarCI Build successful
2025-04-04 11:16:12 +02:00
YoyoNow 57ea1470e2 Fix for real!
SteamWarCI Build successful
2025-04-04 10:54:21 +02:00
YoyoNow bfdc9c118a Hopefully fix it
SteamWarCI Build successful
2025-04-04 10:52:37 +02:00
YoyoNow dafe838a8a Improve DiscordChannel on discord!
SteamWarCI Build successful
2025-04-04 10:49:01 +02:00
YoyoNow 13bd154383 Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-04-03 17:56:22 +02:00
YoyoNow 9248c9fa51 Remove first second and third in master rank 2025-04-03 17:56:19 +02:00
Lixfel 764dec99f4 Remove display name cleansing in direct tablist handling
SteamWarCI Build successful
2025-04-02 19:05:31 +02:00
YoyoNow c9a1528dfe Update UserElo for better distribution
SteamWarCI Build successful
2025-04-02 10:21:03 +02:00
YoyoNow 8c37466312 Revert "Add Alu-Hut"
SteamWarCI Build successful
This reverts commit b37ded3a8d.
2025-04-02 08:58:42 +02:00
YoyoNow 3b7e38aceb Revert "Fix Realtime"
This reverts commit 87f0765506.
2025-04-02 08:58:42 +02:00
YoyoNow e7c4c998a0 Revert "Allow edit of Lobby"
This reverts commit 1dcd2f102c.
2025-04-02 08:58:42 +02:00
YoyoNow 5907648462 Revert "Allow edit of Lobby"
This reverts commit f62af55d39.
2025-04-02 08:58:42 +02:00
YoyoNow b32d6e9c69 Revert "Update difficulty"
This reverts commit 47c8cb1701.
2025-04-02 08:58:42 +02:00
YoyoNow f533e85007 Revert "Update difficulty"
This reverts commit 81c310c946.
2025-04-02 08:58:42 +02:00
YoyoNow 81c310c946 Update difficulty
SteamWarCI Build successful
2025-04-01 23:32:32 +02:00
YoyoNow 47c8cb1701 Update difficulty
SteamWarCI Build successful
2025-04-01 23:19:24 +02:00
YoyoNow f62af55d39 Allow edit of Lobby
SteamWarCI Build successful
2025-04-01 20:58:10 +02:00
YoyoNow 1dcd2f102c Allow edit of Lobby
SteamWarCI Build successful
2025-04-01 20:56:33 +02:00
YoyoNow 87f0765506 Fix Realtime
SteamWarCI Build successful
2025-03-31 22:44:01 +02:00
YoyoNow b37ded3a8d Add Alu-Hut
SteamWarCI Build successful
2025-03-31 22:37:55 +02:00
Lixfel c4e9f80315 Fix leader not changeable during events
SteamWarCI Build successful
2025-03-31 19:56:36 +02:00
YoyoNow 19e14f787a Merge pull request 'feat(BauSystem): add tracer lua-lib' (#24) from BauSystem/tracer-lua-lib into main
SteamWarCI Build successful
Reviewed-on: #24
Reviewed-by: Chaoscaot <max@chaoscaot.de>
Reviewed-by: Lixfel <lixfel@noreply.localhost>
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-03-30 17:33:29 +02:00
YoyoNow 0f629a6387 Merge pull request 'Feature(BauSystem): Add example hotkey script' (#31) from BauSystem/add-example-scipt into main
SteamWarCI Build successful
Reviewed-on: #31
Reviewed-by: Lixfel <lixfel@noreply.localhost>
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-03-30 17:32:42 +02:00
Chaoscaot 1a356da6e0 Trigger Rebuild
SteamWarCI Build successful
2025-03-30 11:17:27 +02:00
Chaoscaot f6a18dffcc Trigger Rebuild
SteamWarCI Build successful
2025-03-30 11:14:20 +02:00
Chaoscaot 98cc09a7d3 Trigger Rebuild
SteamWarCI Build successful
2025-03-30 11:11:01 +02:00
YoyoNow 4c8a03ac9c Add 30 seconds EndCountdown for TowerRun
SteamWarCI Build successful
2025-03-29 19:53:09 +01:00
D4rkr34lm 16f2eaad52 fixed Script ordering
SteamWarCI Build successful
2025-03-25 22:03:59 +01:00
D4rkr34lm 90d2e70a6e Merge branch 'main' into BauSystem/add-example-scipt
SteamWarCI Build successful
2025-03-25 21:55:04 +01:00
D4rkr34lm d22b01f5e6 Updated copyright
SteamWarCI Build successful
2025-03-25 21:54:03 +01:00
Chaoscaot 71522973a7 Refactor schematic checks to handle unseen notifications
SteamWarCI Build successful
2025-03-24 16:50:39 +01:00
YoyoNow 0da3ebfbcc Merge pull request 'SpigotCore/RDisplay' (#23) from SpigotCore/RDisplay into main
SteamWarCI Build successful
Reviewed-on: #23
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-03-23 18:30:29 +01:00
YoyoNow 923142d0cb Merge branch 'main' into SpigotCore/RDisplay
SteamWarCI Build successful
2025-03-23 18:29:09 +01:00
D4rkr34lm eca9963653 Add example hotkey script
SteamWarCI Build successful
2025-03-21 18:49:49 +01:00
D4rkr34lm 9467291020 Add license header to tracer lib
SteamWarCI Build successful
2025-03-18 21:33:34 +01:00
D4rkr34lm e14c7321c2 Merge branch 'main' into BauSystem/tracer-lua-lib 2025-03-18 21:31:39 +01:00
YoyoNow 50b6947312 Hotfix DiscordChatRoom
SteamWarCI Build successful
2025-03-13 17:14:17 +01:00
YoyoNow 9eca9ab990 Add DepthCommand to toggle Depth Counter
SteamWarCI Build successful
2025-03-13 17:04:59 +01:00
YoyoNow 34e4cd7060 Add click on SimulatorMaterialGui to change material
SteamWarCI Build successful
2025-03-13 16:53:37 +01:00
YoyoNow 30cb09c127 Hotfix ELO on leave
SteamWarCI Build successful
2025-03-13 16:36:34 +01:00
D4rkr34lm c94d67660a Fixed doc
SteamWarCI Build successful
2025-03-12 19:13:47 +01:00
YoyoNow 522cd850a2 Add copyright and usage note!
SteamWarCI Build successful
2025-03-12 08:45:01 +01:00
D4rkr34lm 394591f302 First impl
SteamWarCI Build successful
2025-03-11 22:58:03 +01:00
YoyoNow 3016ad31fa Merge branch 'main' into SpigotCore/RDisplay
SteamWarCI Build successful
2025-03-11 21:49:27 +01:00
YoyoNow 1d293b446c Hotfix WhoisCommand for Developers not showing the User ID
SteamWarCI Build successful
2025-03-11 18:31:31 +01:00
D4rkr34lm 3b41cc4ac5 Improved tracer Lib
SteamWarCI Build successful
2025-03-10 22:17:05 +01:00
Lixfel a71f3f6c66 Merge pull request 'Update Bossbar of FightSystem' (#22) from FightSystem/UpdatedBossBar into main
SteamWarCI Build successful
Reviewed-on: #22
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-03-09 18:27:27 +01:00
YoyoNow 2225b811fa Update Bossbar of FightSystem
SteamWarCI Build successful
2025-03-09 18:18:13 +01:00
YoyoNow 96c25687b6 Hotfix SendCommand
SteamWarCI Build successful
2025-03-08 22:16:39 +01:00
YoyoNow 82723e4c31 Hotfix ShieldPrinting pasting AIR, it should not
SteamWarCI Build successful
2025-03-08 18:34:22 +01:00
YoyoNow 17eaefe3d0 Hotfix ShieldPrinting pasting AIR, it should not
SteamWarCI Build successful
2025-03-08 17:51:41 +01:00
YoyoNow 911a08a156 Merge remote-tracking branch 'origin/main'
SteamWarCI Build successful
2025-03-08 17:44:55 +01:00
YoyoNow b60111e717 Hotfix ShieldPrinting pasting AIR, it should not 2025-03-08 17:44:46 +01:00
Lixfel 644cc9da84 Fix /arena bugs with event arenas
SteamWarCI Build successful
2025-03-08 15:58:54 +01:00
D4rkr34lm 29cb1cc5da Implemented first tracer lib version
SteamWarCI Build successful
2025-03-08 01:11:24 +01:00
Chaoscaot 9bc1f8b328 Refactor password check and add cache clearance.
SteamWarCI Build successful
2025-03-04 21:05:01 +01:00
YoyoNow f38b85f9cb Fix TPSSystem in 1.21 and beyond
SteamWarCI Build successful
2025-03-03 11:27:46 +01:00
YoyoNow 600c24441c Fix final things
SteamWarCI Build successful
2025-03-03 10:09:54 +01:00
YoyoNow f3b5a45f62 Fix final things
SteamWarCI Build successful
2025-03-03 10:05:08 +01:00
YoyoNow caee70c07e Hotfix some exceptions
SteamWarCI Build successful
2025-03-03 10:01:56 +01:00
YoyoNow 5f73395b63 Hotfix some exceptions
SteamWarCI Build successful
2025-03-03 09:56:12 +01:00
YoyoNow b4eab65757 Hotfix xsome exceptions
SteamWarCI Build successful
2025-03-03 09:42:39 +01:00
YoyoNow 0a60654a28 Add some of the Easter Particles
SteamWarCI Build successful
2025-03-03 09:35:42 +01:00
YoyoNow 85c0db873c Final Hotfix of Send Command!
SteamWarCI Build successful
2025-03-02 19:09:59 +01:00
YoyoNow f0beb22856 Hotfix the "to" back in
SteamWarCI Build successful
2025-03-02 18:54:59 +01:00
YoyoNow af55c946a6 Remove player length constraint
SteamWarCI Build successful
2025-03-02 18:51:01 +01:00
Chaoscaot 8b49b8a736 Add player respawn handling with custom spawn location
SteamWarCI Build successful
2025-03-02 15:31:33 +01:00
Chaoscaot 6d4ae9593d Refine eventFight ID check in TNTLeagueConfig initialization.
SteamWarCI Build successful
2025-03-02 15:14:10 +01:00
Chaoscaot 2fad352f62 Fix event initialization check in TNTLeagueConfig
SteamWarCI Build successful
2025-03-02 15:02:11 +01:00
Chaoscaot 2d28cc6182 Fix isEvent function to correctly check eventFightId
SteamWarCI Build successful
2025-03-02 14:58:26 +01:00
Chaoscaot b0bd719627 Backend Fixes
SteamWarCI Build successful
2025-03-02 09:08:49 +01:00
Lixfel 284c4acd4b Merge pull request 'Add event count to Team info' (#21) from VelocityCore/TeamInfoEventCount into main
SteamWarCI Build successful
Reviewed-on: #21
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-03-01 21:45:06 +01:00
YoyoNow 96a4168f37 Add event count to Team info
SteamWarCI Build successful
2025-03-01 21:40:54 +01:00
Lixfel c77b8f57ce Merge pull request 'Configurable techhider interaction suppression' (#19) from config-techhider-interaction-suppression into main
SteamWarCI Build successful
Reviewed-on: #19
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-03-01 08:34:05 +01:00
Lixfel e3c02cfb60 Revert "Update VV dependency version"
SteamWarCI Build successful
This reverts commit 9f108a7cea.
2025-03-01 08:33:15 +01:00
Lixfel ade9a1b5eb Allow TNT in shulker boxes
SteamWarCI Build successful
2025-03-01 08:32:19 +01:00
Chaoscaot ce907389df Refactor SQL query to remove schema qualifiers.
SteamWarCI Build successful
2025-02-25 22:46:54 +01:00
Chaoscaot d9b58d7170 Merge pull request 'Authentication v2' (#17) from Backend/new-auth into main
SteamWarCI Build successful
Reviewed-on: #17
2025-02-25 22:40:09 +01:00
Chaoscaot 3db327eb84 Merge branch 'main' into Backend/new-auth
SteamWarCI Build successful
2025-02-25 22:39:59 +01:00
Chaoscaot fd82707414 Update webpassword command and clean up deprecated logic
SteamWarCI Build successful
2025-02-23 17:27:29 +01:00
Chaoscaot a2b3661605 Refactor V2 Auth
SteamWarCI Build successful
2025-02-23 17:24:14 +01:00
Chaoscaot b045f16160 Remove deprecated configureAuthRoutes function call
SteamWarCI Build successful
2025-02-20 22:40:18 +01:00
Chaoscaot dea0d33185 Refactor token generation and remove unused endpoints.
SteamWarCI Build successful
2025-02-20 22:13:13 +01:00
Lixfel 11cf0b6c54 Merge pull request 'Add LegacyBauSystem with adaptions to current SpigotCore' (#20) from legacy-bau-system into main
SteamWarCI Build successful
Reviewed-on: #20
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-02-20 06:46:06 +01:00
YoyoNow 593ca9f0cf Merge pull request 'VelocityCore/SendCommand2.0' (#18) from VelocityCore/SendCommand2.0 into main
SteamWarCI Build successful
Reviewed-on: #18
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-02-19 21:22:11 +01:00
Chaoscaot 7f5b57516e Reduce access token duration and enhance auth endpoints
SteamWarCI Build successful
2025-02-17 18:28:43 +01:00
Chaoscaot 8ec12603b6 Add password reset URL generation and backend validation
SteamWarCI Build successful
2025-02-17 17:48:26 +01:00
Lixfel ef029eb420 Add LegacyBauSystem with adaptions to current SpigotCore
SteamWarCI Build successful
2025-02-16 19:40:18 +01:00
Lixfel 9f108a7cea Update VV dependency version
SteamWarCI Build failed
2025-02-16 17:25:18 +01:00
Lixfel b516d1d569 Configurable techhider interaction suppression
SteamWarCI Build successful
2025-02-16 17:14:55 +01:00
Lixfel 56e1abca7e Kick player on Channel injection failure
SteamWarCI Build successful
2025-02-16 17:09:27 +01:00
YoyoNow 5420c19b39 Add SCRIPT.md and sw.def.lua
SteamWarCI Build successful
2025-02-14 20:34:49 +01:00
YoyoNow dd9467fa36 Hotfix TeamPlayer.onPlayerInteractEntity
SteamWarCI Build successful
2025-02-14 16:53:26 +01:00
YoyoNow ccbac9f7fb Merge branch 'main' into VelocityCore/SendCommand2.0
SteamWarCI Build successful
2025-02-13 20:40:16 +01:00
Chaoscaot 6aeecd444e Authentication v2
SteamWarCI Build successful
2025-02-04 21:47:29 +01:00
Lixfel ec43e7eba8 Trigger rebuild
SteamWarCI Build successful
2025-02-02 16:29:10 +01:00
Chaoscaot fbea45fb0f Merge pull request 'Add server shutdown if less than 2 players after 5 minutes' (#15) from TNTLeague/auto-shutdown into main
SteamWarCI Build successful
Reviewed-on: #15
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-02-02 16:15:52 +01:00
Chaoscaot abbbf7d3cb Merge branch 'main' into TNTLeague/auto-shutdown
SteamWarCI Build successful
2025-02-02 16:14:25 +01:00
Chaoscaot 1dc0c0d8a8 Merge pull request 'Add ReadyCommand' (#16) from TNTLeague/add-ready-command into main
SteamWarCI Build successful
Reviewed-on: #16
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-02-02 16:14:20 +01:00
Chaoscaot 25cf1ab314 Add ReadyCommand
SteamWarCI Build successful
2025-02-02 16:11:02 +01:00
Chaoscaot 1715fdccdf Remove unused imports in TNTLeague classes
SteamWarCI Build successful
2025-02-02 16:07:24 +01:00
Chaoscaot e39db5978b Add server shutdown if less than 2 players after 5 minutes
SteamWarCI Build successful
2025-02-02 16:06:48 +01:00
Lixfel b4baef321f Trigger rebuild
SteamWarCI Build successful
2025-02-02 15:28:33 +01:00
Chaoscaot 93ab1a50f3 Fix team auto-assign logic in lobby state
SteamWarCI Build successful
Replaced `members.add` with `join` to correctly integrate new players into teams during the lobby phase. This ensures proper team setup and adherence to game mechanics.
2025-02-02 14:12:25 +01:00
Chaoscaot c6a7107ec2 Merge pull request 'Make TNTLeague Event System Capable' (#13) from TNTLeague/add-event into main
SteamWarCI Build successful
Reviewed-on: #13
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-02-02 13:03:02 +01:00
Chaoscaot 8ac5fe44ef Merge pull request 'Make TowerRun Event System Capable' (#14) from TowerRun/event into main
SteamWarCI Build successful
Reviewed-on: #14
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-02-02 12:55:26 +01:00
Chaoscaot 414bd20eb9 Make TowerRun Event System Capable
SteamWarCI Build successful
2025-02-01 22:58:49 +01:00
Chaoscaot 482282f913 Make TNTLeague Event System Capable
SteamWarCI Build successful
2025-02-01 22:00:36 +01:00
Chaoscaot 3d153d49b5 Make TNTLeague Event System Capable
SteamWarCI Build successful
2025-02-01 21:50:36 +01:00
YoyoNow 20c90d9af5 Remove randomness
SteamWarCI Build successful
2025-01-30 13:23:46 +01:00
YoyoNow c799046f43 Add bigger coins and remove TNT from spawning 2025-01-30 13:23:43 +01:00
YoyoNow 90666e2d20 Merge pull request 'Add teamsOnSameLine for Arena Monochrome' (#5) from TNTLeague/TeamsOnSameLine into main
SteamWarCI Build successful
Reviewed-on: #5
Reviewed-by: Chaoscaot <max@chaoscaot.de>
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-01-29 21:20:19 +01:00
YoyoNow 77c6f41f1a Merge branch 'main' into TNTLeague/TeamsOnSameLine
SteamWarCI Build successful
2025-01-29 21:19:35 +01:00
Chaoscaot b3ddc04830 Fix Add Referee
SteamWarCI Build successful
2025-01-29 19:12:45 +01:00
Chaoscaot 02b63687bc Fix Event Create
SteamWarCI Build successful
2025-01-29 18:38:38 +01:00
Chaoscaot dbf59df173 Fix Gitea Backend
SteamWarCI Build successful
2025-01-26 10:13:36 +01:00
Chaoscaot 71362bc079 Hotfix: API Download is decompressed
SteamWarCI Build successful
2025-01-26 00:22:50 +01:00
Chaoscaot 315674ebd8 Merge branch 'main' into TNTLeague/TeamsOnSameLine
SteamWarCI Build successful
2025-01-24 22:44:47 +01:00
Lixfel d5fb48ff3f Merge pull request 'Fix for Role Lookup in CouncilChannel' (#11) from VelocityCore/CouncilChannel into main
SteamWarCI Build successful
Reviewed-on: #11
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-01-24 08:23:46 +01:00
Lixfel 5eaff4c492 Merge pull request 'Remove ViaVersion requirement from dev servers' (#10) from VelocityCore/DevVersion into main
SteamWarCI Build successful
Reviewed-on: #10
Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
2025-01-24 08:23:30 +01:00
YoyoNow 4db5c50b06 Fix PR stuff
SteamWarCI Build successful
2025-01-24 08:21:47 +01:00
Lixfel aa01fde5a0 Fix locale
SteamWarCI Build successful
2025-01-23 18:21:44 +01:00
YoyoNow aa5fcd3811 Update CouncilChannel every hour
SteamWarCI Build successful
2025-01-22 19:52:16 +01:00
YoyoNow de591b7a5f Update CouncilChannel
SteamWarCI Build successful
2025-01-22 09:39:10 +01:00
Lixfel e83878a49b Remove ViaVersion requirement from dev servers
SteamWarCI Build successful
2025-01-22 09:29:20 +01:00
Lixfel bbd42a769b Merge pull request 'Update CouncilChannel' (#9) from VelocityCore/CouncilChannel into main
SteamWarCI Build successful
Reviewed-on: #9
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-01-22 09:22:58 +01:00
YoyoNow 6541c34cc8 Update CouncilChannel
SteamWarCI Build successful
2025-01-21 16:53:17 +01:00
Lixfel 364911e449 Fix CouncilChannel URL
SteamWarCI Build successful
2025-01-21 08:09:11 +01:00
Lixfel 7f7f84a4c4 Fix CouncilChannel, unloading issues
SteamWarCI Build successful
2025-01-21 00:03:39 +01:00
Chaoscaot 3fadeb7751 Disable Logs
SteamWarCI Build successful
2025-01-20 19:09:29 +01:00
Chaoscaot 8da9a3cfbb Fix Schematic Upload
SteamWarCI Build successful
2025-01-20 17:38:32 +01:00
Chaoscaot 0ce7429151 Fix Schematic Upload
SteamWarCI Build successful
2025-01-20 17:31:20 +01:00
Lixfel 2848db02ab Merge pull request 'Update Links to new Website' (#8) from Website/update-links into main
SteamWarCI Build successful
Reviewed-on: #8
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-01-20 17:14:42 +01:00
Lixfel 35e4f66c91 Merge pull request 'TNTLeague/fixes' (#7) from TNTLeague/fixes into main
SteamWarCI Build successful
Reviewed-on: #7
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-01-20 17:14:05 +01:00
Chaoscaot b4accdf0a1 Update Links to new Website
SteamWarCI Build successful
2025-01-20 17:08:24 +01:00
Lixfel b41eec56b9 Merge pull request 'Add bust to RatsChannel threads' (#6) from VelocityCore/RatsChannel into main
SteamWarCI Build successful
Reviewed-on: #6
2025-01-20 17:03:46 +01:00
Chaoscaot 35142f108f Update Links to new Website
SteamWarCI Build successful
2025-01-20 17:03:18 +01:00
Lixfel af79ef544b Fixes
SteamWarCI Build successful
2025-01-20 16:56:59 +01:00
Chaoscaot ca076f9ffd Fix Schematic Download Link
SteamWarCI Build successful
2025-01-20 16:56:10 +01:00
Chaoscaot eacae09e4f Fix TNTLeague
SteamWarCI Build successful
2025-01-20 16:46:53 +01:00
YoyoNow 90ebc93b14 Add bust to RatsChannel threads
SteamWarCI Build successful
2025-01-20 16:44:24 +01:00
Chaoscaot 747bb1055d Fix TNTLeague
SteamWarCI Build successful
2025-01-20 16:43:56 +01:00
Chaoscaot 18418cca2a fixup! Fix TNTLeague
SteamWarCI Build failed
2025-01-20 16:41:30 +01:00
Chaoscaot a9660bd325 Fix TNTLeague 2025-01-20 16:40:45 +01:00
Lixfel 569d5b033e Fix setlocale command
SteamWarCI Build successful
2025-01-20 16:14:44 +01:00
Lixfel 052e549606 Fix replay saving
SteamWarCI Build successful
2025-01-20 16:09:40 +01:00
YoyoNow 6519269d74 Add bust to RatsChannel threads
SteamWarCI Build successful
2025-01-20 16:07:52 +01:00
Lixfel ee705792bf Merge pull request 'File based replays' (#2) from newReplays into main
SteamWarCI Build successful
Reviewed-on: #2
Reviewed-by: Chaoscaot <max@chaoscaot.de>
2025-01-20 14:55:09 +01:00
Lixfel 65cf84f164 Merge pull request 'Fix custom NPC Chats color codes for TheBreadBeard' (#4) from LobbySystem/NPCChats into main
SteamWarCI Build successful
Reviewed-on: #4
Reviewed-by: Lixfel <lixfel@noreply.localhost>
2025-01-20 12:46:02 +01:00
Lixfel a13039bce4 Fix unignore message
SteamWarCI Build successful
2025-01-20 12:31:27 +01:00
Lixfel d721a7496e Merge pull request 'Update Schematic Download and /webpw to new Website' (#3) from Schematics/new-website into main
SteamWarCI Build successful
Reviewed-on: #3
2025-01-20 12:26:54 +01:00
Lixfel 721723716e Fix sign
SteamWarCI Build failed
2025-01-20 12:25:55 +01:00
Lixfel 3d2cba6a28 Fix tutorials
SteamWarCI Build successful
2025-01-20 12:19:10 +01:00
Lixfel 3be748b92e Fix maven repo location
SteamWarCI Build successful
2025-01-20 11:30:05 +01:00
Lixfel 898f3c785b Test CI
SteamWarCI Build failed
2025-01-20 11:24:56 +01:00
Lixfel 2192eddb8b Test CI 2025-01-20 11:19:08 +01:00
Lixfel 327da139ba Merge branch 'newServer' 2025-01-20 11:04:23 +01:00
TheBreadBeard 658dcd024d Add teamsOnSameLine for Arena Monochrome 2025-01-20 01:04:09 +01:00
TheBreadBeard ab4aaf782f Fix custom NPC Chats color codes for TheBreadBeard 2025-01-20 00:42:45 +01:00
Chaoscaot 21b389a993 Update Schematic Download and /webpw to new Website 2025-01-17 22:28:46 +01:00
Chaoscaot 3d78a23af1 Test CI 2025-01-17 17:44:07 +01:00
Chaoscaot 07185d0960 Test CI 2025-01-17 17:42:32 +01:00
Chaoscaot d42da4c903 gradle.properties aktualisiert 2025-01-17 17:40:49 +01:00
Lixfel afd0541039 Move Replays to File system 2025-01-17 13:46:02 +01:00
Lixfel eaae2f4009 Adapt to new server, unlock old versions again 2025-01-17 13:28:57 +01:00
Lixfel 0c815ee1d5 Test CI
SteamWarCI Build failed
2025-01-16 16:37:50 +01:00
Lixfel 429f938f1c Test CI
SteamWarCI Build failed
2025-01-16 16:26:57 +01:00
Lixfel fba7fe5008 Test CI 2025-01-16 15:23:17 +01:00
Lixfel 4012426e26 Test CI 2025-01-16 15:19:44 +01:00
Lixfel fe4e486d41 Test CI 2025-01-16 15:07:22 +01:00
Chaoscaot 79a0fcb3aa BauSystem/build.gradle.kts aktualisiert 2025-01-15 22:20:50 +01:00
Chaoscaot 393f840507 BauSystem/build.gradle.kts aktualisiert 2025-01-15 22:14:39 +01:00
Chaoscaot 349e36fb6b CommandFramework/build.gradle.kts aktualisiert 2025-01-15 22:12:55 +01:00
Chaoscaot 6096828394 SchematicSystem/build.gradle.kts aktualisiert 2025-01-15 22:00:12 +01:00
Chaoscaot 2d84cc8ca7 KotlinCore/build.gradle.kts aktualisiert 2025-01-15 21:54:30 +01:00
Chaoscaot ceff8e9cd5 BauSystem/build.gradle.kts aktualisiert 2025-01-15 21:51:09 +01:00
Chaoscaot 82e6aff4bb buildSrc/src/steamwar.java.gradle aktualisiert 2025-01-15 18:32:49 +01:00
Chaoscaot 8e7a6a56ca buildSrc/build.gradle aktualisiert 2025-01-15 18:23:57 +01:00
Chaoscaot 12c2ae435d CI Test 2025-01-15 18:21:44 +01:00
Chaoscaot 2564227ec7 CI Test 2025-01-15 18:18:11 +01:00
Lixfel 91d4a2dac3 Changes for new Server 2025-01-15 10:01:23 +01:00
Lixfel f7c9c6d796 Fix tablist 2025-01-15 10:00:34 +01:00
Chaoscaot 0f1fbc4b88 Test Webhook 2025-01-14 23:44:30 +01:00
YoyoNow bfdf6471d2 Cleanup things and fix setting back to default
SteamWarCI Build failed
2025-01-08 16:52:24 +01:00
YoyoNow e418109ab7 Reduce spawn packets to 0 if everything is default 2025-01-08 16:27:18 +01:00
Lixfel 06010ae27c Merge pull request 'Fix Schem Upload' (#100) from Schematics/fix-upload into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/100
Reviewed-by: Lixfel <lixfel@steamwar.de>
2025-01-08 13:27:07 +01:00
Chaoscaot a39f172a34 Fix Schem Upload 2025-01-08 12:56:51 +01:00
YoyoNow 82c73f9367 Fix packet count to at most 2 for the display entities at spawn 2025-01-08 12:24:17 +01:00
Lixfel 1350be9b80 Add new roughlyenoughitems plugin channel 2025-01-08 12:02:11 +01:00
YoyoNow 1f65121c68 Fixup postSpawn because of NPE/Not Initialized Exception 2025-01-07 18:41:50 +01:00
YoyoNow 3c848389c9 Update structure 2025-01-07 18:41:50 +01:00
YoyoNow 33f41869b6 Fix packets 2025-01-07 18:41:50 +01:00
YoyoNow 3c1d46398d Add RDisplay, RBlockDisplay, RItemDisplay, RTextDisplay 2025-01-07 18:41:50 +01:00
Lixfel 8e51db3e5b Fix tablist 2025-01-07 17:15:34 +01:00
Lixfel fdd25b11a2 Merge pull request 'Fix invisible players' (#98) from FightSystem/FixInvisiblePlayers into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/98
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2025-01-07 17:12:15 +01:00
Lixfel b6d5f8dcba Merge branch 'main' into FightSystem/FixInvisiblePlayers
# Conflicts:
#	FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/BlockIdWrapper18.java
2025-01-07 17:11:06 +01:00
Lixfel 604a1db218 Fix Array reflection 2025-01-07 17:06:02 +01:00
Lixfel 01da293680 Fix Array reflection 2025-01-07 17:05:36 +01:00
Lixfel e26e590e18 Merge pull request 'Potential fix for true IP for floodgate players' (#97) from VelocityCore/floodgateIPs into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/97
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2025-01-07 16:59:31 +01:00
Lixfel 26bc341c4d Fix 1.15- reflections 2025-01-07 16:57:06 +01:00
Lixfel 46fed25da4 Fix renaming for class name duplications 2025-01-07 16:38:40 +01:00
Lixfel d3fbbb9768 Merge pull request 'Mojang map reflections' (#89) from MojMapReflections into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/89
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2025-01-07 16:27:02 +01:00
YoyoNow 9a8cb543e9 Update SendCommand
SteamWarCI Build failed
2025-01-07 14:27:57 +01:00
Chaoscaot ed16de900e Merge pull request 'Fix /schem changetype schem type normal' (#99) from SchematicSystem/changetypenormal into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/99
Reviewed-by: Chaoscaot <chaos@chaoscaot.de>
2025-01-06 20:12:19 +01:00
Lixfel 66f4efb27f Fix /schem changetype schem type normal 2025-01-06 19:24:15 +01:00
Lixfel 053bd06342 Fix invisible players 2025-01-06 19:18:47 +01:00
Lixfel 9888700273 Migrate reflections to mojang mapped by default 2025-01-06 16:44:10 +01:00
Lixfel 94a1ed3569 More robust version detection. 2025-01-06 10:25:19 +01:00
Lixfel da148c0e9f Replace {nms} and {obc} tags 2025-01-06 10:15:48 +01:00
Lixfel ab34d86da4 Merge branch 'main' into MojMapReflections
# Conflicts:
#	SpigotCore/SpigotCore_8/src/de/steamwar/core/BountifulWrapper8.java
#	SpigotCore/SpigotCore_9/src/de/steamwar/core/BountifulWrapper9.java
#	SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/PartialChunkFixer.java
2025-01-06 10:06:28 +01:00
Lixfel 088965df59 Potential fix for true IP for floodgate players 2025-01-04 21:25:32 +01:00
Lixfel a3490b801e Fix server transfer failure after checkpoint restoration 2025-01-03 12:55:59 +01:00
Lixfel 856c79661b Merge pull request 'Move ViaVersion to Proxy' (#87) from ViaOnProxy into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/87
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2025-01-03 07:33:45 +01:00
Lixfel 9f0f11adeb Fix entity orientation 2025-01-02 17:24:37 +01:00
Lixfel 6b7825ead9 Fix version matching 2025-01-02 11:05:07 +01:00
Chaoscaot 025ec2a850 Hotfix: 1.20 Schematic Reader 2025-01-01 14:12:38 +01:00
Lixfel d7d6c2df7b Merge pull request 'VelocityCore/PrivateTicketLog' (#61) from VelocityCore/PrivateTicketLog into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/61
Reviewed-by: Lixfel <lixfel@steamwar.de>
2025-01-01 13:00:44 +01:00
Lixfel 55c3579e5c Merge pull request 'Add custom NPC Chats for specific players' (#93) from LobbySystem/NPCChats into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/93
Reviewed-by: Lixfel <lixfel@steamwar.de>
2025-01-01 12:58:12 +01:00
Lixfel d64e32eaa5 Cleanup code 2025-01-01 12:56:49 +01:00
Lixfel abb8ab2204 Merge pull request 'Fix Schematics Readers' (#72) from Schematics/1.21 into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/72
Reviewed-by: Lixfel <lixfel@steamwar.de>
2025-01-01 12:42:01 +01:00
YoyoNow c1dbce4648 Fix EventListener.onPlayerQuit 2024-12-31 18:56:42 +01:00
Chaoscaot 7dc5686389 Fixes... 2024-12-31 11:25:00 +01:00
TheBreadBeard f52cec0448 Add custom NPC Chats for TheBreadBeard 2024-12-28 22:58:35 +01:00
Chaoscaot add43b2f54 Merge pull request 'Remove anti pickaxe drop code' (#94) from TNTLeague/RemovePickaxeDropCode into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/94
Reviewed-by: Chaoscaot <chaos@chaoscaot.de>
2024-12-28 22:28:20 +01:00
YoyoNow ca0f82897e Remove anti pickaxe drop code 2024-12-28 18:26:04 +01:00
TheBreadBeard f111d55200 Add custom NPC Chats for specific players 2024-12-28 17:36:40 +01:00
YoyoNow 7eba9231d5 Fix build issues 2024-12-28 17:15:57 +01:00
YoyoNow e9ac198fcb Remove deop on TNTLeague join (mit Lixfel abgesprochen) 2024-12-26 22:42:07 +01:00
YoyoNow 3a47e348d0 Merge pull request 'Add LastOnline to WhoisCommand' (#90) from VelocityCore/LastOnlineTime into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/90
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-26 22:23:01 +01:00
YoyoNow a16e1e8cee Add LastOnline to WhoisCommand 2024-12-26 21:44:40 +01:00
Lixfel 0f73939bf0 Move and rename Reflection fields 2024-12-26 19:11:01 +01:00
Lixfel 30ac38ef53 Merge pull request 'Remove /leader command, allow for Leader promotion' (#86) from FightSystem/Leader into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/86
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-12-26 10:53:07 +01:00
Lixfel 22a8ca4aea Move ViaVersion to Proxy 2024-12-24 14:55:27 +01:00
Lixfel bd87221198 Add subcommand to reload gamemodes without full softreload 2024-12-23 13:12:57 +01:00
Lixfel fb0a653b0e Remove /leader command, allow for Leader promotion 2024-12-23 13:05:00 +01:00
Chaoscaot 9154077104 Fix TNT League Stage Names 2024-12-23 12:50:38 +01:00
YoyoNow 55adb1a052 Improve SendCommand 2024-12-22 23:16:19 +01:00
Chaoscaot 4448eab877 Hotfix: Rework Pickaxe 2024-12-22 22:54:46 +01:00
Chaoscaot 180fb685bd Hotfix: SubMessage 2024-12-22 22:49:06 +01:00
Chaoscaot df1ec88f6c Hotfix: SubMessage 2024-12-22 22:46:00 +01:00
Chaoscaot 655b6cd15f Merge pull request 'Add Some Fixes and Improvements' (#83) from TNTLeague/fixes-and-improvements into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/83
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-12-22 22:38:03 +01:00
Chaoscaot 867091d210 Merge remote-tracking branch 'origin/TNTLeague/fixes-and-improvements' into TNTLeague/fixes-and-improvements 2024-12-22 22:27:45 +01:00
Chaoscaot 2f34369756 Fix SubMessage class 2024-12-22 22:27:30 +01:00
YoyoNow 89fe401b03 Cleanup DealerInventory and TNTLeagueConfig 2024-12-22 22:22:42 +01:00
Chaoscaot aaa808f90f Add Some Fixes and Improvements 2024-12-22 21:57:54 +01:00
Lixfel 1ea6bd61f8 Fix concurrent cipher usage 2024-12-22 16:17:58 +01:00
Lixfel 026b7bcc0e Fix SpectatePort 2024-12-22 16:02:52 +01:00
Lixfel 4da2307d50 Merge pull request 'TechHider refactoring, simple Blocktagging' (#82) from blocktagger into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/82
Reviewed-by: Chaoscaot <chaos@chaoscaot.de>
2024-12-22 07:18:41 +01:00
Lixfel 7d9996529e Add orientation pattern 2024-12-21 21:19:40 +01:00
YoyoNow a2710628a5 Update TechHiderWrapper and add orientation pattern 2024-12-21 19:47:40 +01:00
Chaoscaot ec5382316a Fixes 2024-12-21 19:33:23 +01:00
Chaoscaot 51fd5faa4d Merge branch 'main' into Schematics/1.21
# Conflicts:
#	VelocityCore/build.gradle.kts
2024-12-21 19:29:46 +01:00
Lixfel acbc5c5fd3 Cryptographically secure signature 2024-12-21 18:46:33 +01:00
Lixfel 793fc31b5c TechHider refactoring, simple Blocktagging 2024-12-21 16:53:49 +01:00
Chaoscaot 1b47700c19 Fix Event 2024-12-21 16:16:54 +01:00
Chaoscaot 06b0af5a16 Hotfix API EventFight Create 2024-12-21 15:42:27 +01:00
Chaoscaot d08ccc3a98 Fix Everything 2024-12-21 12:30:39 +01:00
Chaoscaot 336915dd96 Fix Schem Upload 2024-12-21 12:03:43 +01:00
Lixfel 8fac9cd37e Merge pull request 'Partial diagonal HullHider uncovering, performance improvement' (#79) from FIghtSystem/partialSides into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/79
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-12-21 11:21:45 +01:00
Lixfel 3b2ee668b2 Merge pull request 'Additional Pluginmessage classifications, Lunar refactoring' (#80) from VelocityCore/PluginMessages into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/80
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-12-21 11:21:21 +01:00
Lixfel c479d21cd2 Additional Pluginmessage classifications, Lunar refactoring 2024-12-21 11:09:16 +01:00
Lixfel 10e016c850 Partial diagonal HullHider uncovering, performance improvement 2024-12-21 10:52:41 +01:00
Chaoscaot 0e43c2a615 Hotfix: SW Survival 2024-12-17 20:02:12 +01:00
Chaoscaot 9eab15bfd5 Hotfix: Groups 2024-12-15 17:18:40 +01:00
Chaoscaot 2436340765 Fixes and Balances 2024-12-13 19:13:14 +01:00
Chaoscaot 7d9b3cd098 Merge remote-tracking branch 'origin/main' 2024-12-13 13:08:34 +01:00
Chaoscaot 85c6dcdc1e Add TNTLeague Auto-Stop 2024-12-13 13:08:28 +01:00
Lixfel 997a800c85 Fix Hullhider 1.15-, improve performance. 2024-12-13 11:26:19 +01:00
Lixfel a5ffddad66 Add AdminReplay line of sight tools. 2024-12-13 10:42:44 +01:00
Chaoscaot 61e8ba14ca Fixes 2024-12-13 10:22:01 +01:00
Chaoscaot 56c66b33b7 Fix Locations 2024-12-13 09:43:18 +01:00
Chaoscaot b90884ee1d Fix Locations 2024-12-13 09:31:15 +01:00
Chaoscaot e1d3e47845 Fixes and De-Spagetti Code 2024-12-12 16:09:25 +01:00
Chaoscaot b12846d011 Merge remote-tracking branch 'origin/main' 2024-12-11 15:05:02 +01:00
Chaoscaot 7488a4d063 Remove Stats 2024-12-11 15:04:54 +01:00
Lixfel 429e2f86aa Fix Hullhider. 2024-12-11 15:03:32 +01:00
Lixfel c308a06e6b Test if broadcasting apollo:json acceptance triggers ModList sending. 2024-12-11 14:48:32 +01:00
Chaoscaot 68c7cfed73 Hotfix: Allow ReplayMod on Devservers 2024-12-11 14:34:31 +01:00
Chaoscaot c3c4b94e3b Fix TNTLeague Sound 2024-12-11 14:20:38 +01:00
Chaoscaot f61c27804a Fix TNTLeague Sound 2024-12-11 14:11:39 +01:00
Chaoscaot b36c974f86 Fix TNTLeague Sound 2024-12-11 14:08:33 +01:00
Chaoscaot ae4d498694 Fix TNTLeague Sound 2024-12-11 14:04:06 +01:00
Lixfel e9f6b284eb Test if broadcasting apollo:json acceptance triggers ModList sending. 2024-12-11 13:26:12 +01:00
Lixfel 454cfecc0e Merge pull request 'Better Hull Hider Algorithm' (#76) from FightSystem/HullHiderAlgo_v2 into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/76
Reviewed-by: Chaoscaot <chaos@chaoscaot.de>
2024-12-11 13:16:39 +01:00
Chaoscaot bc217c16dd Merge pull request 'Finish TNTLeague' (#53) from TNTLeague/finish into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/53
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-11 10:53:39 +01:00
Chaoscaot d3f6075686 Add to CI 2024-12-11 10:53:17 +01:00
Lixfel a1e77e571b Fix entity hider. 2024-12-11 09:52:05 +01:00
Lixfel b31bd58e1a Handle additional recorded plugin channels. 2024-12-10 12:58:19 +01:00
Lixfel f81b95e39f Fix direction id. 2024-12-10 12:57:21 +01:00
Lixfel 7ce5e319b5 Reduce unnecessary branch propagation by early abort with primary direction visibility. 2024-12-10 11:08:44 +01:00
Lixfel c50bb64516 Performance improvements 2024-12-10 01:59:16 +01:00
Lixfel b1c0e36cee Remove diagonal diagonals, branch only in enemy direction 2024-12-10 00:44:26 +01:00
Lixfel be653754a7 Better Hull Hider Algorithm
Cardinal visibility with diagonal branching.
2024-12-10 00:01:47 +01:00
Chaoscaot 9c055ee929 Merge pull request 'Fix Schematic Punishment Messages' (#75) from SchematicSystem/fix-punishment into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/75
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-09 19:06:00 +01:00
Chaoscaot 80ab0eeda0 Fix 2024-12-09 19:05:36 +01:00
Chaoscaot 257f70cc6a Merge pull request 'Limit maximum number of sent in Schematics' (#74) from SchematicSystem/no-more-than-three into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/74
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-09 19:02:46 +01:00
Lixfel 970780b855 Reduce PluginMessage spam 2024-12-09 16:26:48 +01:00
Lixfel c0d9b9f89b Fix /historic hover 2024-12-09 16:20:21 +01:00
Chaoscaot 6d0fa6527e Fix Schematic Punishment Messages 2024-12-08 23:40:50 +01:00
Chaoscaot df4cd12d2a Unused Import 2024-12-08 23:29:57 +01:00
Chaoscaot 60dc00fd92 Limit maximum number of sent in Schematics 2024-12-08 23:29:13 +01:00
Chaoscaot 06eec10660 Fixes... 2024-12-08 23:18:32 +01:00
YoyoNow e1010f79e9 Merge pull request 'Fix color region reset' (#73) from BauSystem/resetColor into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/73
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-12-06 21:04:49 +01:00
Chaoscaot e93683842b Language 2024-12-06 18:36:59 +01:00
Lixfel cd17e625ca Remove debug output 2024-12-06 13:39:08 +01:00
Lixfel d21e50dadd Test fix DiscordAlert 2024-12-06 13:36:13 +01:00
Lixfel 19ea605784 Debug DiscordAlert 2024-12-06 13:32:37 +01:00
Lixfel 4c12148552 Fix color region reset 2024-12-06 13:22:02 +01:00
Lixfel da672a7506 Fix tablist after softreload 2024-12-06 13:07:21 +01:00
Lixfel 2f50c7acae Add debug output for DiscordAlert malfunction, add plugin messages 2024-12-06 12:50:09 +01:00
Lixfel ed276bf4ce Fix for delayed interaction replys, add plugin messages 2024-12-06 11:41:29 +01:00
Lixfel f5f8b3bd06 Test fix for delayed interaction replys 2024-12-06 11:23:54 +01:00
Lixfel f01f869479 Fix logging of WARN level in Exception table 2024-12-05 21:48:52 +01:00
Lixfel 3ce958778a Fix NPE 2024-12-05 16:03:21 +01:00
Lixfel c4849657df Deploy api backend 2024-12-05 13:28:46 +01:00
Lixfel 9a6dec6679 Merge pull request 'SubserverSystem-Refactoring' (#71) from SubserverSystem-Refactoring into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/71
Reviewed-by: Chaoscaot <chaos@chaoscaot.de>
2024-12-04 11:43:27 +01:00
Chaoscaot 0134ef1f61 Maybe, Fix Schematics Readers 2024-12-03 22:43:14 +01:00
Chaoscaot 19a4d0e93a Fixes 2024-12-03 17:17:29 +01:00
Chaoscaot 677eb4137a Merge branch 'main' into TNTLeague/finish 2024-12-03 17:07:56 +01:00
Lixfel 7b55e99be0 Fix arena start condition 2024-12-03 17:05:53 +01:00
Lixfel 3abba4ae35 Add /build stop command 2024-12-03 15:50:32 +01:00
Lixfel d2650ad97f Remove Servertype enum, fix starting multiple servers at once, 2024-12-03 15:42:57 +01:00
YoyoNow 57d4727f35 Hotfix CustomMap (die letzte) 2024-12-02 18:39:14 +01:00
YoyoNow a040448b5e Hotfix CustomMap 2024-12-02 18:36:38 +01:00
YoyoNow 79a993c8ec Hotfix CustomMap 2024-12-02 18:30:08 +01:00
YoyoNow bd95e95bc3 Revert "Remove ModifyCommand"
This reverts commit d93d7c95eb.
2024-12-02 18:25:47 +01:00
YoyoNow d93d7c95eb Remove ModifyCommand 2024-12-02 18:21:45 +01:00
YoyoNow f97cc2ca61 Hotfix CustomMap 2024-12-02 17:24:23 +01:00
Chaoscaot 990a59ae72 Hotfix: Fix 1.21 Schematic Writer (again?) 2024-12-01 23:44:08 +01:00
Chaoscaot 0153910402 Hotfix: Fix 1.21 Schematic Writer (again) 2024-12-01 23:39:00 +01:00
Chaoscaot e61466e390 Hotfix: Fix 1.21 Schematic Writer 2024-12-01 23:32:04 +01:00
Chaoscaot 2788670bbb Hotfix: Replays (Again Again Again!) 2024-12-01 22:46:44 +01:00
Chaoscaot 2ea8c93961 Hotfix: Replays (Again Again!) 2024-12-01 22:41:36 +01:00
Chaoscaot dfe7c389f6 Hotfix: Replays (Again!) 2024-12-01 22:36:12 +01:00
Chaoscaot 7140fbb1a0 Hotfix: Replays 2024-12-01 22:31:47 +01:00
Lixfel d57d73c488 Merge pull request 'Remove Now Unused Wrappers' (#66) from fixes into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/66
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-01 22:10:12 +01:00
Chaoscaot 66d417a210 Remove Now Unused Wrappers 2024-12-01 22:01:59 +01:00
Chaoscaot e16410fd65 Hotfix: Fix BountifulWrapper9 (hopefully) 2024-12-01 21:54:59 +01:00
Lixfel 4009f11871 Merge pull request 'Fixes for 1.21' (#65) from fixes into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/65
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-01 20:15:47 +01:00
Chaoscaot a009c841b1 Fix: getOpenInventory 2024-12-01 20:13:12 +01:00
Lixfel bf21d7ee90 Fix 1.20 Baus 2024-12-01 19:58:27 +01:00
Lixfel 851904beac Fix 1.20 Baus 2024-12-01 19:57:59 +01:00
Chaoscaot a4d5850555 Hotfix: SimulatorBaseGui InventoryView 2024-12-01 19:40:07 +01:00
Lixfel 116005c0c9 Fix Tablist gone after softreload 2024-12-01 19:22:48 +01:00
Lixfel 4dcfeb77b2 Unlock 21 BuilderCloud (and Bau) 2024-12-01 19:19:27 +01:00
Lixfel e24f108d90 Merge pull request 'Fix JsonParser.readString unavailable in 1.15-' (#62) from SpigotCore/JsonParser into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/62
Reviewed-by: Chaoscaot <chaos@chaoscaot.de>
2024-12-01 19:09:31 +01:00
Lixfel f4ef396d4e Merge pull request 'Update our Software to 1.21.3' (#60) from 1.21.3 into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/60
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-12-01 19:08:28 +01:00
Chaoscaot b041a50abb Remove Unused Replace 2024-12-01 18:56:21 +01:00
Chaoscaot f01cb66874 Add CraftbukkitWrapper21 for FightSystem 2024-12-01 17:20:24 +01:00
Chaoscaot 47cca70d95 Fix Particle 2024-12-01 17:12:48 +01:00
Chaoscaot 37072b1f49 Fixes... 2024-12-01 17:06:35 +01:00
YoyoNow f1154f3ea5 Fix messages of LobbySystem NPC Chat 2024-12-01 13:17:57 +01:00
Chaoscaot 7927a195d6 Fix REntity for 1.15.2-1.21.3
<1.15.2: Untested
2024-12-01 11:39:23 +01:00
YoyoNow fd791ea98d Update AdventCommand 2024-12-01 00:13:08 +01:00
Chaoscaot 41233b7710 Merge branch 'main' into 1.21.3
# Conflicts:
#	SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditWrapper.java
2024-11-30 21:37:45 +01:00
Lixfel 2032a0b642 Fix links in chat not clickable 2024-11-30 10:31:49 +01:00
Lixfel 996e4932d7 Text 1.20 Tablist fix 2024-11-30 09:35:34 +01:00
YoyoNow bd08107701 Merge pull request 'Fix ConcurrentModificationException through death in loop' (#63) from TowerRun/fixCME into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/63
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-11-29 16:02:09 +01:00
Lixfel 4ee8456fd4 Fix ConcurrentModificationException through death in loop 2024-11-29 15:23:17 +01:00
Lixfel 8e2cca854e Fix JsonParser.readString unavailable in 1.15- 2024-11-29 14:59:53 +01:00
Lixfel 28f96e313a Fix bau addmember hover message 2024-11-29 14:09:32 +01:00
Lixfel f51de58921 Fix checking deleted schematic limbo 2024-11-29 13:17:52 +01:00
Lixfel 46c2de43a4 Fix clipboard WorldEditRenderer with transform 2024-11-29 13:02:35 +01:00
Chaoscaot e088e9794b Update WorldEditWrapper21 2024-11-28 23:28:44 +01:00
Lixfel 891f4b0e9c Fix Schematic submission in 1.12 2024-11-28 17:03:34 +01:00
Lixfel e71a704d25 Fix 1.9-1.12 WorldEditRenderer 2024-11-28 16:57:49 +01:00
Lixfel c34575df29 Merge pull request 'Replace WorldEditSUI' (#56) from SpigotCore/WorldEditSUI into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/56
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-11-28 09:58:03 +01:00
Chaoscaot edd3524b41 Fix Build 2024-11-27 22:51:49 +01:00
TheBreadBeard b3cd8d843f Add private ticket log 2024-11-27 19:34:19 +01:00
TheBreadBeard 3e270643e8 Add private ticket log 2024-11-27 19:18:41 +01:00
Chaoscaot 313d63e99d Bausystem geht™️ 2024-11-27 19:06:30 +01:00
Lixfel 8b007721fb Fix NPC Chat messages 2024-11-27 12:38:50 +01:00
Chaoscaot 510aec048b send help ._. 2024-11-27 00:26:06 +01:00
Lixfel 9911a52da9 Bugfixes, tested. 2024-11-26 21:59:52 +01:00
Chaoscaot d5c06688f0 Backend Fixes... 2024-11-26 16:34:24 +01:00
Chaoscaot d6202f9596 First 1.21.3 drafts 2024-11-26 16:30:24 +01:00
YoyoNow df37fa1564 Hotfix SendCommand sending on random servers 2024-11-25 17:07:16 +01:00
Lixfel 0ca3ede280 Replace WorldEditSUI 2024-11-24 23:26:18 +01:00
Chaoscaot 16a5de7a84 Fix Permissions 2024-11-24 23:14:10 +01:00
Chaoscaot 8bb2be52f2 Language Fixes 2024-11-24 22:38:01 +01:00
YoyoNow 06e0d3df74 Merge pull request 'Fixed tracer not being deleted' (#55) from BauSystem/fix-tracer-deletion into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/55
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-11-24 22:37:19 +01:00
D4rkr34lm 128d2d3378 Should fix traces not being deleted 2024-11-24 22:26:43 +01:00
Chaoscaot d30fb5f949 Merge remote-tracking branch 'origin/main' into TNTLeague/finish 2024-11-24 22:20:41 +01:00
Lixfel afadf0b9dd Wrap CheckpointUtils for OpenJDK support 2024-11-24 22:17:11 +01:00
Chaoscaot 5e74aaad2c Merge branch 'main' into TNTLeague/finish 2024-11-24 22:13:01 +01:00
Lixfel daa17c3e8b Wrap CheckpointUtils for OpenJDK support, remove Border debug messages 2024-11-24 22:12:43 +01:00
Chaoscaot ec990cb52a Remove Component Messages 2024-11-24 21:35:13 +01:00
Lixfel 7f640ebd34 Merge pull request 'Add 1.21 Scoreboard Support' (#54) from SpigotCore/1.21 into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/54
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-11-24 20:13:27 +01:00
Lixfel c15d523f3b Hotfix NodeDownload 2024-11-23 17:09:58 +01:00
Chaoscaot 97e4ccb076 Fixes 2024-11-23 15:43:05 +01:00
Lixfel c2cf6125d1 Merge pull request 'Add Backend to Monorepo' (#29) from Backend/init into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/29
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-11-23 15:37:27 +01:00
Chaoscaot 7437f87d22 Fixes 2024-11-23 15:36:34 +01:00
Chaoscaot 5a3d801714 Merge branch 'main' into Backend/init 2024-11-23 13:28:00 +01:00
Chaoscaot edbc43abf1 Hotfix: ModUtils Autoban 2024-11-18 18:07:53 +01:00
Chaoscaot 9415a3f217 Nits 2024-11-18 18:02:15 +01:00
Chaoscaot 4bb1bc0cbd Fixes, changes and Refactors 2024-11-17 12:04:07 +01:00
Chaoscaot 78853c70f8 Fixes and Update Copyright 2024-11-15 23:42:08 +01:00
Chaoscaot 5ac327409b Merge branch 'SpigotCore/1.21' into TNTLeague/finish 2024-11-15 23:13:44 +01:00
Chaoscaot 35ca8f3877 Add 1.21 Scoreboard Support 2024-11-15 22:06:10 +01:00
Chaoscaot 2e9dbfe8b8 Fixes... 2024-11-15 21:35:10 +01:00
Chaoscaot 27bd7be776 Fix Translations 2024-11-14 22:55:03 +01:00
Chaoscaot 9dff1f5884 Revert "Update Message"
This reverts commit ac9197c554.
2024-11-14 22:18:34 +01:00
Chaoscaot 26f15304a2 Merge branch 'KotlinCore/message-update' into TNTLeague/finish 2024-11-14 22:16:14 +01:00
Chaoscaot d115975403 Add ComponentMessage, for TranslatableComponents in Paper >1.20 2024-11-14 22:08:06 +01:00
Chaoscaot ac9197c554 Update Message 2024-11-14 19:31:17 +01:00
YoyoNow a78974b903 Merge pull request 'Add npc chat messages' (#41) from LobbySystem/NpcChatAdditions into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/41
2024-11-13 13:32:36 +01:00
YoyoNow 8c0a888b3d Remove PR issues 2024-11-13 13:32:05 +01:00
YoyoNow 597716569b Merge remote-tracking branch 'origin/main' 2024-11-12 16:10:50 +01:00
YoyoNow 0485713e86 Update GameStates
Fix FightserverPortal.fightStateMapper
2024-11-12 16:10:46 +01:00
Lixfel 85c8e2e56b Merge pull request 'Fix transitive dependencies for STRG+Click in Source code not jumping to Source code' (#50) from FixTransitiveDependencies into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/50
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-11-12 15:57:40 +01:00
YoyoNow 43618fc290 Fix transitive dependencies for STRG+Click in Source code not jumping to Source code 2024-11-12 15:41:48 +01:00
YoyoNow 07049c4646 Merge pull request 'Add FightInfoPacketSender for TowerRun' (#47) from TowerRun/FightInfoPacket into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/47
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-11-12 14:56:15 +01:00
YoyoNow 32afd1de8c Fix PR things 2024-11-11 15:05:08 +01:00
Lixfel af4a3eb2ed Fix empty discord messages 2024-11-11 09:29:12 +01:00
Lixfel fdd6d84b54 Fix mod name during kick/ban 2024-11-10 17:46:43 +01:00
Lixfel 8842d822d9 Merge pull request 'Changes to support AIs, Add DummyAI' (#31) from FightSystem/DummyAI into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/31
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-11-10 17:33:09 +01:00
Lixfel 1c7c57e10c Update JDA to 5.2.0 2024-11-10 17:30:38 +01:00
Lixfel 5e27f5c333 Merge pull request 'Fix TinyProtocol spurious ConcurrentModificationExceptions' (#24) from SpigotCore/TInyProtocolConcurrentModEx into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/24
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-11-10 17:29:21 +01:00
Chaoscaot 9d87ac6747 Merge branch 'main' into TNTLeague/finish 2024-11-10 16:47:14 +01:00
YoyoNow 6fea09fb9d Fix nit picks 2024-11-03 20:26:24 +01:00
YoyoNow 338f2e6ed1 Add FightInfoPacketSender for TowerRun 2024-11-03 11:57:37 +01:00
YoyoNow a9514996a9 Update Punishment requirements 2024-10-29 15:57:24 +01:00
YoyoNow 31bcefce8a Fix ProcessingTracesState performance 2024-10-04 20:01:47 +02:00
YoyoNow 11a933fede Improve PasteBuilder 2024-09-17 16:51:31 +02:00
YoyoNow dbe6d40e36 Merge pull request 'Fix Discord Ticket Log' (#43) from VelocityCore/jda-fix into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/43
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-09-17 07:55:54 +02:00
YoyoNow d4ba20ee37 Hotfix SimulatorStorage.openSimulatorSelector ordering 2024-09-16 20:40:11 +02:00
YoyoNow cb54591ad9 Merge pull request 'Add team changecolor command alias' (#42) from VelocityCore/TeamChangecolor into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/42
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-09-16 18:01:31 +02:00
YoyoNow 9dcd0cce43 Merge branch 'main' into VelocityCore/TeamChangecolor 2024-09-16 18:00:40 +02:00
Chaoscaot 35d812b280 Fix Discord Ticket Log 2024-09-03 00:34:07 +02:00
Chaoscaot a1e1396bdb Fix Discord Ticket Log 2024-08-31 20:17:02 +02:00
TheBreadBeard a64f6292e9 Add team changecolor command alias 2024-08-30 11:00:56 +02:00
YoyoNow 2142ed2f97 Hotfix DiscordBot 2024-08-30 08:41:37 +02:00
YoyoNow 6560562b05 Hotfix DiscordBot? 2024-08-30 08:39:57 +02:00
YoyoNow 6222f76417 Hotfix DiscordBot 2024-08-30 08:33:05 +02:00
YoyoNow 1f908134a1 Hotfix DiscordBot 2024-08-30 08:31:29 +02:00
TheBreadBeard 04d9f38f7d Add team changecolor command alias 2024-08-29 22:53:22 +02:00
TheBreadBeard 94502a1567 Add npc chat messages 2024-08-29 22:40:05 +02:00
Chaoscaot 4edc59ba66 Add translations 2024-08-29 22:33:54 +02:00
Lixfel 46ee20ad1b Merge pull request 'Add DiscordTicketType.SCHEMATIC' (#40) from VelocityCore/SchematicReportDiscord into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/40
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-29 22:19:25 +02:00
TheBreadBeard 52302dd284 Add DiscordTicketType.SCHEMATIC 2024-08-29 22:09:43 +02:00
Lixfel e1769a42f4 DummyAI only Test arenas 2024-08-29 13:58:27 +02:00
YoyoNow 1b10063e30 Merge pull request 'Add SimulatorCommand.rename' (#38) from BauSystem/SimulatorRename into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/38
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-29 12:55:43 +02:00
YoyoNow bd389a7a7e Merge remote-tracking branch 'origin/BauSystem/SimulatorRename' into BauSystem/SimulatorRename 2024-08-29 11:32:40 +02:00
YoyoNow ac25dea08a Fix PR stuff 2024-08-29 11:32:34 +02:00
YoyoNow e0d964bdd7 Merge pull request 'Fix Loader wait time to be 2 gameticks when 1 is selected' (#39) from BauSystem/LoaderWaitTime into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/39
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-29 10:12:22 +02:00
Chaoscaot c11eaaee45 Fixes... 2024-08-27 21:34:18 +02:00
YoyoNow baf837946e Merge pull request 'Fix output on to small/large speed value' (#37) from BauSystem/SpeedCommand into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/37
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-27 20:16:44 +02:00
YoyoNow 5f92d4c68c Fix Loader wait time to be 2 gameticks when 1 is selected 2024-08-27 20:16:30 +02:00
YoyoNow 6496f33a9e Fix argument name of rename command 2024-08-26 07:44:54 +02:00
YoyoNow 9e2f2748b6 BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/util/SpeedCommand.java aktualisiert 2024-08-26 07:42:47 +02:00
YoyoNow a25e55ffdf Fix Loader wait time to be 2 gameticks when 1 is selected 2024-08-25 15:49:21 +02:00
YoyoNow c8381413a3 Add SimulatorCommand.rename 2024-08-25 15:46:03 +02:00
YoyoNow c61c2d8087 Fix output on to small/large speed value 2024-08-25 15:34:07 +02:00
YoyoNow 18cb7157d7 Merge remote-tracking branch 'origin/main' 2024-08-25 08:04:28 +02:00
YoyoNow ea929e0615 Hotfix Laufbau BoundingBoxLoader 2024-08-25 08:04:22 +02:00
Lixfel 42dd4160ea Merge pull request 'Update to Discord JDA 5.0' (#22) from dc-5 into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/22
2024-08-23 11:41:40 +02:00
Chaoscaot cab12fca92 Merge branch 'main' into Backend/init 2024-08-23 11:40:04 +02:00
YoyoNow a75a1e8e10 Hotfix WorldEditSelectionSaver 2024-08-22 17:01:53 +02:00
Chaoscaot d5398cbde2 Remove redundant checks 2024-08-22 11:17:17 +02:00
Chaoscaot 12b16d6801 Merge branch 'main' into dc-5 2024-08-22 11:10:41 +02:00
Lixfel c5f40f0911 Merge pull request 'Add CRIUSleepEvent and CRIUWakeupEvent' (#34) from CRIUSupport/Events into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/34
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-22 10:55:33 +02:00
Lixfel 9b66df1e08 Merge pull request 'Fix WorldEditSelectionSaver finally' (#35) from BauSystem/SelectionSaverTheLast into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/35
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-22 10:40:37 +02:00
YoyoNow 20acd7abbe Fix WorldEditSelectionSaver finally 2024-08-21 21:15:00 +02:00
YoyoNow 49fa6c364f Hotfix WorldEditUtils.getVertices 2024-08-21 21:07:25 +02:00
YoyoNow 56cbb41930 Merge pull request 'Add WorldEditSelectionSaver' (#32) from BauSystem/WorldEditSelectionSaver into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/32
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-21 20:55:58 +02:00
YoyoNow fde70029c5 Fix WorldEditUtils.setVertices 2024-08-21 20:55:03 +02:00
YoyoNow 42fd35077b Fix PR stuff 2024-08-21 20:31:21 +02:00
YoyoNow 76aa61934c Add CRIUSleepEvent and CRIUWakeupEvent
Fix AFKStopperListener
2024-08-21 20:27:36 +02:00
YoyoNow f375aa68b5 Fix things 2024-08-21 18:26:33 +02:00
YoyoNow b2ff042e4a Merge pull request 'Fix SpecialItem.getRandomItem' (#33) from MissileWars/FixItemGive into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/33
Reviewed-by: Lixfel <lixfel@steamwar.de>
2024-08-21 18:21:28 +02:00
YoyoNow 6a2a3314c6 Fix SpecialItem.getRandomItem 2024-08-21 11:04:28 +02:00
YoyoNow 007f0796ae Add WorldEditSelectionSaver 2024-08-21 10:59:09 +02:00
Lixfel 9203e84d46 Merge pull request 'Fix Badlion restrictions' (#27) from VelocityCore/BadlionRestrictions into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/27
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-08-20 08:14:31 +02:00
Chaoscaot cca8bdaab7 Merge branch 'main' into Backend/init 2024-08-18 23:11:20 +02:00
YoyoNow 5e1338a9f3 Merge pull request 'fix(BauSystem): Fix trace serialisation (#7)' (#12) from wip/#7-fix-eof-in-trace-reader into main
Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/12
Reviewed-by: YoyoNow <jwsteam@nidido.de>
2024-08-18 21:00:57 +02:00
D4rkr34lm 50175b2518 Fixed access 2024-08-18 20:53:36 +02:00
Lixfel 09a8dc0786 Fix Badlion (tested), Fix Client channel registration and brand detection 2024-08-18 15:36:50 +02:00
Lixfel 5afdc04e1e Merge branch 'main' into VelocityCore/BadlionRestrictions 2024-08-18 14:40:22 +02:00
Chaoscaot 42254a5133 Fixes 2024-08-18 13:09:19 +02:00
Chaoscaot 6d648b9a71 Fixes 2024-08-18 13:03:24 +02:00
D4rkr34lm 67d4f3432a Changed trace record output to data output/input instead of object output/input 2024-08-18 12:23:05 +02:00
D4rkr34lm 3e6dd61428 Readd allArgs and history place holder 2024-08-18 12:08:57 +02:00
D4rkr34lm fbb6d84dae Moved trace system init to plugin enable 2024-08-18 11:53:14 +02:00
D4rkr34lm 44faab9950 Added all args through lombok 2024-08-18 11:45:38 +02:00
Chaoscaot f69f7ae294 Fix Build 2024-08-18 11:21:39 +02:00
D4rkr34lm a780385599 Removed debug statement 2024-08-18 11:19:35 +02:00
Chaoscaot fd7fe8c305 Add Backend to Monorepo 2024-08-18 11:15:54 +02:00
D4rkr34lm 817c522d9a Added flushing of trace write to prevent eof on read 2024-08-18 11:14:42 +02:00
Lixfel 4a2afee27d Fix Badlion restrictions (untested)
Fixes #dreamjxnas-bug-325.
2024-08-16 17:56:00 +02:00
D4rkr34lm 15654394b5 Fixed false record count being red 2024-08-16 17:36:43 +02:00
D4rkr34lm 25f6b3c223 Fixed trace record count in trace objects created through recording 2024-08-16 17:35:11 +02:00
D4rkr34lm 642e9ffd50 Fixed deletion of old traces 2024-08-16 17:18:02 +02:00
Lixfel 8bdb2bad14 Fix TinyProtocol spurious ConcurrentModificationExceptions 2024-08-13 19:37:37 +02:00
Chaoscaot 8b776ff33e Es baut... (Untested) 2024-08-12 17:15:38 +02:00
D4rkr34lm 963f798e7c Added removal of outdated save files and usage of safe file versioning 2024-08-08 16:01:35 +02:00
D4rkr34lm 0d2e028fac Moved init functionality in onEnable 2024-08-08 16:01:35 +02:00
D4rkr34lm ead144d974 Removed compression from TraceRecord serialisation 2024-08-08 16:01:35 +02:00
D4rkr34lm be848ac67a Improved trace serialisation through versioning 2024-08-08 16:01:35 +02:00
D4rkr34lm a9393f878f Extracted Trace Deserialisation/Serialisation process into Repo 2024-08-08 16:01:35 +02:00
D4rkr34lm 3b378977b7 removed vscode config from repo 2024-08-08 16:01:35 +02:00
D4rkr34lm 6c7b0f7bb5 Added workspace config for VsCode workspace 2024-08-08 16:01:35 +02:00
D4rkr34lm f4fef76562 Added VS Code configuration to gitignore 2024-08-08 16:01:35 +02:00
1551 changed files with 52256 additions and 26992 deletions
+11 -2
View File
@@ -8,8 +8,17 @@
steamwar.properties
# IntelliJ IDEA
.idea
*.iml
# VSCode
bin/
.vscode
.settings
# Other
lib
lib
/WebsiteBackend/data
/WebsiteBackend/logs
/WebsiteBackend/skins
/WebsiteBackend/config.json
/WebsiteBackend/sessions
+32
View File
@@ -0,0 +1,32 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
/AndroidProjectSystem.xml
/checkstyle-idea.xml
/compiler.xml
/copilot.data.migration.agent.xml
/copilot.data.migration.ask.xml
/copilot.data.migration.ask2agent.xml
/copilot.data.migration.edit.xml
/dataSources.xml
/encodings.xml
/git_toolbox_blame.xml
/git_toolbox_prj.xml
/gradle.xml
/jarRepositories.xml
/jpa.xml
/kotlinc.xml
/misc.xml
/modules.xml
/scala_compiler.xml
/swagger-settings.xml
/uiDesigner.xml
/vcs.xml
/codeStyles/
/inspectionProfiles/
/modules/
+7
View File
@@ -0,0 +1,7 @@
<component name="CopyrightManager">
<settings default="sw">
<module2copyright>
<element module="All" copyright="sw" />
</module2copyright>
</settings>
</component>
+6
View File
@@ -0,0 +1,6 @@
<component name="CopyrightManager">
<copyright>
<option name="notice" value=" This file is a part of the SteamWar software.&#10; &#10; Copyright (C) &amp;#36;today.year SteamWar.de-Serverteam&#10; &#10; This program is free software: you can redistribute it and/or modify&#10; it under the terms of the GNU Affero General Public License as published by&#10; the Free Software Foundation, either version 3 of the License, or&#10; (at your option) any later version.&#10; &#10; This program is distributed in the hope that it will be useful,&#10; but WITHOUT ANY WARRANTY; without even the implied warranty of&#10; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10; GNU Affero General Public License for more details.&#10; &#10; You should have received a copy of the GNU Affero General Public License&#10; along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;." />
<option name="myName" value="sw" />
</copyright>
</component>
+3 -3
View File
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -27,8 +27,8 @@ java {
}
dependencies {
compileOnly(project(":BauSystem:BauSystem_Main"))
compileOnly(project(":SpigotCore"))
compileOnly(project(":BauSystem:BauSystem_Main", "default"))
compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.nms15)
compileOnly(libs.worldedit15)
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
@@ -109,7 +109,7 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
@Override
public void setSelection(Player p, Point minPoint, Point maxPoint) {
WORLDEDIT_PLUGIN.getSession(p).setRegionSelector(BUKKITWORLD, new CuboidRegionSelector(BUKKITWORLD, toBlockVector3(minPoint), toBlockVector3(maxPoint)));
WORLDEDIT_PLUGIN.getSession(p).setRegionSelector(BUKKITWORLD, new CuboidRegionSelector(BUKKITWORLD, minPoint.toBlockVector3(), maxPoint.toBlockVector3()));
}
@Override
@@ -178,9 +178,9 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
pastePoint.set(v);
if (pasteBuilder.isReset()) {
e.setBlocks(new CuboidRegion(toBlockVector3(pasteBuilder.getMinPoint()), toBlockVector3(pasteBuilder.getMaxPoint())), Objects.requireNonNull(BlockTypes.AIR).getDefaultState().toBaseBlock());
e.setBlocks(new CuboidRegion(pasteBuilder.getMinPoint().toBlockVector3(), pasteBuilder.getMaxPoint().toBlockVector3()), Objects.requireNonNull(BlockTypes.AIR).getDefaultState().toBaseBlock());
if (pasteBuilder.getWaterLevel() != 0) {
e.setBlocks(new CuboidRegion(toBlockVector3(pasteBuilder.getMinPoint()), toBlockVector3(pasteBuilder.getMaxPoint()).withY(pasteBuilder.getWaterLevel())), Objects.requireNonNull(BlockTypes.WATER).getDefaultState().toBaseBlock());
e.setBlocks(new CuboidRegion(pasteBuilder.getMinPoint().toBlockVector3(), pasteBuilder.getMaxPoint().toBlockVector3().withY(pasteBuilder.getWaterLevel())), Objects.requireNonNull(BlockTypes.WATER).getDefaultState().toBaseBlock());
}
}
Operations.completeBlindly(ch.createPaste(e).to(v).ignoreAirBlocks(pasteBuilder.isIgnoreAir()).build());
@@ -193,7 +193,7 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
@Override
public Clipboard copy(Point minPoint, Point maxPoint, Point copyPoint) {
BukkitWorld bukkitWorld = new BukkitWorld(Bukkit.getWorlds().get(0));
CuboidRegion region = new CuboidRegion(bukkitWorld, toBlockVector3(minPoint), toBlockVector3(maxPoint));
CuboidRegion region = new CuboidRegion(bukkitWorld, minPoint.toBlockVector3(), maxPoint.toBlockVector3());
BlockArrayClipboard clipboard = new BlockArrayClipboard(region);
try (EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(bukkitWorld, -1)) {
ForwardExtentCopy copy = new ForwardExtentCopy(
@@ -204,7 +204,7 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
copy.setCopyingBiomes(false);
Operations.complete(copy);
clipboard.setOrigin(toBlockVector3(copyPoint));
clipboard.setOrigin(copyPoint.toBlockVector3());
return clipboard;
} catch (WorldEditException e) {
Bukkit.getLogger().log(Level.SEVERE, e.getMessage(), e);
@@ -224,10 +224,6 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
}
}
private BlockVector3 toBlockVector3(Point point) {
return BlockVector3.at(point.getX(), point.getY(), point.getZ());
}
@Override
public boolean inWater(org.bukkit.World world, Vector tntPosition) {
Block block = world.getBlockAt(tntPosition.getBlockX(), tntPosition.getBlockY(), tntPosition.getBlockZ());
@@ -1,45 +1,39 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import de.steamwar.bausystem.features.util.NoClipCommand;
import net.minecraft.server.v1_15_R1.*;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.List;
import java.util.function.LongSupplier;
public class NMSWrapper15 implements NMSWrapper {
private static final Reflection.FieldAccessor<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
private static final Reflection.Field<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
@Override
@SuppressWarnings("deprecation")
@@ -63,7 +57,7 @@ public class NMSWrapper15 implements NMSWrapper {
player.updateInventory();
}
private static final Reflection.FieldAccessor<Integer> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, int.class, 0);
private static final Reflection.Field<Integer> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, int.class, 0);
@Override
public void setGameStateChangeReason(Object packet) {
@@ -120,12 +114,12 @@ public class NMSWrapper15 implements NMSWrapper {
return invalid;
}
private final Class<?> explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion");
private final Reflection.FieldAccessor<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.FieldAccessor<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.FieldAccessor<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.FieldAccessor<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.FieldAccessor<List> e = Reflection.getField(explosionPacket, List.class, 0);
private final Class<?> explosionPacket = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundExplodePacket");
private final Reflection.Field<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.Field<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.Field<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.Field<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.Field<List> e = Reflection.getField(explosionPacket, List.class, 0);
@Override
public Object resetExplosionKnockback(Object packet) {
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -1,30 +1,27 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.bausystem.utils.PlayerMovementWrapper;
import de.steamwar.Reflection;
import net.minecraft.server.v1_15_R1.EntityPlayer;
import net.minecraft.server.v1_15_R1.PacketPlayInFlying;
import net.minecraft.server.v1_15_R1.PacketPlayOutEntity;
import net.minecraft.server.v1_15_R1.PacketPlayOutEntityTeleport;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
@@ -46,14 +43,9 @@ public class PlayerMovementWrapper15 implements PlayerMovementWrapper {
PacketPlayInFlying packetPlayInFlying = ((PacketPlayInFlying) object);
Object packet = Reflection.newInstance(teleportPacket);
teleportEntity.set(packet, player.getEntityId());
teleportPosition.set(packet, packetPlayInFlying.a(0.0), packetPlayInFlying.b(0.0), packetPlayInFlying.c(0.0));
if (Float.isNaN(packetPlayInFlying.a(Float.NaN))) {
teleportYaw.set(packet, rotToByte(player.getLocation().getYaw()));
teleportPitch.set(packet, rotToByte(player.getLocation().getPitch()));
} else {
teleportYaw.set(packet, rotToByte(packetPlayInFlying.a(0.0F)));
teleportPitch.set(packet, rotToByte(packetPlayInFlying.b(0.0F)));
}
teleportPosition.set(packet, packetPlayInFlying.a(0.0), packetPlayInFlying.b(0.0), packetPlayInFlying.c(0.0),
Float.isNaN(packetPlayInFlying.a(Float.NaN)) ? player.getLocation().getYaw() : packetPlayInFlying.a(0.0F),
Float.isNaN(packetPlayInFlying.b(Float.NaN)) ? player.getLocation().getPitch() : packetPlayInFlying.b(0.0F));
return packet;
}
}
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -0,0 +1,140 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.utils.bossbar.BossBarService;
import de.steamwar.bausystem.utils.tps.TPSFreezeUtils;
import de.steamwar.bausystem.utils.tps.TPSLimitUtils;
import de.steamwar.core.TPSWarpUtils;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class TickManager15 implements TickManager, Listener {
private static float currentTPSLimit = 20;
private boolean currentlyStepping = false;
private float currentLimit;
private int stepsTotal;
private int stepsLeft;
@Override
public boolean canFreeze() {
return TPSFreezeUtils.isCanFreeze();
}
@Override
public void setTickRate(float tickRate) {
if (currentlyStepping) {
currentlyStepping = false;
Bukkit.getOnlinePlayers().forEach(player -> {
BossBarService.instance.remove(player, Region.getGlobalRegion(), "TickStep");
});
}
TPSWarpUtils.warp(tickRate);
if (currentTPSLimit == 0 && tickRate != 0) {
TPSFreezeUtils.unfreeze();
}
currentTPSLimit = tickRate;
if (tickRate == 0) {
TPSLimitUtils.unlimit();
TPSFreezeUtils.freeze();
} else if (tickRate < 20.0) {
TPSLimitUtils.limit(tickRate);
} else if (tickRate >= 20) {
TPSLimitUtils.unlimit();
}
}
@Override
public boolean isFrozen() {
return TPSFreezeUtils.frozen();
}
@Override
public void setFreeze(boolean freeze) {
if (freeze) {
setTickRate(0);
}
}
@Override
public void stepTicks(int ticks) {
currentLimit = 0;
setTickRate(20);
stepsLeft = ticks;
stepsTotal = ticks;
currentlyStepping = true;
}
@Override
public void sprintTicks(int ticks) {
currentLimit = currentTPSLimit;
setTickRate(4000);
stepsLeft = ticks;
stepsTotal = ticks;
currentlyStepping = true;
}
@Override
public boolean isSprinting() {
return currentlyStepping && currentTPSLimit > 20;
}
@Override
public boolean isStepping() {
return currentlyStepping && currentTPSLimit <= 20;
}
@Override
public float getTickRate() {
return currentTPSLimit;
}
@Override
public void setBlockTpsPacket(boolean block) {
}
@Override
public long getTotalTicks() {
return stepsTotal;
}
@Override
public long getDoneTicks() {
return stepsTotal - stepsLeft;
}
@Override
public long getRemainingTicks() {
return stepsLeft;
}
@EventHandler
public void onTickEnd(TickEndEvent event) {
if (!currentlyStepping) return;
stepsLeft--;
if (stepsLeft <= 0) {
setTickRate(currentLimit);
}
}
}
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.tpslimit;
package de.steamwar.bausystem.utils.tps;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.core.BountifulWrapper;
import de.steamwar.core.ChatWrapper;
@@ -45,18 +45,18 @@ class PacketCache {
private static Set<Entity> entities = new HashSet<>();
private static BukkitTask task = null;
private static Class<?> vec3dClass = Reflection.getClass("{nms.world.phys}.Vec3D");
private static Reflection.FieldAccessor<Object> zeroVec3d = (Reflection.FieldAccessor<Object>) Reflection.getField(vec3dClass, vec3dClass, 0);
private static Class<?> vec3dClass = Reflection.getClass("net.minecraft.world.phys.Vec3");
private static Reflection.Field<Object> zeroVec3d = (Reflection.Field<Object>) Reflection.getField(vec3dClass, vec3dClass, 0);
private static Object ZERO_VEC3D = zeroVec3d.get(null);
private static Class<?> velocityPacketClass = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityVelocity");
private static Reflection.ConstructorInvoker velocityPacketConstructor = Reflection.getConstructor(velocityPacketClass, int.class, vec3dClass);
private static Class<?> velocityPacketClass = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket");
private static Reflection.Constructor velocityPacketConstructor = Reflection.getConstructor(velocityPacketClass, int.class, vec3dClass);
private static Class<?> teleportPacketClass = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityTeleport");
private static Class<?> entityClass = Reflection.getClass("{nms.world.entity}.Entity");
private static Reflection.ConstructorInvoker teleportPacketConstructor = Reflection.getConstructor(teleportPacketClass, entityClass);
private static Class<?> teleportPacketClass = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundTeleportEntityPacket");
private static Class<?> entityClass = Reflection.getClass("net.minecraft.world.entity.Entity");
private static Reflection.Constructor teleportPacketConstructor = Reflection.getConstructor(teleportPacketClass, entityClass);
private static Class<?> craftEntityClass = Reflection.getClass("{obc}.entity.CraftEntity");
private static Reflection.MethodInvoker getHandle = Reflection.getMethod(craftEntityClass, "getHandle");
private static Class<?> craftEntityClass = Reflection.getClass("org.bukkit.craftbukkit.entity.CraftEntity");
private static Reflection.Method getHandle = Reflection.getMethod(craftEntityClass, "getHandle");
private static Object noGravityDataWatcher = BountifulWrapper.impl.getDataWatcherObject(5, Boolean.class);
private static Object fuseDataWatcher = BountifulWrapper.impl.getDataWatcherObject(8, Integer.class);
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.tpslimit;
package de.steamwar.bausystem.utils.tps;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import lombok.Getter;
import lombok.experimental.UtilityClass;
import org.bukkit.Bukkit;
@@ -28,11 +28,11 @@ import org.bukkit.World;
@UtilityClass
public class TPSFreezeUtils {
private static Reflection.FieldAccessor<Boolean> fieldAccessor;
private static Reflection.Field<Boolean> fieldAccessor;
@Getter
private static final boolean canFreeze;
private static final Reflection.MethodInvoker getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", null);
private static final Reflection.Method getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("org.bukkit.craftbukkit.CraftWorld"), "getHandle", null);
@Getter
private static boolean frozen = false;
@@ -40,9 +40,9 @@ public class TPSFreezeUtils {
private static final World world = Bukkit.getWorlds().get(0);
static {
Reflection.FieldAccessor<Boolean> fieldAccessor;
Reflection.Field<Boolean> fieldAccessor;
try {
fieldAccessor = Reflection.getField(Reflection.getClass("{nms.server.level}.WorldServer"), "freezed", boolean.class);
fieldAccessor = Reflection.getField(Reflection.getClass("net.minecraft.server.level.ServerLevel"), "freezed", boolean.class);
} catch (IllegalArgumentException e) {
fieldAccessor = null;
}
@@ -1,33 +1,30 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2020 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.tpslimit;
package de.steamwar.bausystem.utils.tps;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.bausystem.SWUtils;
import de.steamwar.bausystem.utils.PlayerMovementWrapper;
import de.steamwar.core.Core;
import de.steamwar.core.TPSWatcher;
import lombok.experimental.UtilityClass;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitTask;
@@ -104,8 +101,8 @@ public class TPSLimitUtils {
}
*/
private static final Class<?> position = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInFlying$PacketPlayInPosition");
private static final Class<?> positionLook = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInFlying$PacketPlayInPositionLook");
private static final Class<?> position = Reflection.getClass("net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$Pos");
private static final Class<?> positionLook = Reflection.getClass("net.minecraft.network.protocol.game.ServerboundMovePlayerPacket$PosRot");
static {
BiFunction<Player, Object, Object> positionSetter = (player, o) -> {
if (tpsLimiter != null) {
+3 -3
View File
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -27,8 +27,8 @@ java {
}
dependencies {
compileOnly(project(":BauSystem:BauSystem_Main"))
compileOnly(project(":SpigotCore"))
compileOnly(project(":BauSystem:BauSystem_Main", "default"))
compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.spigotapi)
compileOnly(libs.nms18)
@@ -1,54 +1,44 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.Reflection;
import de.steamwar.bausystem.features.util.NoClipCommand;
import net.minecraft.SystemUtils;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.*;
import net.minecraft.server.level.PlayerInteractManager;
import net.minecraft.world.level.EnumGamemode;
import net.minecraft.world.phys.Vec3D;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.List;
import java.util.function.LongSupplier;
public class NMSWrapper18 implements NMSWrapper {
private static final Reflection.FieldAccessor<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
private static final Reflection.Field<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
@Override
@SuppressWarnings("deprecation")
@@ -73,7 +63,7 @@ public class NMSWrapper18 implements NMSWrapper {
player.updateInventory();
}
private static final Reflection.FieldAccessor<PacketPlayOutGameStateChange.a> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12);
private static final Reflection.Field<PacketPlayOutGameStateChange.a> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12);
@Override
public void setGameStateChangeReason(Object packet) {
@@ -130,12 +120,12 @@ public class NMSWrapper18 implements NMSWrapper {
return invalid;
}
private final Class<?> explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion");
private final Reflection.FieldAccessor<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.FieldAccessor<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.FieldAccessor<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.FieldAccessor<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.FieldAccessor<List> e = Reflection.getField(explosionPacket, List.class, 0);
private final Class<?> explosionPacket = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundExplodePacket");
private final Reflection.Field<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.Field<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.Field<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.Field<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.Field<List> e = Reflection.getField(explosionPacket, List.class, 0);
@Override
public Object resetExplosionKnockback(Object packet) {
@@ -1,26 +1,25 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.bausystem.utils.PlayerMovementWrapper;
import de.steamwar.Reflection;
import net.minecraft.network.protocol.game.PacketPlayInFlying;
import net.minecraft.server.level.EntityPlayer;
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer;
@@ -44,14 +43,9 @@ public class PlayerMovementWrapper18 implements PlayerMovementWrapper {
PacketPlayInFlying packetPlayInFlying = ((PacketPlayInFlying) object);
Object packet = Reflection.newInstance(teleportPacket);
teleportEntity.set(packet, player.getEntityId());
teleportPosition.set(packet, packetPlayInFlying.a, packetPlayInFlying.b, packetPlayInFlying.c);
if (packetPlayInFlying.h) {
teleportYaw.set(packet, rotToByte(player.getLocation().getYaw()));
teleportPitch.set(packet, rotToByte(player.getLocation().getPitch()));
} else {
teleportYaw.set(packet, rotToByte(packetPlayInFlying.d));
teleportPitch.set(packet, rotToByte(packetPlayInFlying.e));
}
teleportPosition.set(packet, packetPlayInFlying.a, packetPlayInFlying.b, packetPlayInFlying.c,
packetPlayInFlying.h ? player.getLocation().getYaw() : packetPlayInFlying.d,
packetPlayInFlying.h ? player.getLocation().getPitch() : packetPlayInFlying.e);
return packet;
}
}
+3 -3
View File
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -27,8 +27,8 @@ java {
}
dependencies {
compileOnly(project(":BauSystem:BauSystem_Main"))
compileOnly(project(":SpigotCore"))
compileOnly(project(":BauSystem:BauSystem_Main", "default"))
compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.spigotapi)
compileOnly(libs.paperapi)
@@ -1,55 +1,44 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.Reflection;
import de.steamwar.bausystem.features.util.NoClipCommand;
import net.minecraft.SystemUtils;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.*;
import net.minecraft.network.syncher.DataWatcher;
import net.minecraft.server.level.PlayerInteractManager;
import net.minecraft.world.level.EnumGamemode;
import net.minecraft.world.phys.Vec3D;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.List;
import java.util.function.LongSupplier;
public class NMSWrapper19 implements NMSWrapper {
private static final Reflection.FieldAccessor<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
private static final Reflection.Field<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
@Override
@SuppressWarnings("deprecation")
@@ -73,7 +62,7 @@ public class NMSWrapper19 implements NMSWrapper {
player.updateInventory();
}
private static final Reflection.FieldAccessor<PacketPlayOutGameStateChange.a> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12);
private static final Reflection.Field<PacketPlayOutGameStateChange.a> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12);
@Override
public void setGameStateChangeReason(Object packet) {
@@ -130,12 +119,12 @@ public class NMSWrapper19 implements NMSWrapper {
return invalid;
}
private final Class<?> explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion");
private final Reflection.FieldAccessor<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.FieldAccessor<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.FieldAccessor<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.FieldAccessor<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.FieldAccessor<List> e = Reflection.getField(explosionPacket, List.class, 0);
private final Class<?> explosionPacket = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundExplodePacket");
private final Reflection.Field<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.Field<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.Field<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.Field<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.Field<List> e = Reflection.getField(explosionPacket, List.class, 0);
@Override
public Object resetExplosionKnockback(Object packet) {
@@ -1,35 +1,30 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import net.minecraft.network.protocol.game.PacketPlayInFlying;
import net.minecraft.server.level.EntityPlayer;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class PlayerMovementWrapper19 implements PlayerMovementWrapper {
@Override
@@ -48,14 +43,9 @@ public class PlayerMovementWrapper19 implements PlayerMovementWrapper {
PacketPlayInFlying packetPlayInFlying = ((PacketPlayInFlying) object);
Object packet = Reflection.newInstance(teleportPacket);
teleportEntity.set(packet, player.getEntityId());
teleportPosition.set(packet, packetPlayInFlying.a, packetPlayInFlying.b, packetPlayInFlying.c);
if (packetPlayInFlying.h) {
teleportYaw.set(packet, rotToByte(player.getLocation().getYaw()));
teleportPitch.set(packet, rotToByte(player.getLocation().getPitch()));
} else {
teleportYaw.set(packet, rotToByte(packetPlayInFlying.d));
teleportPitch.set(packet, rotToByte(packetPlayInFlying.e));
}
teleportPosition.set(packet, packetPlayInFlying.a, packetPlayInFlying.b, packetPlayInFlying.c,
packetPlayInFlying.h ? player.getLocation().getYaw() : packetPlayInFlying.d,
packetPlayInFlying.h ? player.getLocation().getPitch() : packetPlayInFlying.e);
return packet;
}
}
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -22,7 +22,6 @@ package de.steamwar.bausystem.utils;
import com.destroystokyo.paper.event.server.ServerTickEndEvent;
import com.destroystokyo.paper.event.server.ServerTickStartEvent;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.features.tpslimit.TPSFreezeUtils;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@@ -37,7 +36,7 @@ public class TickListener19 implements TickListener, Listener {
@EventHandler
public void onServerTickStart(ServerTickStartEvent event) {
if (TPSFreezeUtils.isFrozen()) return;
if (TickManager.impl.isFrozen()) return;
Bukkit.getPluginManager().callEvent(new TickStartEvent());
tickStartRan = true;
}
+3 -3
View File
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -27,8 +27,8 @@ java {
}
dependencies {
compileOnly(project(":BauSystem:BauSystem_Main"))
compileOnly(project(":SpigotCore"))
compileOnly(project(":BauSystem:BauSystem_Main", "default"))
compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.spigotapi)
@@ -1,25 +1,25 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import de.steamwar.bausystem.features.util.NoClipCommand;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
@@ -40,7 +40,7 @@ import java.util.List;
public class NMSWrapper20 implements NMSWrapper {
private static final Reflection.FieldAccessor<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
private static final Reflection.Field<EnumGamemode> playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0);
@Override
@SuppressWarnings("deprecation")
@@ -64,7 +64,7 @@ public class NMSWrapper20 implements NMSWrapper {
player.updateInventory();
}
private static final Reflection.FieldAccessor<PacketPlayOutGameStateChange.a> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12);
private static final Reflection.Field<PacketPlayOutGameStateChange.a> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12);
@Override
public void setGameStateChangeReason(Object packet) {
@@ -121,12 +121,12 @@ public class NMSWrapper20 implements NMSWrapper {
return invalid;
}
private final Class<?> explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion");
private final Reflection.FieldAccessor<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.FieldAccessor<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.FieldAccessor<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.FieldAccessor<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.FieldAccessor<List> e = Reflection.getField(explosionPacket, List.class, 0);
private final Class<?> explosionPacket = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundExplodePacket");
private final Reflection.Field<Double> a = Reflection.getField(explosionPacket, double.class, 0);
private final Reflection.Field<Double> b = Reflection.getField(explosionPacket, double.class, 1);
private final Reflection.Field<Double> c = Reflection.getField(explosionPacket, double.class, 2);
private final Reflection.Field<Float> d = Reflection.getField(explosionPacket, float.class, 0);
private final Reflection.Field<List> e = Reflection.getField(explosionPacket, List.class, 0);
@Override
public Object resetExplosionKnockback(Object packet) {
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -1,36 +1,30 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.Reflection;
import de.steamwar.Reflection;
import net.minecraft.network.protocol.game.PacketPlayInFlying;
import net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport;
import net.minecraft.server.level.EntityPlayer;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class PlayerMovementWrapper20 implements PlayerMovementWrapper {
@Override
@@ -49,14 +43,9 @@ public class PlayerMovementWrapper20 implements PlayerMovementWrapper {
PacketPlayInFlying packetPlayInFlying = ((PacketPlayInFlying) object);
Object packet = Reflection.newInstance(teleportPacket);
teleportEntity.set(packet, player.getEntityId());
teleportPosition.set(packet, packetPlayInFlying.a, packetPlayInFlying.b, packetPlayInFlying.c);
if (packetPlayInFlying.h) {
teleportYaw.set(packet, rotToByte(player.getLocation().getYaw()));
teleportPitch.set(packet, rotToByte(player.getLocation().getPitch()));
} else {
teleportYaw.set(packet, rotToByte(packetPlayInFlying.d));
teleportPitch.set(packet, rotToByte(packetPlayInFlying.e));
}
teleportPosition.set(packet, packetPlayInFlying.a, packetPlayInFlying.b, packetPlayInFlying.c,
packetPlayInFlying.h ? player.getLocation().getYaw() : packetPlayInFlying.d,
packetPlayInFlying.h ? player.getLocation().getPitch() : packetPlayInFlying.e);
return packet;
}
}
+36
View File
@@ -0,0 +1,36 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
steamwar.java
}
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
dependencies {
compileOnly(project(":BauSystem:BauSystem_Main", "default"))
compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.paperapi21)
compileOnly(libs.nms21)
}
@@ -0,0 +1,133 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import de.steamwar.Reflection;
import de.steamwar.bausystem.features.util.NoClipCommand;
import io.papermc.paper.datacomponent.DataComponentTypes;
import io.papermc.paper.datacomponent.item.ItemContainerContents;
import net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket;
import net.minecraft.network.protocol.game.ClientboundExplodePacket;
import net.minecraft.network.protocol.game.ClientboundGameEventPacket;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.level.ServerPlayerGameMode;
import net.minecraft.world.entity.player.Abilities;
import net.minecraft.world.level.GameType;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.List;
import java.util.Optional;
public class NMSWrapper21 implements NMSWrapper {
private static final Reflection.Field<ServerPlayerGameMode> playerInteractManager = Reflection.getField(ServerPlayer.class, null, ServerPlayerGameMode.class);
private static final Reflection.Field<GameType> playerGameMode = Reflection.getField(ServerPlayerGameMode.class, GameType.class, 0);
@Override
public void setInternalGameMode(Player player, GameMode gameMode) {
playerGameMode.set(playerInteractManager.get(((CraftPlayer) player).getHandle()), GameType.byId(gameMode.getValue()));
}
@Override
public void setSlotToItemStack(Player player, Object o) {
ClientboundContainerSetSlotPacket packetPlayInSetCreativeSlot = (ClientboundContainerSetSlotPacket) o;
int index = packetPlayInSetCreativeSlot.getSlot();
if (index >= 36 && index <= 44) {
index -= 36;
} else if (index > 44) {
index -= 5;
} else if (index <= 8) {
index = index - 8 + 36;
}
player.getInventory().setItem(index, CraftItemStack.asBukkitCopy(packetPlayInSetCreativeSlot.getItem()));
if (index < 9) player.getInventory().setHeldItemSlot(index);
player.updateInventory();
}
private static final Reflection.Field<ClientboundGameEventPacket.Type> gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, ClientboundGameEventPacket.Type.class, 14);
@Override
public void setGameStateChangeReason(Object packet) {
gameStateChangeReason.set(packet, ClientboundGameEventPacket.CHANGE_GAME_MODE);
}
@Override
public void setPlayerBuildAbilities(Player player) {
Abilities abilities = (((CraftPlayer) player).getHandle()).getAbilities();
abilities.mayBuild = true;
abilities.mayfly = true;
}
@Override
public Material pathMaterial() {
return Material.DIRT_PATH;
}
private static final int threshold = 2048;
@Override
public boolean checkItemStack(ItemStack item) {
ItemContainerContents data = item.getData(DataComponentTypes.CONTAINER);
if (data == null) {
return false;
}
return drillDown(data.contents(), 0, 0) > threshold;
}
private int drillDown(List<ItemStack> items, int layer, int start) {
if (layer > 2) return start + threshold;
int invalid = start;
for (int i = start; i < items.size(); i++) {
ItemStack item = items.get(i);
if (item.isEmpty()) continue;
invalid += item.getAmount();
ItemContainerContents data = item.getData(DataComponentTypes.CONTAINER);
if (data == null) {
continue;
}
List<ItemStack> subItems = data.contents();
if (subItems.size() > 1) {
invalid = drillDown(subItems, layer + 1, invalid);
}
}
return invalid;
}
@Override
public Object resetExplosionKnockback(Object packet) {
ClientboundExplodePacket explosion = (ClientboundExplodePacket) packet;
return new ClientboundExplodePacket(
explosion.center(),
Optional.empty(),
explosion.explosionParticle(),
explosion.explosionSound()
);
}
}
@@ -0,0 +1,46 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket;
import net.minecraft.server.level.ServerPlayer;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class PlayerMovementWrapper21 implements PlayerMovementWrapper {
@Override
public void setPosition(Player player, Object object) {
ServerboundMovePlayerPacket packetPlayInFlying = ((ServerboundMovePlayerPacket) object);
ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle();
if (packetPlayInFlying.hasPos) {
serverPlayer.setPosRaw(packetPlayInFlying.x, packetPlayInFlying.y, packetPlayInFlying.z);
}
if (packetPlayInFlying.hasRot) {
serverPlayer.setXRot(packetPlayInFlying.xRot);
serverPlayer.setYRot(packetPlayInFlying.yRot);
}
}
@Override
public Object convertToOut(Player player, Object object) {
return object;
}
}
@@ -0,0 +1,149 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.utils;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.Reflection;
import de.steamwar.bausystem.BauSystem;
import net.minecraft.network.protocol.game.ClientboundTickingStatePacket;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.ServerTickRateManager;
import net.minecraft.world.TickRateManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
public class TickManager21 implements TickManager {
private static final ServerTickRateManager manager = MinecraftServer.getServer().tickRateManager();
private static final Reflection.Field<Integer> frozenTicksToRun = Reflection.getField(TickRateManager.class, int.class, 0);
private static final Reflection.Field<Long> remainingSprintTicks = Reflection.getField(ServerTickRateManager.class, long.class, 0);
private boolean blockTpsPacket = true;
private int totalSteps;
public TickManager21() {
TinyProtocol.instance.addFilter(ClientboundTickingStatePacket.class, this::blockPacket);
}
private Object blockPacket(Player player, Object packet) {
if (blockTpsPacket) {
return new ClientboundTickingStatePacket(20, manager.isFrozen());
} else {
return packet;
}
}
@Override
public boolean canFreeze() {
return true;
}
@Override
public void setBlockTpsPacket(boolean block) {
blockTpsPacket = block;
if (blockTpsPacket) {
ClientboundTickingStatePacket packet = new ClientboundTickingStatePacket(20, manager.isFrozen());
Bukkit.getOnlinePlayers().forEach(player -> TinyProtocol.instance.sendPacket(player, packet));
} else {
ClientboundTickingStatePacket packet = new ClientboundTickingStatePacket(manager.tickrate(), manager.isFrozen());
Bukkit.getOnlinePlayers().forEach(player -> TinyProtocol.instance.sendPacket(player, packet));
}
}
@Override
public void setTickRate(float tickRate) {
if (isFrozen()) {
setFreeze(false);
}
manager.setTickRate(tickRate);
}
@Override
public boolean isFrozen() {
return manager.isFrozen();
}
@Override
public void setFreeze(boolean freeze) {
manager.setFrozen(freeze);
}
@Override
public void stepTicks(int ticks) {
if (manager.isSprinting()) {
manager.stopSprinting();
} else if (manager.isSteppingForward()) {
manager.stopStepping();
}
this.totalSteps = ticks;
manager.setFrozen(true);
manager.stepGameIfPaused(ticks);
manager.setFrozen(false);
Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), (bukkitTask) -> {
if (manager.isSteppingForward()) return;
manager.setFrozen(true);
bukkitTask.cancel();
}, 1, 1);
}
@Override
public void sprintTicks(int ticks) {
if (manager.isSteppingForward()) {
manager.stopStepping();
} else if (manager.isSprinting()) {
manager.stopSprinting();
}
this.totalSteps = ticks;
manager.requestGameToSprint(ticks, true);
}
@Override
public boolean isSprinting() {
return manager.isSprinting();
}
@Override
public boolean isStepping() {
return manager.isSteppingForward();
}
@Override
public float getTickRate() {
return manager.tickrate();
}
@Override
public long getRemainingTicks() {
if (isSprinting()) {
return remainingSprintTicks.get(manager);
} else {
return frozenTicksToRun.get(manager);
}
}
@Override
public long getDoneTicks() {
return totalSteps - getRemainingTicks();
}
@Override
public long getTotalTicks() {
return totalSteps;
}
}
+2 -4
View File
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -33,14 +33,12 @@ java {
dependencies {
compileOnly(libs.classindex)
annotationProcessor(libs.classindex)
compileOnly(project(":SpigotCore"))
compileOnly(project(":SpigotCore", "default"))
compileOnly(libs.spigotapi)
compileOnly(libs.axiom)
compileOnly(libs.authlib)
compileOnly(libs.viaapi)
compileOnly(libs.nms20)
compileOnly(libs.fawe18)
implementation(libs.luaj)
@@ -1,20 +1,20 @@
#
# This file is a part of the SteamWar software.
# This file is a part of the SteamWar software.
#
# Copyright (C) 2021 SteamWar.de-Serverteam
# Copyright (C) 2025 SteamWar.de-Serverteam
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
PREFIX=§eBau§8System§8»
TIME=HH:mm:ss
@@ -25,7 +25,7 @@ PAGE_LIST=§e Page ({0}/{1}) »»
LIST_PREVIOUS_PAGE=§ePrevious page
LIST_NEXT_PAGE=§eNext page
# Permissions
NO_PERMISSION=You are not allowed to use that here
NO_PERMISSION=§7You are not allowed to use that here
SPECTATOR=§fSpectator
# Scoreboard
SCOREBOARD_TIME=Time
@@ -38,6 +38,7 @@ SCOREBOARD_TRACE_TICKS=Ticks
SCOREBOARD_TECHHIDER=TechHider§8: §aOn
SCOREBOARD_XRAY=XRay§8: §aOn
SCOREBOARD_LOCK_TEAM=Bau Lock§8: §eTeam
SCOREBOARD_LOCK_SUPERVISOR=Bau Lock§8: §eSupervisor
SCOREBOARD_LOCK_TEAM_AND_SERVERTEAM=Bau Lock§8: §e(Server) Team
SCOREBOARD_LOCK_SERVERTEAM=Bau Lock§8: §eServer Team
SCOREBOARD_LOCK_NOBODY=Bau Lock§8: §cNobody
@@ -51,6 +52,9 @@ FLAG_ITEMS=Items
FLAG_NO_GRAVITY = No Gravity
FLAG_TESTBLOCK=Testblock
FLAG_CHANGED=Changed
FLAG_WATER_DESTROY=Water Destroy
FLAG_WATER_DESTROY_ALLOW=§coff
FLAG_WATER_DESTROY_DENY=§aon
FLAG_FIRE_ALLOW=§con
FLAG_FIRE_DENY=§aoff
FLAG_FREEZE_ACTIVE=§aon
@@ -136,7 +140,10 @@ BAU_INFO_ITEM_LORE_FIRE=§7Fire§8: §e{0}
BAU_INFO_ITEM_LORE_COLOR=§7Color§8: §e{0}
BAU_INFO_ITEM_LORE_PROTECT=§7Protect§8: §e{0}
BAU_INFO_ITEM_LORE_ITEMS=§7Items§8: §e{0}
BAU_INFO_ITEM_LORE_NO_GRAVITY = §8NoGravity§8: §e{0}
BAU_INFO_ITEM_LORE_NO_GRAVITY = §7NoGravity§8: §e{0}
BAU_INFO_ITEM_LORE_TESTBLOCK=§7Testblock§8: §e{0}
BAU_INFO_ITEM_LORE_CHANGED=§7Changed§8: §e{0}
BAU_INFO_ITEM_LORE_WATER_DESTROY=§7Water Destroy§8: §e{0}
BAU_INFO_COMMAND_HELP=§8/§ebauinfo §8- §7Information regarding this build server
BAU_INFO_COMMAND_OWNER=§7Owner§8: §e{0}
BAU_INFO_COMMAND_MEMBER=§7{0} §8[§7{1}§8]§8: §e{2}
@@ -271,6 +278,7 @@ SIMULATOR_CHANGE_HELP=§8/§esimulator change §8-§7 Change your simulator wand
SIMULATOR_DELETE_HELP=§8/§esimulator delete §8[§7name§8] §8-§7 Deletes the simulator
SIMULATOR_START_HELP=§8/§esimulator start §8[§7name§8] §8-§7 Starts the simulator
SIMULATOR_COPY_HELP=§8/§esimulator copy §8[§7to-copy§8] §8[§7name§8] §8-§7 Copy the simulator
SIMULATOR_RENAME_HELP=§8/§esimulator rename §8[§7to-rename§8] §8[§7name§8] §8-§7 Rename the simulator
SIMULATOR_GUI_ITEM_NAME=§eTNT Simulator
SIMULATOR_NO_SIM_IN_HAND=§cNo simulator item selected
SIMULATOR_GUI_SELECT_SIM=Simulator selection
@@ -307,6 +315,7 @@ SIMULATOR_POSITION_Z=§7z-Position
SIMULATOR_BACK=§eBack
SIMULATOR_GUI_TOTAL_TNT=§7Total TNT§8: §e{0}
SIMULATOR_DELETED=§cSimulator deleted
SIMULATOR_RENAMED=§cSimulator renamed from {0} to {1}
## GUI
SIMULATOR_POSITION_EDIT=§eEdit position
SIMULATOR_POSITION_ADD=§eSet position
@@ -387,6 +396,12 @@ INVENTORY_FILL_HELP=§8/§einventoryfill §8- §7Toggles InventoryFill
INVENTORY_FILL_INFO=§7Helps you fill containers by looking at them while sneaking and dropping the item. Or just scroll on a container to change the amount of the item inside.
INVENTORY_FILL_ENABLE=§aInventoryFiller activated
INVENTORY_FILL_DISABLE=§cInventoryFiller deactivated
INVENTORY_FILL_GUI_NAME=Inventory Filler
INVENTORY_FILL_GUI_POWER=§ePower§8:§7 {0}
INVENTORY_FILL_GUI_TNT=§eTNT
# Ray Visualizer
RAY_VISUALIZER_ENABLE=§aRayVisualizer activated
RAY_VISUALIZER_DISABLE=§aRayVisualizer deactivated
# Killchecker
KILLCHECKER_HELP_ENABLE=§8/§ekillchecker enable §8- §7Enables Killchecker / Recalculates kills
KILLCHECKER_HELP_DISABLE=§8/§ekillchecker disable §8- §7Disables Killchecker
@@ -394,6 +409,7 @@ KILLCHECKER_INFO=§7Shows the overlaps of cannon kills in your build area.
KILLCHECKER_INFO2=§7Only colorable blocks like Wool, Terractotta, Stained Glass and Concrete are counted.
KILLCHECKER_ENABLE=§aKillchecker activated
KILLCHECKER_DISABLE=§cKillchecker deactivated
KILLCHECKER_NO_BUILD=§cThere is no Build Area in this Region
KILLCHECKER_BOSSBAR=§e§l{0} §7(§e{1}%§7) §e§l{2}§7 cannons
# BlockCounter
BLOCK_COUNTER_HELP_TOGGLE=§8/§eblockcounter §8- §7Toggle on/off
@@ -404,6 +420,8 @@ BLOCK_COUNTER_MESSAGE_SECOND=§7Damage §8> §e{0} §7Blocks §e{1} §7TNT §e
BLOCK_COUNTER_ENABLE=§7BlockCounter activated
BLOCK_COUNTER_DISABLE=§7BlockCounter deactivated
# DepthCounter
DEPTH_COUNTER_DISABLE=§7Depth Counter disabled
DEPTH_COUNTER_ENABLE=§7Depth Counter enabled
DEPTH_COUNTER_MESSAGE=§7Depth §8> §7
DEPTH_COUNTER_COUNT={0}{1}§8×{2}{3}§8×{4}{5}
DEPTH_COUNTER_HOVER=§7X§8×§7Y§8×§7Z
@@ -510,7 +528,7 @@ LOADER_HELP_GUI=§8/§7loader gui §8- §7Shows Loader gui
LOADER_HELP_STOP=§8/§eloader stop §8- §7Stops recording/playback
LOADER_HELP_WAIT=§8/§7loader wait §8[§7Ticks§8] - §7Sets wait time between shots
LOADER_HELP_SPEED=§8/§7loader speed §8[§7Ticks§8] - §7Sets wait time between actions
LOADER_NO_LOADER=§cYou have no Laoder. Create one with /loader setup
LOADER_NO_LOADER=§cYou have no Loader. Create one with /loader setup
LOADER_NEW=§7Load your cannon and fire it once, to initialise the loader.
LOADER_HOW_TO_START=§7Then, execute /§eloader start§7 to start the Loader
LOADER_ACTIVE=§7The Loader is now active.
@@ -726,12 +744,10 @@ REGION_ITEM_RESET=§eReset
REGION_ITEM_TESTBLOCK=§eDummy
REGION_ITEM_TNT_OFF=§7TNT: §eDeactivated
REGION_ITEM_TNT_ONLY_TB=§7TNT: §eonly dummy
REGION_ITEM_TNT_ONLY_BUILD=§7TNT: §eonly build
REGION_ITEM_TNT_ON=§7TNT: §eActivated
REGION_ITEM_SELECTOR_TITLE=Tnt Mode
REGION_ITEM_SELECTOR_ON=§eActivate
REGION_ITEM_SELECTOR_ONLY_TB=§eonly dummy
REGION_ITEM_SELECTOR_ONLY_BUILD=§eonly build
REGION_ITEM_SELECTOR_OFF=§eDeactivate
#Region
REGION_COLOR_HELP_COLOR=§8/§ecolor §8[§7Color§8] §8- §7Sets the color of the region
@@ -744,6 +760,9 @@ REGION_FIRE_DISABLED=§aFire damage activated in this region
REGION_FREEZE_HELP=§8/§efreeze §8- §7Toggle Freeze
REGION_FREEZE_ENABLED=§cRegion frozen
REGION_FREEZE_DISABLED=§aRegion thawed
REGION_WATER_HELP=§8/§ewaterdestroy §8- §7Toggle water damage
REGION_WATER_ENABLED=§aWater damage deactivated in this region
REGION_WATER_DISABLED=§cWater damage activated in this region
REGION_ITEMS_HELP=§8/§eitems §8- §7Toggle Items
REGION_ITEMS_ENABLED=§aItems enabled in this region
REGION_ITEMS_DISABLED=§cItems disabled in this region
@@ -806,7 +825,6 @@ REGION_TNT_HELP_MODE=§8/§etnt §8[§7Mode§8] §8- §7Set TNT behaviour to a g
REGION_TNT_ON=§aTNT-Damage activated
REGION_TNT_OFF=§cTNT-Damage deactivated
REGION_TNT_TB=§aTNT-Damage activated outside the building area
REGION_TNT_BUILD=§aTNT-Damage activated outside the testblok area
REGION_TNT_BUILD_DESTROY=§cAn explosion would have destroyed blocks in the building area
REGION_TNT_TB_DESTROY=§cAn explosion would have destroyed blocks in the testblock area
AFK_KICK_MESSAGE=§cNothing happened on this server for 15 minutes.
@@ -842,7 +860,7 @@ LAUFBAU_SETTINGS_INACTIVE=§cInactive
LAUFBAU_SETTINGS_MIXED=§e{0}§8/§e{1} §aActive
LAUFBAU_SETTINGS_GUI_BACK=§eBack
LAUFBAU_SETTINGS_TOGGLE=§eClick §8-§7 Toggle
LAUFBAU_SETTINGS_ADVANCED=§eMiddle-Click §8-§7 Advanced settings
LAUFBAU_SETTINGS_ADVANCED=§eLeft-Click §8-§7 Advanced settings
LAUFBAU_BLOCK_COBWEB=§eCobweb
LAUFBAU_BLOCK_GRASS_PATH=§eGrass Path
LAUFBAU_BLOCK_SOUL_SAND=§eSoul Sand
@@ -928,7 +946,6 @@ SELECT_HELP=§8/§eselect §8[§7RegionsTyp§8] §8- §7Select a region type
SELECT_EXTENSION_HELP=§8/§eselect §8[§7RegionsTyp§8] §8[§7Extension§8] §8- §7Select a region type with or without extension
SELECT_GLOBAL_REGION=§cThe global region cannot be selected
SELECT_NO_TYPE=§cThis region has no {0}
SELECT_NO_EXTENSION=§cThis region has no extension
SELECT_MESSAGE=§7WorldEdit selection set to {0}, {1}, {2} and {3}, {4}, {5}
SKULL_HELP=§8/§eskull §8[§eplayer§8] §8-§7 Receive a player head
SKULL_INVALID=§cInvalid player name
@@ -943,6 +960,9 @@ SPEED_TAB_NAME=Input speed
WORLDEDIT_WAND=WorldEdit Wand
WORLDEDIT_LEFTCLICK=Left click: select pos #1
WORLDEDIT_RIGHTCLICK=Right click: select pos #2
TNT_DETAILS_COMMAND=§8/§etntdetails §8-§7 Toggle information printed after clicking on a TNT
TNT_DETAILS_ON = §eTNTDetails §aactivated
TNT_DETAILS_OFF = §eTNTDetails §cdeactivated
TNT_CLICK_HEADER=§8---=== §eTNT §8===---
TNT_CLICK_ORDER=§eEntity Order§8: §e{0}
TNT_CLICK_FUSE_TIME=§eFuseTime§8: §e{0}
@@ -966,10 +986,12 @@ SELECT_ITEM_BAUPLATTFORM=§eBuild platform
SELECT_ITEM_TESTBLOCK=§eDummy
CHESTFILLER_FILLED=§eChest filled
CHESTFILLER_COUNT=§7{0}§8: §e§l{1}
PISTON_HELP_1=§7Right click on piston with a slime ball to calculate the moved blocks.
PISTON_HELP_1=§7Right click on piston to calculate the moved blocks.
PISTON_HELP_2=§7Count is red, if one unmoveable block is present.
PISTON_HELP_3=§7Count is yellow, if too many blocks are present.
PISTON_INFO=§7Moved Blocks {0}{1}§8/§712
PISTON_ENABLED=§aCalculator enabled
PISTON_DISABLED=§cCalculator disabled
# Warp
WARP_LOC_X=§7X§8: §e{0}
WARP_LOC_Y=§7Y§8: §e{0}
@@ -1012,5 +1034,10 @@ COLORREPLACE_HELP=§8//§ecolorreplace §8[§7color§8] §8[§7color§8] §8- §
TYPEREPLACE_HELP=§8//§etypereplace §8[§7type§8] §8[§7type§8] §8- §7Replace all blocks of one type with another
# Schematic
SCHEMATIC_GUI_ITEM=§eSchematics
#VersionAnnouncer
SERVER_VERSION=§7This server runs on Minecraft version §e{0}
# TNTListener
TLS_MESSAGE_79=§7TLS§8> §7Tick §e{0} §8- §7TNT §e{1}
TLS_MESSAGE_80=§7TLS§8> §7Tick §e{0} §8- §7TNT §e{1} §8(§e{2} §7with Fuse 80§8)
TLS_START_HELP=§8/§etls start §8- §7Start the TNT Listener
TLS_STOP_HELP=§8/§etls stop §8- §7Stop the TNT Listener
TLS_SCOREBOARD_ELEMENT=§eTLS§8: §aon
TLS_TOGGLE_HELP=§8/§etls§8: §7Toggle the TNT Listener
@@ -1,20 +1,20 @@
#
# This file is a part of the SteamWar software.
# This file is a part of the SteamWar software.
#
# Copyright (C) 2021 SteamWar.de-Serverteam
# Copyright (C) 2025 SteamWar.de-Serverteam
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
PREFIX=§eBau§8System§8»
TIME=HH:mm:ss
@@ -25,7 +25,7 @@ PAGE_LIST=§e Seite ({0}/{1}) »»
LIST_PREVIOUS_PAGE=§eVorherige Seite
LIST_NEXT_PAGE=§eNächste Seite
# Permission
NO_PERMISSION=Du darfst dies hier nicht nutzen
NO_PERMISSION=§7Du darfst dies hier nicht nutzen
SPECTATOR=§fZuschauer
# Scoreboard
SCOREBOARD_TIME=Uhrzeit
@@ -54,6 +54,9 @@ FLAG_FREEZE_ACTIVE=§aan
FLAG_FREEZE_INACTIVE=§caus
FLAG_PROTECT_ACTIVE=§aan
FLAG_PROTECT_INACTIVE=§caus
FLAG_WATER_DESTROY=Wasserschaden
FLAG_WATER_DESTROY_ALLOW=§cerlaubt
FLAG_WATER_DESTROY_DENY=§aaus
FLAG_TNT_ALLOW=§aan
FLAG_TNT_DENY=§caus
FLAG_TNT_ONLY_TB=§7Kein §eBaurahmen
@@ -119,12 +122,10 @@ BACKUP_LORE=§eKlicken zum Laden
BAU_COMMAND_HELP_INFO=§8/§ebau info §8- §7Alias für §8/§ebauinfo
BAU_INFO_ITEM_NAME=§eBau-Management
## This is used in BauInfoBauGuiItem.java
BAU_INFO_ITEM_LORE_TNT=§7TNT§8: §e{0}
BAU_INFO_ITEM_LORE_FREEZE=§7Freeze§8: §e{0}
BAU_INFO_ITEM_LORE_DAMAGE=§7Damage§8: §e{0}
BAU_INFO_ITEM_LORE_FIRE=§7Feuer§8: §e{0}
BAU_INFO_ITEM_LORE_COLOR=§7Farbe§8: §e{0}
BAU_INFO_ITEM_LORE_PROTECT=§7Protect§8: §e{0}
BAU_INFO_ITEM_LORE_CHANGED=§7Verändert§8: §e{0}
BAU_INFO_ITEM_LORE_WATER_DESTROY=§7Wasserschaden§8: §e{0}
BAU_INFO_COMMAND_HELP=§8/§ebauinfo §8- §7Gibt Informationen über den Bau
BAU_INFO_COMMAND_OWNER=§7Besitzer§8: §e{0}
BAU_INFO_COMMAND_MEMBER=§7{0} §8[§7{1}§8]§8: §e{2}
@@ -254,6 +255,7 @@ SIMULATOR_CHANGE_HELP=§8/§esimulator change §8-§7 Wechsel zu einem anderen S
SIMULATOR_DELETE_HELP=§8/§esimulator delete §8[§7name§8] §8-§7 Löscht den Simulator
SIMULATOR_START_HELP=§8/§esimulator start §8[§7name§8] §8-§7 Startet die Simulation
SIMULATOR_COPY_HELP=§8/§esimulator copy §8[§7to-copy§8] §8[§7name§8] §8-§7 Kopiert einen Simulator
SIMULATOR_RENAME_HELP=§8/§esimulator rename §8[§7to-rename§8] §8[§7name§8] §8-§7 Benennt einen Simulator um
SIMULATOR_GUI_ITEM_NAME=§eTNT Simulator
SIMULATOR_NO_SIM_IN_HAND=§cKein Simulator Item gewählt
SIMULATOR_GUI_SELECT_SIM=Simulator wählen
@@ -290,6 +292,7 @@ SIMULATOR_POSITION_Z=§7z-Position
SIMULATOR_BACK=§eZurück
SIMULATOR_GUI_TOTAL_TNT=§7Gesamt TNT§8: §e{0}
SIMULATOR_DELETED=§cSimulator gelöscht
SIMULATOR_RENAMED=§cSimulator von {0} zu {1} umbenannt
## GUI
SIMULATOR_POSITION_EDIT=§ePosition bearbeiten
SIMULATOR_POSITION_ADD=§ePosition setzen
@@ -348,8 +351,11 @@ SMART_PLACE_DISABLE=§cSmartPlace deaktiviert
# InventoryFiller
INVENTORY_FILL_HELP=§8/§einventoryfill §8- §7Toggled InventoryFill
INVENTORY_FILL_INFO=§7Hilft dir, Behälter zu füllen, indem du sie beim sneaken ansiehst und den Gegenstand fallen lässt. Oder scrolle einfach auf einen Behälter, um die Menge des gehaltenen Gegenstandes darin zu ändern.
INVENTORY_FILL_ENABLE=§aInventoryFiller activated
INVENTORY_FILL_DISABLE=§cInventoryFiller deactivated
INVENTORY_FILL_ENABLE=§aInventoryFiller aktiviert
INVENTORY_FILL_DISABLE=§cInventoryFiller deaktiviert
# Ray Visualizer
RAY_VISUALIZER_ENABLE=§aRayVisualizer aktiviert
RAY_VISUALIZER_DISABLE=§aRayVisualizer deaktiviert
# Killchecker
KILLCHECKER_HELP_ENABLE=§8/§ekillchecker enable §8- §7Aktiviert Killchecker / Berechnet kills neu
KILLCHECKER_HELP_DISABLE=§8/§ekillchecker disable §8- §7Deaktiviert Killchecker
@@ -357,6 +363,7 @@ KILLCHECKER_INFO=§7Zeigt Überlappungen der Kanonen Kills im Baubereich an.
KILLCHECKER_INFO2=§7Nur farbige Blöcke wie Wolle, Terracotta, Stained Glass und Concrete wird gezählt.
KILLCHECKER_ENABLE=§aKillchecker aktiviert
KILLCHECKER_DISABLE=§cKillchecker deaktiviert
KILLCHECKER_NO_BUILD=§cEs gibt keinen Baubereich in dieser Region
KILLCHECKER_BOSSBAR=§e§l{0} §7(§e{1}%§7) §e§l{2}§7 Kanonnen
# BlockCounter
BLOCK_COUNTER_HELP_TOGGLE=§8/§eblockcounter §8- §7Wechsel zwischen an und aus
@@ -367,6 +374,8 @@ BLOCK_COUNTER_MESSAGE_SECOND=§7Schaden §8> §e{0} §7Blöcke §e{1} §7TNT
BLOCK_COUNTER_ENABLE=§7BlockCounter angemacht
BLOCK_COUNTER_DISABLE=§7BlockCounter ausgemacht
# DepthCounter
DEPTH_COUNTER_DISABLE=§7Depth Counter deaktiviert
DEPTH_COUNTER_ENABLE=§7Depth Counter aktiviert
DEPTH_COUNTER_MESSAGE=§7Tiefe §8> §7
# TPSLimit
TPSLIMIT_FREEZE_HELP=§8/§etpslimit 0 §8-§7 Friere TPS ein
@@ -673,12 +682,10 @@ REGION_ITEM_RESET=§eReset
REGION_ITEM_TESTBLOCK=§eTestblock
REGION_ITEM_TNT_OFF=§7TNT: §eAusgeschaltet
REGION_ITEM_TNT_ONLY_TB=§7TNT: §enur Testblock
REGION_ITEM_TNT_ONLY_BUILD=§7TNT: §enur Baubereich
REGION_ITEM_TNT_ON=§7TNT: §eEingeschaltet
REGION_ITEM_SELECTOR_TITLE=Tnt Modus
REGION_ITEM_SELECTOR_ON=§eEinschalten
REGION_ITEM_SELECTOR_ONLY_TB=§enur Testblock
REGION_ITEM_SELECTOR_ONLY_BUILD=§enur Baubereich
REGION_ITEM_SELECTOR_OFF=§eAusschalten
#Region
REGION_COLOR_HELP_COLOR=§8/§ecolor §8[§7Color§8] §8- §7Setze die Farbe der Region
@@ -701,6 +708,9 @@ REGION_PROTECT_FALSE_REGION=§cDu befindest dich derzeit in keiner (M)WG-Region
REGION_NO_GRAVITY_HELP = §8/§enogravity §8- §7Toggle NoGravity
REGION_NO_GRAVITY_ENABLED = §aNoGravity aktiviert in dieser Region
REGION_NO_GRAVITY_DISABLED = §cNoGravity deaktiviert in dieser Region
REGION_WATER_HELP=§8/§ewaterblock §8- §7Wasserschaden umschalten
REGION_WATER_ENABLED=§aWasserschaden deaktiviert
REGION_WATER_DISABLED=§cWasserschaden aktiviert
REGION_REGION_HELP_UNDO=§8/§eregion undo §8- §7Mache die letzten 20 /testblock oder /reset rückgängig
REGION_REGION_HELP_REDO=§8/§eregion redo §8- §7Wiederhole die letzten 20 §8/§7rg undo
REGION_REGION_HELP_RESTORE=§8/§eregion restore §8- §7Setzte die Region zurück, ohne das Gebaute zu löschen
@@ -788,7 +798,7 @@ LAUFBAU_SETTINGS_INACTIVE=§cInaktiv
LAUFBAU_SETTINGS_MIXED=§e{0}§8/§e{1} §aAktiv
LAUFBAU_SETTINGS_GUI_BACK=§eBack
LAUFBAU_SETTINGS_TOGGLE=§eClick §8-§7 Toggle
LAUFBAU_SETTINGS_ADVANCED=§eMiddle-Click §8-§7 Erweiterte Einstellung
LAUFBAU_SETTINGS_ADVANCED=§eLinks-Click §8-§7 Erweiterte Einstellung
LAUFBAU_BLOCK_COBWEB=§eCobweb
LAUFBAU_BLOCK_GRASS_PATH=§eGrass Path
LAUFBAU_BLOCK_SOUL_SAND=§eSoul Sand
@@ -870,7 +880,6 @@ SELECT_HELP=§8/§eselect §8[§7RegionsTyp§8] §8- §7Wähle einen RegionsTyp
SELECT_EXTENSION_HELP=§8/§eselect §8[§7RegionsTyp§8] §8[§7Extension§8] §8- §7Wähle einen RegionsTyp aus mit oder ohne Extension
SELECT_GLOBAL_REGION=§cDie globale Region kannst du nicht auswählen
SELECT_NO_TYPE=§cDiese Region hat keinen {0}
SELECT_NO_EXTENSION=§cDiese Region hat keine Ausfahrmaße
SELECT_MESSAGE=§7WorldEdit auswahl auf {0}, {1}, {2} und {3}, {4}, {5} gesetzt
SKULL_HELP=§8/§eskull §8[§eSpieler§8] §8-§7 Gibt einen SpielerKopf
SKULL_INVALID=§cUngültiger Spieler
@@ -885,6 +894,9 @@ SPEED_TAB_NAME=Geschwindigkeit eingeben
WORLDEDIT_WAND=WorldEdit Wand
WORLDEDIT_LEFTCLICK=Left click: select pos #1
WORLDEDIT_RIGHTCLICK=Right click: select pos #2
TNT_DETAILS_COMMAND=§8/§etntdetails §8-§7 Aktiviert/Deaktiviert das senden von Details beim Klick auf TNT
TNT_DETAILS_ON = §eTNTDetails §aaktiviert
TNT_DETAILS_OFF = §eTNTDetails §cdeaktiviert
TNT_CLICK_HEADER=§8---=== §eTNT §8===---
TNT_CLICK_ORDER=§eEntity Order§8: §e{0}
TNT_CLICK_FUSE_TIME=§eFuseTime§8: §e{0}
@@ -907,10 +919,12 @@ SELECT_ITEM_BAURAHMEN=§eBaurahmen
SELECT_ITEM_BAUPLATTFORM=§eBauplattform
SELECT_ITEM_TESTBLOCK=§eTestblock
CHESTFILLER_FILLED=§eKiste gefüllt
PISTON_HELP_1=§7Rechts Klick auf Piston mit einem Slime Ball berechnet dir die bewegten Blöcke.
PISTON_HELP_1=§7Rechts Klick auf einen Piston berechnet dir die bewegten Blöcke.
PISTON_HELP_2=§7Die Anzahl ist Rot, wenn ein unmovable Block vorhanden ist.
PISTON_HELP_3=§7Die Anzahl ist Gelb, wenn zu viele Blöcke vorhanden sind.
PISTON_INFO=§7Bewegte Blöcke {0}{1}§8/§712
PISTON_ENABLED=§aPiston-Berechnung aktiviert
PISTON_DISABLED=§cPiston-Berechnung deaktiviert
# Warp
WARP_LOC_X=§7X§8: §e{0}
WARP_LOC_Y=§7Y§8: §e{0}
@@ -953,5 +967,8 @@ COLORREPLACE_HELP=§8//§ecolorreplace §8[§7color§8] §8[§7color§8] §8- §
TYPEREPLACE_HELP=§8//§etyreplace §8[§7type§8] §8[§7type§8] §8- §7Ersetzt einen Blockgruppe mit einer anderen
# Schematics
SCHEMATIC_GUI_ITEM=§eSchematics
#VersionAnnouncer
SERVER_VERSION=§7Dieser Server läuft auf Minecraft-Version §e{0}
TLS_MESSAGE_80=§7TLS§8> §7Tick §e{0} §8- §7TNT §e{1} §8(§e{2} §7mit Fuse 80§8)
TLS_START_HELP=§8/§etls start §8- §7Starte den TNT Listener
TLS_STOP_HELP=§8/§etls stop §8- §7Stope den TNT Listener
TLS_SCOREBOARD_ELEMENT=§eTLS§8: §aan
TLS_TOGGLE_HELP=§8/§etls §8: §7Toggle den TNT Listener
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem;
@@ -25,50 +25,46 @@ import de.steamwar.bausystem.configplayer.ConfigConverter;
import de.steamwar.bausystem.features.gui.BauGUI;
import de.steamwar.bausystem.features.script.lua.SteamWarLuaPlugin;
import de.steamwar.bausystem.features.script.lua.libs.LuaLib;
import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader;
import de.steamwar.bausystem.features.slaves.panzern.Panzern;
import de.steamwar.bausystem.features.slaves.panzern.PanzernAlgorithm;
import de.steamwar.bausystem.features.tpslimit.TPSFreezeUtils;
import de.steamwar.bausystem.features.tracer.TraceManager;
import de.steamwar.bausystem.features.tracer.TraceRecorder;
import de.steamwar.bausystem.features.world.BauScoreboard;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.region.loader.PrototypeLoader;
import de.steamwar.bausystem.region.loader.RegionLoader;
import de.steamwar.bausystem.region.loader.Updater;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.bausystem.region.RegionSystem;
import de.steamwar.bausystem.utils.ScoreboardElement;
import de.steamwar.bausystem.utils.TickListener;
import de.steamwar.bausystem.utils.TickManager;
import de.steamwar.bausystem.worlddata.WorldData;
import de.steamwar.command.AbstractValidator;
import de.steamwar.command.SWCommand;
import de.steamwar.command.SWCommandUtils;
import de.steamwar.core.CRIUSleepEvent;
import de.steamwar.core.Core;
import de.steamwar.linkage.LinkedInstance;
import de.steamwar.linkage.MaxVersion;
import de.steamwar.linkage.MinVersion;
import de.steamwar.linkage.PluginCheck;
import de.steamwar.linkage.api.Disable;
import de.steamwar.linkage.api.Enable;
import de.steamwar.core.WorldEditRendererCUIEditor;
import de.steamwar.core.WorldIdentifier;
import de.steamwar.linkage.AbstractLinker;
import de.steamwar.linkage.SpigotLinker;
import de.steamwar.message.Message;
import de.steamwar.network.packets.PacketHandler;
import de.steamwar.providers.BauServerInfo;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.GameRule;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import java.io.*;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.stream.Collectors;
public class BauSystem extends JavaPlugin implements Listener {
@@ -79,7 +75,7 @@ public class BauSystem extends JavaPlugin implements Listener {
@Getter
private static BauSystem instance;
private final Map<Class<?>, Object> instances = new HashMap<>();
private SpigotLinker linker;
@Override
public void onEnable() {
@@ -91,126 +87,69 @@ public class BauSystem extends JavaPlugin implements Listener {
instance = this;
SWUtils.setBausystem(instance);
try {
PrototypeLoader.load();
RegionLoader.load();
} catch (SecurityException e) {
Bukkit.getLogger().log(Level.SEVERE, e.getMessage(), e);
Bukkit.shutdown();
System.exit(1);
return;
}
new Updater(PrototypeLoader.file, PrototypeLoader::load);
new Updater(RegionLoader.file, RegionLoader::load);
RegionSystem.INSTANCE.load();
SWCommandUtils.addValidator(Player.class, validator(Permission.BUILD));
SWCommandUtils.addValidator(CommandSender.class, validator(Permission.BUILD));
SWCommandUtils.addValidator("supervisor", validator(Permission.SUPERVISOR));
SWCommandUtils.addValidator("owner", validator(Permission.OWNER));
instances.put(BauServer.class, BauServer.getInstance());
List<Class<?>> classes = new BufferedReader(new InputStreamReader(BauSystem.class.getResourceAsStream("/META-INF/annotations/de.steamwar.linkage.Linked")))
.lines()
.map(s -> {
try {
return Class.forName(s, false, BauSystem.class.getClassLoader());
} catch (ClassNotFoundException | NoClassDefFoundError e) {
if (e.getMessage().equals(s)) {
Bukkit.shutdown();
throw new SecurityException(e.getMessage(), e);
}
return null;
}
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
classes.forEach(clazz -> {
MinVersion minVersion = clazz.getAnnotation(MinVersion.class);
MaxVersion maxVersion = clazz.getAnnotation(MaxVersion.class);
PluginCheck[] pluginChecks = clazz.getAnnotationsByType(PluginCheck.class);
if (minVersion != null && Core.getVersion() < minVersion.value()) {
return;
}
if (maxVersion != null && Core.getVersion() > maxVersion.value()) {
return;
}
for (PluginCheck pluginCheck : pluginChecks) {
if (pluginCheck.has() == PluginCheck.Has.THIS && Bukkit.getPluginManager().getPlugin(pluginCheck.value()) != null) {
continue;
linker = new SpigotLinker(BauSystem.getInstance(), BauSystem.MESSAGE) {
@Override
protected void linkObject(Object any) {
super.linkObject(any);
if (any instanceof LuaLib) {
SteamWarLuaPlugin.add((LuaLib) any);
}
if (pluginCheck.has() == PluginCheck.Has.NOT && Bukkit.getPluginManager().getPlugin(pluginCheck.value()) == null) {
continue;
if (any instanceof ScoreboardElement) {
BauScoreboard.addElement((ScoreboardElement) any);
}
return;
}
Object any;
try {
any = clazz.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
getLogger().log(Level.SEVERE, e.getMessage(), e);
Bukkit.shutdown();
throw new SecurityException(e.getMessage());
}
instances.put(clazz, any);
if (any instanceof Enable) {
((Enable) any).enable();
}
if (any instanceof SWCommand) {
((SWCommand) any).setMessage(BauSystem.MESSAGE);
}
if (any instanceof Listener) {
Bukkit.getPluginManager().registerEvents((Listener) any, BauSystem.getInstance());
}
if (any instanceof PacketHandler) {
((PacketHandler) any).register();
}
if (any instanceof LuaLib) {
SteamWarLuaPlugin.add((LuaLib) any);
}
if (any instanceof ScoreboardElement) {
BauScoreboard.addElement((ScoreboardElement) any);
}
if (any instanceof BauGuiItem) {
BauGUI.addItem((BauGuiItem) any);
}
if (any instanceof PanzernAlgorithm) {
Panzern.add((PanzernAlgorithm) any);
}
if (any instanceof ConfigConverter) {
Config.addConfigConverter((ConfigConverter) any);
}
});
instances.forEach((clazz, o) -> {
for (Field field : clazz.getFields()) {
if (field.getAnnotation(LinkedInstance.class) != null) {
try {
field.set(o, instances.get(field.getType()));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
if (any instanceof BauGuiItem) {
BauGUI.addItem((BauGuiItem) any);
}
if (any instanceof PanzernAlgorithm) {
Panzern.add((PanzernAlgorithm) any);
}
if (any instanceof ConfigConverter) {
Config.addConfigConverter((ConfigConverter) any);
}
if (any instanceof BoundingBoxLoader) {
((BoundingBoxLoader) any).load();
}
}
});
};
try {
linker.addLinkableInstance(BauServer.getInstance());
linker.link();
} catch (AbstractLinker.LinkException e) {
getLogger().log(Level.SEVERE, "Could not link a class.", e);
Bukkit.shutdown();
return;
}
TickListener.impl.init();
TraceManager.instance.init();
TraceRecorder.instance.init();
new WorldEditRendererCUIEditor();
Bukkit.getWorlds().get(0).setGameRule(GameRule.SEND_COMMAND_FEEDBACK, false);
String identifier = BauServerInfo.getOwnerUser().getUUID().toString().replace("-", "");
WorldIdentifier.set("bau/" + Core.getVersion() + "/" + identifier);
}
@EventHandler
public void onCRIUSleep(CRIUSleepEvent event) {
RegionSystem.INSTANCE.save();
}
@Override
public void onDisable() {
instances.forEach((aClass, o) -> {
if (o instanceof Listener) {
HandlerList.unregisterAll((Listener) o);
}
if (o instanceof Disable) {
((Disable) o).disable();
}
});
linker.unlink();
WorldData.write();
RegionSystem.INSTANCE.save();
Config.getInstance().saveAll();
}
@@ -254,7 +193,7 @@ public class BauSystem extends JavaPlugin implements Listener {
@Override
public void run() {
if (TPSFreezeUtils.isFrozen()) return;
if (TickManager.impl.isFrozen()) return;
if (counter >= delay) {
runnable.run();
cancel();
@@ -272,7 +211,7 @@ public class BauSystem extends JavaPlugin implements Listener {
@Override
public void run() {
if (TPSFreezeUtils.isFrozen()) return;
if (TickManager.impl.isFrozen()) return;
if (counter >= (first ? delay : period)) {
first = false;
runnable.run();
@@ -1,35 +1,32 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem;
import de.steamwar.bausystem.config.BauServer;
import de.steamwar.bausystem.features.world.BauMemberUpdate;
import de.steamwar.bausystem.utils.BauMemberUpdateEvent;
import de.steamwar.bausystem.linkage.GuiItem;
import de.steamwar.sql.BauweltMember;
import de.steamwar.sql.SteamwarUser;
import lombok.AllArgsConstructor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Predicate;
@AllArgsConstructor
@@ -40,44 +37,21 @@ public enum Permission {
return bauweltMember.isSupervisor();
}),
BUILD(bauweltMember -> {
if (isTempOnlySpectator(bauweltMember)) return false;
return bauweltMember.isBuild() || SUPERVISOR.permissionPredicate.test(bauweltMember);
}),
/**
* Only used for {@link BauMemberUpdate}
*/
REAL_SPECTATOR(bauweltMember -> {
SPECTATOR(bauweltMember -> {
return !bauweltMember.isBuild() && !bauweltMember.isSupervisor();
}),
/**
* Primarily used for {@link de.steamwar.bausystem.linkage.specific.GuiItem}
* Primarily used for {@link GuiItem}
*/
MEMBER(bauweltMember -> {
return true;
});
private static final Set<Integer> TEMP_ONLY_SPECTATOR = new HashSet<>();
private static boolean isTempOnlySpectator(BauweltMember bauweltMember) {
return TEMP_ONLY_SPECTATOR.contains(bauweltMember.getMemberID());
}
public static boolean isTempOnlySpectator(Player player) {
return TEMP_ONLY_SPECTATOR.contains(SteamwarUser.get(player.getUniqueId()).getId());
}
public static void forceOnlySpectator(Player player) {
TEMP_ONLY_SPECTATOR.add(SteamwarUser.get(player.getUniqueId()).getId());
BauMemberUpdate.baumemberUpdate();
}
/**
* Only used by {@link BauMemberUpdate}
*/
public static void removeForceOnlySpectator(Player player) {
TEMP_ONLY_SPECTATOR.remove(SteamwarUser.get(player.getUniqueId()).getId());
}
private final Predicate<BauweltMember> permissionPredicate;
public boolean hasPermission(BauweltMember bauweltMember) {
@@ -87,10 +61,10 @@ public enum Permission {
public boolean hasPermission(Player member) {
if (SteamwarUser.get(member.getUniqueId()).getId() == BauServer.getInstance().getOwnerID()) {
return this != REAL_SPECTATOR;
return this != SPECTATOR;
}
BauweltMember bauweltMember = BauweltMember.getBauMember(BauServer.getInstance().getOwner(), member.getUniqueId());
if (bauweltMember == null) return this == REAL_SPECTATOR;
if (bauweltMember == null) return this == SPECTATOR;
return permissionPredicate.test(bauweltMember);
}
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.config;
@@ -36,7 +36,7 @@ public class BauServer {
private Integer owner;
public UUID getOwner() {
return SteamwarUser.get(getOwnerID()).getUUID();
return SteamwarUser.byId(getOwnerID()).getUUID();
}
public int getOwnerID() {
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.configplayer;
@@ -1,3 +1,22 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.configplayer;
import yapion.hierarchy.types.YAPIONObject;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.configplayer;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.configplayer.serializer;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.attributescopy;
@@ -24,7 +24,6 @@ import de.steamwar.command.PreviousArguments;
import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeMapper;
import de.steamwar.linkage.Linked;
import de.steamwar.linkage.MinVersion;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.attributescopy;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.attributescopy;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.attributescopy;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.autostart;
@@ -1,26 +1,26 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.autostart;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.linkage.Linked;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.autostart;
@@ -24,8 +24,6 @@ import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.features.tpslimit.TPSUtils;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.RegionUtils;
import de.steamwar.bausystem.region.utils.RegionExtensionType;
import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.bausystem.utils.ItemUtils;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
@@ -33,9 +31,8 @@ import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.data.type.Chest;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent;
@@ -43,9 +40,9 @@ import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@Linked
public class AutostartListener implements Listener {
@@ -106,11 +103,11 @@ public class AutostartListener implements Listener {
public void activate(Player player) {
Region region = Region.getRegion(player.getLocation());
if (region.isGlobal()) {
if (region.getType().isGlobal()) {
BauSystem.MESSAGE.send("AUTOSTART_MESSAGE_NO_REGION", player);
return;
}
if (!region.hasType(RegionType.TESTBLOCK)) {
if (region.getTestblockArea().isEmpty()) {
BauSystem.MESSAGE.send("AUTOSTART_MESSAGE_NO_REGION", player);
return;
}
@@ -124,6 +121,7 @@ public class AutostartListener implements Listener {
@EventHandler
public void onEntityExplode(EntityExplodeEvent event) {
if (!(event.getEntity() instanceof TNTPrimed)) return;
if (regionStartTime.isEmpty()) {
return;
}
@@ -131,20 +129,12 @@ public class AutostartListener implements Listener {
event.blockList().forEach(block -> {
Region region = Region.getRegion(block.getLocation());
if (!regionStartTime.containsKey(region)) return;
if (!region.hasType(RegionType.TESTBLOCK)) return;
if (!region.inRegion(block.getLocation(), RegionType.TESTBLOCK, RegionExtensionType.EXTENSION)) return;
if (!region.getTestblockArea().inRegion(block.getLocation(), true)) return;
long tickDiff = TPSUtils.currentRealTick.get() - regionStartTime.remove(region);
long preFightDurationInSeconds = getPreFightDurationInSeconds(region);
long preFightDurationInSeconds = region.getGameModeConfig().Times.PreFightDuration;
RegionUtils.message(region, "AUTOSTART_MESSAGE_RESULT1", tickDiff);
RegionUtils.message(region, "AUTOSTART_MESSAGE_RESULT2", preFightDurationInSeconds, ((preFightDurationInSeconds * 20) - tickDiff));
RegionUtils.message(region, "AUTOSTART_MESSAGE_RESULT3");
});
}
private int getPreFightDurationInSeconds(Region region) {
File file = region.gameModeConfig();
if (file == null) return 30;
FileConfiguration config = YamlConfiguration.loadConfiguration(file);
return config.getInt("Times.PreFightDuration", 30);
}
}
@@ -1,49 +1,41 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.backup;
import com.sk89q.worldedit.EditSession;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.region.Color;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.RegionBackups;
import de.steamwar.bausystem.region.flags.ChangedMode;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.bausystem.region.flags.flagvalues.ColorMode;
import de.steamwar.bausystem.region.tags.Tag;
import de.steamwar.bausystem.utils.PasteBuilder;
import de.steamwar.command.PreviousArguments;
import de.steamwar.command.SWCommand;
import de.steamwar.command.SWCommandUtils;
import de.steamwar.command.TypeMapper;
import de.steamwar.command.TypeValidator;
import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv;
import de.steamwar.linkage.Linked;
import net.md_5.bungee.api.chat.ClickEvent;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Linked
@@ -54,7 +46,7 @@ public class BackupCommand extends SWCommand {
}
static boolean checkGlobalRegion(Region region, Player p) {
if (region.isGlobal()) {
if (region.getType().isGlobal()) {
BauSystem.MESSAGE.send("BACKUP_REGION_NO_REGION", p);
return true;
}
@@ -67,11 +59,12 @@ public class BackupCommand extends SWCommand {
if (checkGlobalRegion(region, p)) {
return;
}
if (!region.get(Tag.CHANGED)) {
if (region.getRegionData().get(Flag.CHANGED).isWithDefault(ChangedMode.NO_CHANGE)) {
BauSystem.MESSAGE.send("BACKUP_CREATE_NO_CHANGE", p);
return;
}
if (region.backup()) {
Optional<RegionBackups.Backup> backup = region.getBackups().create(RegionBackups.BackupType.MANUAL);
if (backup.isPresent()) {
BauSystem.MESSAGE.send("BACKUP_CREATE_SUCCESS", p);
} else {
BauSystem.MESSAGE.send("BACKUP_CREATE_FAILURE", p);
@@ -79,25 +72,12 @@ public class BackupCommand extends SWCommand {
}
@Register(value = "load", description = "BACKUP_HELP_LOAD")
public void backupLoad(@Validator("owner") Player p, @Mapper("backupName") String backupName) {
Region region = Region.getRegion(p.getLocation());
if (checkGlobalRegion(region, p)) {
return;
}
File backupFile = region.getBackupFile(backupName.replace('_', ' '));
if (backupFile == null) {
public void backupLoad(@Validator("owner") Player p, @Mapper("backup") @ErrorMessage("BACKUP_LOAD_FAILURE") RegionBackups.Backup backup) {
if (backup.load()) {
BauSystem.MESSAGE.send("BACKUP_LOAD", p);
} else {
BauSystem.MESSAGE.send("BACKUP_LOAD_FAILURE", p);
return;
}
EditSession editSession = new PasteBuilder(new PasteBuilder.FileProvider(backupFile))
.pastePoint(region.getMinPoint().add(region.getPrototype().getSizeX() / 2, 0, region.getPrototype().getSizeZ() / 2))
.minPoint(region.getMinPoint())
.maxPoint(region.getMaxPoint())
.waterLevel(region.getWaterLevel())
.run();
region.remember(editSession);
BauSystem.MESSAGE.send("BACKUP_LOAD", p);
}
@Register(value = "list", description = "BACKUP_HELP_LIST")
@@ -106,10 +86,10 @@ public class BackupCommand extends SWCommand {
if (checkGlobalRegion(region, p)) {
return;
}
List<String> backups = listBackup(p);
List<RegionBackups.Backup> backups = listBackup(p);
BauSystem.MESSAGE.send("BACKUP_LIST_HEAD", p, backups.size());
backups.forEach(s -> {
BauSystem.MESSAGE.send("BACKUP_LIST_ENTRY", p, "/backup load " + s, new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/backup load " + s), s);
backups.forEach(backup -> {
BauSystem.MESSAGE.send("BACKUP_LIST_ENTRY", p, "/backup load " + backup.getName(), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/backup load " + backup.getName()), backup.getName());
});
}
@@ -119,34 +99,44 @@ public class BackupCommand extends SWCommand {
if (checkGlobalRegion(region, p)) {
return;
}
List<String> backups = listBackup(p);
List<SWListInv.SWListEntry<String>> swListEntries = new ArrayList<>();
List<RegionBackups.Backup> backups = listBackup(p);
List<SWListInv.SWListEntry<RegionBackups.Backup>> swListEntries = new ArrayList<>();
List<String> lore = Arrays.asList(BauSystem.MESSAGE.parse("BACKUP_LORE", p));
for (int i = 0; i < backups.size(); i++) {
String s = backups.get(i);
SWItem swItem = new SWItem(Material.BRICK, BauSystem.MESSAGE.parse("BACKUP_ITEM_NAME", p, s), lore, false, clickType -> {});
RegionBackups.Backup backup = backups.get(i);
SWItem swItem = new SWItem(Material.BRICK, BauSystem.MESSAGE.parse("BACKUP_ITEM_NAME", p, backup.getName()), lore, false, clickType -> {});
swItem.getItemStack().setAmount(i + 1);
swListEntries.add(new SWListInv.SWListEntry<>(swItem, s));
swListEntries.add(new SWListInv.SWListEntry<>(swItem, backup));
}
SWListInv<String> swListInv = new SWListInv<>(p, BauSystem.MESSAGE.parse("BACKUP_INV_NAME", p), swListEntries, (clickType, s) -> {
SWListInv<RegionBackups.Backup> swListInv = new SWListInv<>(p, BauSystem.MESSAGE.parse("BACKUP_INV_NAME", p), swListEntries, (clickType, s) -> {
p.getOpenInventory().close();
p.performCommand("backup load " + s);
backupLoad(p, s);
});
swListInv.open();
}
@Mapper(value = "backupName", local = true)
public TypeMapper<String> backupMapper() {
return SWCommandUtils.createMapper(s -> s, (commandSender, s) -> listBackup((Player) commandSender));
@Mapper(value = "backup", local = true)
public TypeMapper<RegionBackups.Backup> backupMapper() {
return new TypeMapper<>() {
@Override
public RegionBackups.Backup map(CommandSender commandSender, String[] previousArguments, String s) {
return Region.getRegion(((Player) commandSender).getLocation()).getBackups().get(s);
}
@Override
public Collection<String> tabCompletes(CommandSender sender, PreviousArguments previousArguments, String s) {
return listBackup((Player) sender).stream().map(RegionBackups.Backup::getName).collect(Collectors.toList());
}
};
}
private List<String> listBackup(Player p) {
private List<RegionBackups.Backup> listBackup(Player p) {
Region region = Region.getRegion(p.getLocation());
if (checkGlobalRegion(region, p)) {
return Collections.emptyList();
}
try {
return region.listBackup().stream().map(s -> s.substring(0, s.length() - 6).replace(' ', '_')).collect(Collectors.toList());
return region.getBackups().list();
} catch (NullPointerException e) {
return Collections.emptyList();
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.bau;
@@ -22,10 +22,10 @@ package de.steamwar.bausystem.features.bau;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.config.BauServer;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.bausystem.region.FlagOptional;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.core.Core;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import de.steamwar.sql.SteamwarUser;
@@ -56,15 +56,10 @@ public class BauInfoBauGuiItem extends BauGuiItem {
Region region = Region.getRegion(player.getLocation());
List<String> stringList = new ArrayList<>();
for (Flag flag : Flag.getFlags()) {
if (flag == Flag.PROTECT && region.getFloorLevel() == 0) {
continue;
}
if (flag == Flag.ITEMS && Core.getVersion() < 19) {
continue;
}
Flag.Value<?> value = region.get(flag);
if (value != null) {
stringList.add(BauSystem.MESSAGE.parse("BAU_INFO_ITEM_LORE_" + flag.name(), player, BauSystem.MESSAGE.parse(value.getChatValue(), player)));
if (!region.getRegionData().has(flag).isApplicable()) continue;
FlagOptional<?> value = region.getRegionData().get(flag);
if (value.isPresent()) {
stringList.add(BauSystem.MESSAGE.parse("BAU_INFO_ITEM_LORE_" + flag.name(), player, BauSystem.MESSAGE.parse(value.getWithDefault().getChatValue(), player)));
}
}
itemStack.setLore(stringList);
@@ -1,73 +0,0 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.bau;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.command.PreviousArguments;
import de.steamwar.command.SWCommand;
import de.steamwar.command.TypeMapper;
import de.steamwar.linkage.Linked;
import de.steamwar.techhider.TechHider;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Collection;
import java.util.stream.Collectors;
@Linked
public class ForceSpectatorCommand extends SWCommand {
public ForceSpectatorCommand() {
super("forcespectator");
}
@Register
public void forceSpectator(@Validator("supervisor") Player player, @Mapper("builder") Player other) {
Permission.forceOnlySpectator(other);
}
@Mapper("builder")
public TypeMapper<Player> spectatorMapper() {
return new TypeMapper<>() {
@Override
public Player map(CommandSender commandSender, String[] previousArguments, String s) {
Player player = Bukkit.getPlayer(s);
if (player == null) {
return null;
}
if (Permission.BUILD.hasPermission(player) && !Permission.SUPERVISOR.hasPermission(player)) {
return player;
}
return null;
}
@Override
public Collection<String> tabCompletes(CommandSender sender, PreviousArguments previousArguments, String s) {
return Bukkit.getOnlinePlayers().stream()
.filter(Permission.BUILD::hasPermission)
.filter(player -> !Permission.SUPERVISOR.hasPermission(player))
.map(Player::getName)
.collect(Collectors.toList());
}
};
}
}
@@ -1,8 +1,28 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.bau;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.config.BauServer;
import de.steamwar.bausystem.region.FlagOptional;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.command.SWCommand;
@@ -27,15 +47,13 @@ public class InfoCommand extends SWCommand {
@Register(description = "BAU_INFO_COMMAND_HELP")
public void genericCommand(Player p) {
BauSystem.MESSAGE.send("BAU_INFO_COMMAND_OWNER", p, SteamwarUser.get(bauServer.getOwnerID()).getUserName());
BauSystem.MESSAGE.send("BAU_INFO_COMMAND_OWNER", p, SteamwarUser.byId(bauServer.getOwnerID()).getUserName());
Region region = Region.getRegion(p.getLocation());
for (Flag flag : Flag.getFlags()) {
if (flag == Flag.PROTECT && region.getFloorLevel() == 0) {
continue;
}
Flag.Value<?> value = region.get(flag);
if (value != null) {
BauSystem.MESSAGE.send("BAU_INFO_COMMAND_FLAG", p, BauSystem.MESSAGE.parse(flag.getChatValue(), p), BauSystem.MESSAGE.parse(value.getChatValue(), p));
if (!region.getRegionData().has(flag).isApplicable()) continue;
FlagOptional<?> value = region.getRegionData().get(flag);
if (value.isPresent()) {
BauSystem.MESSAGE.send("BAU_INFO_COMMAND_FLAG", p, BauSystem.MESSAGE.parse(flag.getChatValue(), p), BauSystem.MESSAGE.parse(value.getWithDefault().getChatValue(), p));
}
}
@@ -79,7 +97,7 @@ public class InfoCommand extends SWCommand {
st.append("§8, ");
}
st.append("§7");
st.append(SteamwarUser.get(bauweltMembers.get(i).getMemberID()).getUserName());
st.append(SteamwarUser.byId(bauweltMembers.get(i).getMemberID()).getUserName());
}
return st.toString();
}
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -23,7 +23,6 @@ import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.features.cannon.depth.Depth;
import de.steamwar.bausystem.features.cannon.depth.DepthManager;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.linkage.Linked;
import org.bukkit.Bukkit;
import org.bukkit.entity.TNTPrimed;
@@ -85,8 +84,8 @@ public class CannonDetector implements Listener {
grouped.forEach((cannonKey, tntPrimeds) -> {
if (tntPrimeds.size() <= 5) return;
Region region = Region.getRegion(tntPrimeds.get(0).getLocation());
if (region.isGlobal()) return;
if (!region.hasType(RegionType.TESTBLOCK)) return;
if (region.getType().isGlobal()) return;
if (region.getTestblockArea().isEmpty()) return;
Depth depth = new Depth(region);
DepthManager.init(tntPrimeds, depth);
});
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -22,7 +22,6 @@ package de.steamwar.bausystem.features.cannon;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.util.Vector;
import java.util.Set;
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -20,10 +20,9 @@
package de.steamwar.bausystem.features.cannon.depth;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.RegionUtils;
import de.steamwar.bausystem.region.utils.RegionExtensionType;
import de.steamwar.bausystem.region.utils.RegionType;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
@@ -49,7 +48,7 @@ public class Depth {
public void update(List<Block> blocks) {
List<Block> blocksList = blocks.stream()
.filter(block -> region.inRegion(block.getLocation(), RegionType.TESTBLOCK, RegionExtensionType.EXTENSION))
.filter(block -> region.getTestblockArea().inRegion(block.getLocation(), true))
.collect(Collectors.toList());
tntCount++;
for (Block block : blocksList) {
@@ -65,7 +64,9 @@ public class Depth {
dimensions.setZ(Math.abs(dimensions.getZ()));
RegionUtils.message(region, player -> {
player.spigot().sendMessage(getMessage(player, dimensions.getBlockX() + 1, dimensions.getBlockY() + 1, dimensions.getBlockZ() + 1, tntCount));
if (Config.getInstance().get(player).getPlainValueOrDefault("depth_message", true)) {
player.spigot().sendMessage(getMessage(player, dimensions.getBlockX() + 1, dimensions.getBlockY() + 1, dimensions.getBlockZ() + 1, tntCount));
}
});
}
@@ -0,0 +1,45 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.cannon.depth;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
import org.bukkit.entity.Player;
@Linked
public class DepthCommand extends SWCommand {
public DepthCommand() {
super("depth");
}
@Register
public void toggle(Player player) {
if (Config.getInstance().get(player).getPlainValueOrDefault("depth_message", true)) {
Config.getInstance().get(player).put("depth_message", false);
BauSystem.MESSAGE.send("DEPTH_COUNTER_DISABLE", player);
} else {
Config.getInstance().get(player).put("depth_message", true);
BauSystem.MESSAGE.send("DEPTH_COUNTER_ENABLE", player);
}
}
}
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -1,29 +1,30 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.countingwand;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.region.Point;
import de.steamwar.bausystem.shared.Pair;
import de.steamwar.bausystem.utils.ItemUtils;
import de.steamwar.core.SWPlayer;
import de.steamwar.inventory.SWItem;
import lombok.Data;
import lombok.experimental.UtilityClass;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@@ -31,13 +32,32 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@UtilityClass
public class Countingwand {
@Data
public class CountingWandComponent implements SWPlayer.Component {
private Point pos1;
private Point pos2;
public boolean setPosition(boolean pos1, Point point) {
if (this.pos1 == null || this.pos2 == null) {
this.pos1 = point;
this.pos2 = point;
return true;
}
Point current = pos1 ? this.pos1 : this.pos2;
if (current.equals(point)) return false;
if (pos1) {
this.pos1 = point;
} else {
this.pos2 = point;
}
return true;
}
}
public static ItemStack getWandItem(Player player) {
ItemStack itemStack = new SWItem(Material.STICK, BauSystem.MESSAGE.parse("COUNTINGWAND_ITEM_NAME", player), Arrays.asList(BauSystem.MESSAGE.parse("COUNTINGWAND_ITEM_LORE1", player), BauSystem.MESSAGE.parse("COUNTINGWAND_ITEM_LORE2", player)), false, null).getItemStack();
ItemUtils.setItem(itemStack, "countingwand");
@@ -47,61 +67,20 @@ public class Countingwand {
return itemStack;
}
private final Map<String, Pair<Point, Point>> selections = new HashMap<>();
public boolean isCountingwand(ItemStack itemStack) {
return ItemUtils.isItem(itemStack, "countingwand");
}
public boolean isCountingwand(ItemStack itemStack) {
return ItemUtils.isItem(itemStack, "countingwand");
}
public void checkSelection(final Point point, final boolean pos1, final Player p) {
Pair<Point, Point> selection = selections.get(p.getUniqueId().toString());
final boolean newPos;
if (selection != null) {
if (pos1) {
newPos = !point.equals(selection.setKey(point));
} else {
newPos = !point.equals(selection.setValue(point));
}
} else {
if (pos1) {
selection = new Pair<>(point, null);
} else {
selection = new Pair<>(null, point);
}
selections.put(p.getUniqueId().toString(), selection);
newPos = true;
}
if (newPos) {
String dimension = getDimensions(p, selection.getKey(), selection.getValue());
String volume = getVolume(p, selection.getKey(), selection.getValue());
if (pos1) {
BauSystem.MESSAGE.send("COUNTINGWAND_MESSAGE_RCLICK", p, point.getX(), point.getY(), point.getZ(), dimension, volume);
} else {
BauSystem.MESSAGE.send("COUNTINGWAND_MESSAGE_LCLICK", p, point.getX(), point.getY(), point.getZ(), dimension, volume);
}
}
}
public void removePlayer(Player p) {
selections.remove(p.getUniqueId().toString());
}
public String getVolume(Player player, final Point point1, final Point point2) {
if (point1 == null || point2 == null) {
return BauSystem.MESSAGE.parse("COUNTINGWAND_MESSAGE_VOLUME", player, 0);
}
return BauSystem.MESSAGE.parse("COUNTINGWAND_MESSAGE_VOLUME", player, getAmount(point1, point2));
}
public String getDimensions(Player player, final Point point1, final Point point2) {
if (point1 == null || point2 == null) {
return BauSystem.MESSAGE.parse("COUNTINGWAND_MESSAGE_DIMENSION", player, 0, 0, 0);
}
return BauSystem.MESSAGE.parse("COUNTINGWAND_MESSAGE_DIMENSION", player, Math.abs(point1.getX() - point2.getX()) + 1, Math.abs(point1.getY() - point2.getY()) + 1, Math.abs(point1.getZ() - point2.getZ()) + 1);
}
public int getAmount(final Point point1, final Point point2) {
return (Math.abs(point1.getX() - point2.getX()) + 1) * (Math.abs(point1.getY() - point2.getY()) + 1) * (Math.abs(point1.getZ() - point2.getZ()) + 1);
}
public void checkSelection(final Point point, final boolean pos1, final Player p) {
SWPlayer player = SWPlayer.of(p);
CountingWandComponent countingWandComponent = player.getComponentOrDefault(CountingWandComponent.class, CountingWandComponent::new);
if (countingWandComponent.setPosition(pos1, point)) {
Point point1 = countingWandComponent.pos1;
Point point2 = countingWandComponent.pos2;
int amount = (Math.abs(point1.getX() - point2.getX()) + 1) * (Math.abs(point1.getY() - point2.getY()) + 1) * (Math.abs(point1.getZ() - point2.getZ()) + 1);
String dimension = player.using(BauSystem.MESSAGE).parse("COUNTINGWAND_MESSAGE_VOLUME", amount);
String volume = player.parse("COUNTINGWAND_MESSAGE_DIMENSION", Math.abs(point1.getX() - point2.getX()) + 1, Math.abs(point1.getY() - point2.getY()) + 1, Math.abs(point1.getZ() - point2.getZ()) + 1);
player.sendMessage(pos1 ? "COUNTINGWAND_MESSAGE_RCLICK" : "COUNTINGWAND_MESSAGE_LCLICK", point.getX(), point.getY(), point.getZ(), dimension, volume);
}
}
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.countingwand;
@@ -1,26 +1,26 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.countingwand;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.linkage.Linked;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.countingwand;
@@ -27,7 +27,6 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.util.RayTraceResult;
import java.util.Objects;
@@ -67,9 +66,4 @@ public class CountingwandListener implements Listener {
event.setCancelled(true);
Countingwand.checkSelection(Point.fromLocation(Objects.requireNonNull(event.getClickedBlock()).getLocation()), false, event.getPlayer());
}
@EventHandler
public void onLeave(PlayerQuitEvent event) {
Countingwand.removePlayer(event.getPlayer());
}
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.design.endstone;
@@ -31,10 +31,8 @@ import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
public class DesignEndStone {
@@ -44,18 +42,23 @@ public class DesignEndStone {
private REntityServer entityServer = new REntityServer();
private List<REntity> entities = new ArrayList<>();
private Set<Location> locations = new HashSet<>();
private boolean wsOrAs;
private double maxBlastResistance;
private Set<Material> limited;
private boolean calculateFromBottom;
public DesignEndStone(Region region) {
this.minX = region.getMinPointBuild().getX();
this.minY = region.getMinPointBuild().getY();
this.minZ = region.getMinPointBuild().getZ();
this.maxX = region.getMaxPointBuild().getX();
this.maxY = region.getMaxPointBuild().getY();
this.maxZ = region.getMaxPointBuild().getZ();
wsOrAs = region.getName().startsWith("ws") || region.getName().startsWith("as");
maxBlastResistance = wsOrAs ? 6.1 : 9.0;
this.minX = region.getBuildArea().getMinPoint(false).getX();
this.minY = region.getBuildArea().getMinPoint(false).getY();
this.minZ = region.getBuildArea().getMinPoint(false).getZ();
this.maxX = region.getBuildArea().getMaxPoint(false).getX();
this.maxY = region.getBuildArea().getMaxPoint(false).getY();
this.maxZ = region.getBuildArea().getMaxPoint(false).getZ();
limited = Arrays.stream(Material.values())
.filter(Material::isBlock)
.filter(material -> !material.isLegacy())
.filter(material -> material.getBlastResistance() > region.getGameModeConfig().Schematic.MaxDesignBlastResistance)
.collect(Collectors.toSet());
calculateFromBottom = region.getGameModeConfig().Arena.NoFloor;
entityServer.setCallback((player, rEntity, entityAction) -> {
if (entityAction != REntityServer.EntityAction.ATTACK) return;
@@ -76,7 +79,7 @@ public class DesignEndStone {
calc(minX, minY, maxZ, maxX, maxY, maxZ, 0, 0, -1, maxZ - minZ);
calc(minX, minY, minZ, minX, maxY, maxZ, 1, 0, 0, maxX - minX);
calc(maxX, minY, minZ, maxX, maxY, maxZ, -1, 0, 0, maxX - minX);
if (wsOrAs) {
if (calculateFromBottom) {
calc(minX, minY, minZ, maxX, minY, maxZ, 0, 1, 0, maxY - minY + 1);
} else {
int airBlocks = 0;
@@ -106,7 +109,7 @@ public class DesignEndStone {
int cz = z + step * dirZ;
Material material = WORLD.getBlockAt(cx, cy, cz).getType();
if (material != Material.WATER && material != Material.LAVA && material.getBlastResistance() >= maxBlastResistance) {
if (material != Material.WATER && material != Material.LAVA && limited.contains(material)) {
Location location = new Location(WORLD, cx + 0.5, cy, cz + 0.5);
if (!locations.add(location)) break;
RFallingBlockEntity entity = new RFallingBlockEntity(entityServer, location, Material.RED_STAINED_GLASS);
@@ -1,27 +1,26 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.design.endstone;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.bausystem.utils.BauMemberUpdateEvent;
import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
@@ -49,7 +48,11 @@ public class DesignEndStoneCommand extends SWCommand implements Listener {
@Register(description = "DESIGN_ENDSTONE_COMMAND_HELP")
public void genericCommand(@Validator Player player) {
Region region = Region.getRegion(player.getLocation());
if (!region.hasType(RegionType.BUILD)) {
if (region.getBuildArea().isEmpty()) {
BauSystem.MESSAGE.send("DESIGN_ENDSTONE_REGION_ERROR", player);
return;
}
if (!region.getGameModeConfig().loaded) {
BauSystem.MESSAGE.send("DESIGN_ENDSTONE_REGION_ERROR", player);
return;
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator;
@@ -25,8 +25,11 @@ import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.bausystem.features.autostart.AutostartListener;
import de.steamwar.bausystem.features.detonator.storage.DetonatorStorage;
import de.steamwar.bausystem.features.detonator.storage.ItemStorage;
import de.steamwar.core.SWPlayer;
import de.steamwar.entity.REntityServer;
import de.steamwar.entity.RFallingBlockEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.UtilityClass;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -45,7 +48,28 @@ import java.util.*;
@UtilityClass
public class Detonator {
private static final Map<Player, REntityServer> ENTITIES_MAP = new HashMap<>();
public class DetonatorComponent implements SWPlayer.Component {
private final REntityServer entities = new REntityServer();
@Getter
@Setter
private boolean hasUpdated = false;
@Override
public void onMount(SWPlayer player) {
entities.addPlayer(player.getPlayer());
entities.setCallback((player1, entity, action) -> {
Vector vector = new Vector(entity.getX(), entity.getY(), entity.getZ());
DetonatorListener.addLocationToDetonator(vector.toLocation(player.getWorld()).getBlock().getLocation(), player1);
});
}
@Override
public void onUnmount(SWPlayer player) {
entities.close();
}
}
private static final Vector HALF = new Vector(0.5, 0, 0.5);
public static boolean isDetonator(ItemStack itemStack) {
@@ -53,28 +77,19 @@ public class Detonator {
}
public static void showDetonator(Player p, List<Location> locs) {
if (ENTITIES_MAP.containsKey(p)) return;
REntityServer entities = new REntityServer();
entities.setCallback((player, rEntity, entityAction) -> {
Vector vector = new Vector(rEntity.getX(), rEntity.getY(), rEntity.getZ());
DetonatorListener.addLocationToDetonator(vector.toLocation(player.getWorld()).getBlock().getLocation(), player);
DetonatorListener.HAS_UPDATED.add(player);
});
entities.addPlayer(p);
ENTITIES_MAP.put(p, entities);
DetonatorComponent detonatorComponent = SWPlayer.of(p).getComponentOrDefault(DetonatorComponent.class, DetonatorComponent::new);
locs.forEach(location -> {
RFallingBlockEntity entity = new RFallingBlockEntity(entities, location.clone().add(HALF), Material.RED_STAINED_GLASS);
RFallingBlockEntity entity = new RFallingBlockEntity(detonatorComponent.entities, location.clone().add(HALF), Material.RED_STAINED_GLASS);
entity.setNoGravity(true);
});
}
public static void hideDetonator(Player p) {
ENTITIES_MAP.remove(p).close();
SWPlayer.of(p).removeComponent(DetonatorComponent.class);
}
public static boolean hasActiveDetonatorShow(Player p) {
return ENTITIES_MAP.containsKey(p);
return SWPlayer.of(p).hasComponent(DetonatorComponent.class);
}
public static void activateDetonator(DetonatorStorage detonator) {
@@ -1,26 +1,26 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.linkage.Linked;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator;
@@ -24,6 +24,7 @@ import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.SWUtils;
import de.steamwar.bausystem.features.detonator.storage.DetonatorStorage;
import de.steamwar.bausystem.features.detonator.storage.ItemStorage;
import de.steamwar.core.SWPlayer;
import de.steamwar.linkage.Linked;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@@ -36,15 +37,11 @@ import org.bukkit.event.player.PlayerItemHeldEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerSwapHandItemsEvent;
import java.util.HashSet;
import java.util.Set;
@Linked
public class DetonatorListener implements Listener {
static final Set<Player> HAS_UPDATED = new HashSet<>();
static void addLocationToDetonator(Location location, Player p) {
SWPlayer.of(p).getComponent(Detonator.DetonatorComponent.class).ifPresent(detonatorComponent -> detonatorComponent.setHasUpdated(true));
Detoblock detoblock = Detonator.getBlock(location.getBlock());
if (detoblock == Detoblock.INVALID) {
SWUtils.sendToActionbar(p, BauSystem.MESSAGE.parse("DETONATOR_INVALID_BLOCK", p));
@@ -66,64 +63,59 @@ public class DetonatorListener implements Listener {
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
if(!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (!Permission.BUILD.hasPermission(event.getPlayer())) return;
Player p = event.getPlayer();
if (Detonator.isDetonator(p.getInventory().getItemInMainHand())) {
event.setCancelled(true);
addLocationToDetonator(event.getBlock().getLocation(), p);
HAS_UPDATED.add(event.getPlayer());
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if(!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (!Detonator.isDetonator(event.getItem())) {
return;
}
if (!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (!Detonator.isDetonator(event.getItem())) return;
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
event.setCancelled(true);
DetonatorStorage detonator = new ItemStorage(event.getPlayer());
Detonator.activateDetonator(detonator);
HAS_UPDATED.add(event.getPlayer());
SWPlayer.of(event.getPlayer()).getComponent(Detonator.DetonatorComponent.class).ifPresent(detonatorComponent -> detonatorComponent.setHasUpdated(true));
}
}
@EventHandler(ignoreCancelled = true)
public void onPlayerMove(PlayerMoveEvent event) {
if (!Permission.BUILD.hasPermission(event.getPlayer()) ||!Detonator.isDetonator(event.getPlayer().getInventory().getItemInMainHand())) {
if (!Permission.BUILD.hasPermission(event.getPlayer()) || !Detonator.isDetonator(event.getPlayer().getInventory().getItemInMainHand())) {
if (Detonator.hasActiveDetonatorShow(event.getPlayer())) {
Detonator.hideDetonator(event.getPlayer());
}
} else {
if (!Detonator.hasActiveDetonatorShow(event.getPlayer())) {
Detonator.showDetonator(event.getPlayer(), new ItemStorage(event.getPlayer()).getLocations());
}
return;
}
if (HAS_UPDATED.contains(event.getPlayer())) {
HAS_UPDATED.remove(event.getPlayer());
if (Detonator.hasActiveDetonatorShow(event.getPlayer())) {
Detonator.hideDetonator(event.getPlayer());
Detonator.showDetonator(event.getPlayer(), new ItemStorage(event.getPlayer()).getLocations());
}
if (!Detonator.hasActiveDetonatorShow(event.getPlayer())) {
Detonator.showDetonator(event.getPlayer(), new ItemStorage(event.getPlayer()).getLocations());
return;
}
Detonator.DetonatorComponent component = SWPlayer.of(event.getPlayer())
.getComponentAndFilter(Detonator.DetonatorComponent.class, Detonator.DetonatorComponent::isHasUpdated)
.orElse(null);
if (component == null) return;
component.setHasUpdated(false);
Detonator.hideDetonator(event.getPlayer());
Detonator.showDetonator(event.getPlayer(), new ItemStorage(event.getPlayer()).getLocations());
}
@EventHandler
public void onPlayerItemHeld(PlayerItemHeldEvent event) {
if(!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (Detonator.isDetonator(event.getPlayer().getInventory().getItemInMainHand())) {
HAS_UPDATED.add(event.getPlayer());
}
if (!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (!Detonator.isDetonator(event.getPlayer().getInventory().getItemInMainHand())) return;
SWPlayer.of(event.getPlayer()).getComponent(Detonator.DetonatorComponent.class).ifPresent(detonatorComponent -> detonatorComponent.setHasUpdated(true));
}
@EventHandler
public void onPlayerSwapHandItems(PlayerSwapHandItemsEvent event) {
if(!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (Detonator.isDetonator(event.getMainHandItem()) || Detonator.isDetonator(event.getOffHandItem())) {
HAS_UPDATED.add(event.getPlayer());
}
if (!Permission.BUILD.hasPermission(event.getPlayer())) return;
if (!(Detonator.isDetonator(event.getMainHandItem()) || Detonator.isDetonator(event.getOffHandItem()))) return;
SWPlayer.of(event.getPlayer()).getComponent(Detonator.DetonatorComponent.class).ifPresent(detonatorComponent -> detonatorComponent.setHasUpdated(true));
}
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator.storage;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.detonator.storage;
@@ -0,0 +1,63 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2026 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.dev;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.command.SWCommand;
import de.steamwar.linkage.Linked;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import java.io.File;
import java.io.IOException;
@Linked
public class CreateKitCommand extends SWCommand {
public CreateKitCommand() {
super("createkit");
if (!BauSystem.DEV_SERVER) unregister();
}
@Register
public void onCommand(Player player, String name) {
YamlConfiguration yaml = new YamlConfiguration();
yaml.set("Items", player.getInventory().getContents());
yaml.set("Armor", player.getInventory().getArmorContents());
yaml.set("Effects", player.getActivePotionEffects());
yaml.set("LeaderAllowed", true);
yaml.set("MemberAllowed", true);
yaml.set("EnterStage", 0);
yaml.set("TNT", true);
YamlConfiguration kits = new YamlConfiguration();
kits.set("Kits." + name, yaml);
try {
kits.save(new File("new.kits.yaml"));
player.sendMessage("Kit created!");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui;
@@ -23,7 +23,7 @@ import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.SWUtils;
import de.steamwar.bausystem.features.gui.editor.BauGuiMapping;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.inventory.SWInventory;
import lombok.Getter;
import lombok.experimental.UtilityClass;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui;
@@ -1,27 +1,27 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import net.md_5.bungee.api.ChatColor;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui;
@@ -1,27 +1,29 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui.editor;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.features.gui.BauGUI;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.core.TrickyTrialsWrapper;
import de.steamwar.data.CMDs;
import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv;
import de.steamwar.linkage.Linked;
@@ -72,8 +74,8 @@ public class BauGuiEditor implements Listener {
inv.setItem(mapping.getSize() + 5, new SWItem(Material.BARRIER, BauSystem.MESSAGE.parse("GUI_EDITOR_ITEM_TRASH", p), Arrays.asList(BauSystem.MESSAGE.parse("GUI_EDITOR_ITEM_TRASH_LORE", p)), false, clickType -> {
}).getItemStack());
inv.setItem(mapping.getSize() + 6, new SWItem(Material.SCUTE, BauSystem.MESSAGE.parse("GUI_EDITOR_ITEM_MORE", p)).getItemStack());
inv.setItem(mapping.getSize() + 8, new SWItem(Material.ARROW, BauSystem.MESSAGE.parse("GUI_EDITOR_ITEM_CLOSE", p)).getItemStack());
inv.setItem(mapping.getSize() + 6, new SWItem(TrickyTrialsWrapper.impl.getTurtleScute(), BauSystem.MESSAGE.parse("GUI_EDITOR_ITEM_MORE", p)).getItemStack());
inv.setItem(mapping.getSize() + 8, new SWItem(Material.ARROW, BauSystem.MESSAGE.parse("GUI_EDITOR_ITEM_CLOSE", p)).setCustomModelData(CMDs.BACK).getItemStack());
p.openInventory(inv);
p.getOpenInventory().setCursor(cursor == null ? new SWItem().getItemStack() : cursor);
@@ -1,27 +1,27 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui.editor;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import org.bukkit.Material;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.gui.editor;
@@ -22,7 +22,7 @@ package de.steamwar.bausystem.features.gui.editor;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.bausystem.features.gui.BauGUI;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import lombok.Getter;
import lombok.Setter;
import org.bukkit.Bukkit;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.hotbar;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.hotbar;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2021 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.hotbar;
@@ -1,9 +1,28 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.inventoryfiller;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.Permission;
import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.bausystem.linkage.specific.BauGuiItem;
import de.steamwar.bausystem.linkage.BauGuiItem;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import de.steamwar.linkage.LinkedInstance;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.inventoryfiller;
@@ -1,15 +1,67 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.inventoryfiller;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.SWUtils;
import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.command.SWCommand;
import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import org.bukkit.Material;
import org.bukkit.block.Barrel;
import org.bukkit.block.BlockState;
import org.bukkit.block.Chest;
import org.bukkit.block.ShulkerBox;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BlockStateMeta;
import java.util.HashMap;
import java.util.Map;
@Linked
public class InventoryFillerCommand extends SWCommand {
private static final Map<Integer, Integer> POWER_TO_FILLLEVEL = new HashMap<>();
static {
POWER_TO_FILLLEVEL.put(0, 0);
POWER_TO_FILLLEVEL.put(1, 1);
POWER_TO_FILLLEVEL.put(2, 1 * 64 + 60);
POWER_TO_FILLLEVEL.put(3, 3 * 64 + 55);
POWER_TO_FILLLEVEL.put(4, 5 * 64 + 51);
POWER_TO_FILLLEVEL.put(5, 7 * 64 + 46);
POWER_TO_FILLLEVEL.put(6, 9 * 64 + 42);
POWER_TO_FILLLEVEL.put(7, 11 * 64 + 37);
POWER_TO_FILLLEVEL.put(8, 13 * 64 + 32);
POWER_TO_FILLLEVEL.put(9, 15 * 64 + 28);
POWER_TO_FILLLEVEL.put(10, 17 * 64 + 23);
POWER_TO_FILLLEVEL.put(11, 19 * 64 + 19);
POWER_TO_FILLLEVEL.put(12, 21 * 64 + 14);
POWER_TO_FILLLEVEL.put(13, 23 * 64 + 10);
POWER_TO_FILLLEVEL.put(14, 25 * 64 + 5);
POWER_TO_FILLLEVEL.put(15, 27 * 64 + 0);
}
public InventoryFillerCommand() {
super("inventoryfill");
}
@@ -21,8 +73,116 @@ public class InventoryFillerCommand extends SWCommand {
if (!inventoryFill) {
SWUtils.sendToActionbar(player, BauSystem.MESSAGE.parse("INVENTORY_FILL_ENABLE", player));
BauSystem.MESSAGE.send("INVENTORY_FILL_INFO", player);
}else {
} else {
SWUtils.sendToActionbar(player, BauSystem.MESSAGE.parse("INVENTORY_FILL_DISABLE", player));
}
}
@Register("gui")
public void gui(Player player) {
SWInventory inventory = new SWInventory(player, 18, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_NAME", player));
inventory.setItem(0, new SWItem(Material.REDSTONE, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 0)).setAmount(1));
inventory.setItem(1, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 1)).setAmount(1));
inventory.setItem(2, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 2)).setAmount(2));
inventory.setItem(3, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 3)).setAmount(3));
inventory.setItem(4, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 4)).setAmount(4));
inventory.setItem(5, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 5)).setAmount(5));
inventory.setItem(6, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 6)).setAmount(6));
inventory.setItem(7, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 7)).setAmount(7));
inventory.setItem(8, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 8)).setAmount(8));
inventory.setItem(9, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 9)).setAmount(9));
inventory.setItem(10, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 10)).setAmount(10));
inventory.setItem(11, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 11)).setAmount(11));
inventory.setItem(12, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 12)).setAmount(12));
inventory.setItem(13, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 13)).setAmount(13));
inventory.setItem(14, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 14)).setAmount(14));
inventory.setItem(15, new SWItem(Material.REDSTONE_TORCH, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_POWER", player, 15)).setAmount(15));
inventory.setItem(17, new SWItem(Material.TNT, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_TNT", player)));
for (int i = 0; i < 16; i++) {
inventory.setEventCallback(i, inventoryClickEvent -> {
selectInventoryType(player, inventoryClickEvent.getCurrentItem().getItemMeta().getDisplayName(), Material.DANDELION, POWER_TO_FILLLEVEL.get(inventoryClickEvent.getCurrentItem().getAmount()));
});
}
inventory.setEventCallback(17, inventoryClickEvent -> {
selectInventoryType(player, inventoryClickEvent.getCurrentItem().getItemMeta().getDisplayName(), Material.TNT, POWER_TO_FILLLEVEL.get(15));
});
inventory.open();
}
private final Material[] SHULKER_BOX_MATERIALS = new Material[]{
Material.SHULKER_BOX,
Material.WHITE_SHULKER_BOX,
Material.LIGHT_GRAY_SHULKER_BOX,
Material.GRAY_SHULKER_BOX,
Material.BLACK_SHULKER_BOX,
Material.BROWN_SHULKER_BOX,
Material.RED_SHULKER_BOX,
Material.ORANGE_SHULKER_BOX,
Material.YELLOW_SHULKER_BOX,
Material.LIME_SHULKER_BOX,
Material.GREEN_SHULKER_BOX,
Material.CYAN_SHULKER_BOX,
Material.LIGHT_BLUE_SHULKER_BOX,
Material.BLUE_SHULKER_BOX,
Material.PURPLE_SHULKER_BOX,
Material.MAGENTA_SHULKER_BOX,
Material.PINK_SHULKER_BOX
};
private void selectInventoryType(Player player, String name, Material material, int count) {
ItemStack[] itemStacks = new ItemStack[27];
int index = 0;
int amount = count;
while (amount > 0) {
ItemStack stack;
if (amount > 64) {
stack = new ItemStack(material, 64);
amount -= 64;
} else {
stack = new ItemStack(material, amount);
amount = 0;
}
itemStacks[index++] = stack;
}
SWInventory inventory = new SWInventory(player, 27, BauSystem.MESSAGE.parse("INVENTORY_FILL_GUI_NAME", player));
int i = 0;
for (Material type : SHULKER_BOX_MATERIALS) {
inventory.setItemEvent(i++, generateFilledInventory(name, type, itemStacks), inventoryClickEvent -> {
SWUtils.giveItemToPlayer(player, inventoryClickEvent.getCurrentItem());
});
}
inventory.setItemEvent(27 - 6, generateFilledInventory(name, Material.CHEST, itemStacks), inventoryClickEvent -> {
SWUtils.giveItemToPlayer(player, inventoryClickEvent.getCurrentItem());
});
inventory.setItemEvent(27 - 4, generateFilledInventory(name, Material.BARREL, itemStacks), inventoryClickEvent -> {
SWUtils.giveItemToPlayer(player, inventoryClickEvent.getCurrentItem());
});
inventory.open();
}
private ItemStack generateFilledInventory(String name, Material material, ItemStack[] itemStacks) {
ItemStack itemStack = new ItemStack(material);
BlockStateMeta meta = (BlockStateMeta) itemStack.getItemMeta();
BlockState state = meta.getBlockState();
if (state instanceof ShulkerBox box) {
box.getInventory().setContents(itemStacks);
box.update();
meta.setBlockState(box);
} else if (state instanceof Chest chest) {
chest.getInventory().setContents(itemStacks);
chest.update();
meta.setBlockState(chest);
} else if (state instanceof Barrel barrel) {
barrel.getInventory().setContents(itemStacks);
barrel.update();
meta.setBlockState(barrel);
}
meta.setDisplayName(name);
itemStack.setItemMeta(meta);
return itemStack;
}
}
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.killchecker;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.killchecker;
@@ -38,7 +38,6 @@ import org.bukkit.event.player.PlayerQuitEvent;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@Linked
public class KillcheckerCommand extends SWCommand implements Listener {
@@ -57,6 +56,10 @@ public class KillcheckerCommand extends SWCommand implements Listener {
@Register(value = "enable", description = "KILLCHECKER_HELP_ENABLE")
public void genericCommand(@Validator Player player, @OptionalValue("-outline") @StaticValue(value = {"-area", "-outline"}, allowISE = true) boolean onlyOutline) {
Region region = Region.getRegion(player.getLocation());
if (region.getBuildArea().isEmpty()) {
BauSystem.MESSAGE.send("KILLCHECKER_NO_BUILD", player);
return;
}
KillcheckerVisualizer killcheckerVisualizer = visualizers.computeIfAbsent(region, region1 -> new KillcheckerVisualizer(region1, bossBarService));
killcheckerVisualizer.recalc();
killcheckerVisualizer.show(player, onlyOutline);
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.killchecker;
@@ -22,8 +22,6 @@ package de.steamwar.bausystem.features.killchecker;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.region.Point;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.utils.RegionExtensionType;
import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.bausystem.utils.bossbar.BauSystemBossbar;
import de.steamwar.bausystem.utils.bossbar.BossBarService;
import de.steamwar.entity.REntity;
@@ -75,8 +73,8 @@ public class KillcheckerVisualizer {
public KillcheckerVisualizer(Region region, BossBarService bossBarService) {
this.region = region;
this.minPoint = region.getMinPoint(RegionType.BUILD, RegionExtensionType.NORMAL);
this.maxPoint = region.getMaxPoint(RegionType.BUILD, RegionExtensionType.NORMAL);
this.minPoint = region.getBuildArea().getMinPoint(false);
this.maxPoint = region.getBuildArea().getMaxPoint(false);
yArea = (maxPoint.getX() - minPoint.getX()) * (maxPoint.getZ() - minPoint.getZ());
zArea = (maxPoint.getX() - minPoint.getX()) * (maxPoint.getY() - minPoint.getY());
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader;
@@ -26,6 +26,7 @@ import de.steamwar.bausystem.features.loader.elements.LoaderInteractionElement;
import de.steamwar.bausystem.features.loader.elements.impl.LoaderTNT;
import de.steamwar.bausystem.features.loader.elements.impl.LoaderWait;
import de.steamwar.bausystem.shared.EnumDisplay;
import de.steamwar.core.SWPlayer;
import de.steamwar.inventory.SWAnvilInv;
import de.steamwar.inventory.SWItem;
import de.steamwar.inventory.SWListInv;
@@ -40,21 +41,17 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.player.PlayerQuitEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
public class Loader implements Listener {
private static final Map<Player, Loader> LOADER_MAP = new HashMap<>();
public class Loader implements Listener, SWPlayer.Component {
public static Loader getLoader(Player player) {
return LOADER_MAP.get(player);
return SWPlayer.of(player).getComponent(Loader.class).orElse(null);
}
public static void newLoader(Player player) {
LOADER_MAP.put(player, new Loader(player));
SWPlayer.of(player).setComponent(new Loader(player));
}
private final Player p;
@@ -73,7 +70,7 @@ public class Loader implements Listener {
Bukkit.getPluginManager().registerEvents(this, BauSystem.getInstance());
BauSystem.runTaskTimer(BauSystem.getInstance(), () -> {
if (stage != Stage.RUNNING) return;
if (stage != Stage.RUNNING && stage != Stage.SINGLE) return;
if(!Permission.BUILD.hasPermission(p)) return;
if (waitTime > 0) {
waitTime--;
@@ -93,6 +90,7 @@ public class Loader implements Listener {
element.execute(delay -> waitTime = delay);
if (waitTime > 0) {
if (element instanceof LoaderTNT) currentElement--;
waitTime--;
return;
}
}
@@ -144,17 +142,20 @@ public class Loader implements Listener {
recorder = null;
}
elements.clear();
LOADER_MAP.remove(p);
SWPlayer.of(p).removeComponent(Loader.class);
}
public boolean setTicksBetweenShots(int delay) {
if (elements.size() == 0) return false;
if (elements.isEmpty()) return false;
LoaderElement loaderElement = elements.get(elements.size() - 1);
if (loaderElement instanceof LoaderWait) {
((LoaderWait) loaderElement).setDelay(delay);
return true;
} else {
LoaderWait loaderWait = new LoaderWait(delay);
elements.add(loaderWait);
pause();
}
return false;
return true;
}
public void setTicksBetweenBlocks(int delay) {
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader;
@@ -44,7 +44,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
public class LoaderRecorder implements Listener {
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements;
@@ -1,25 +1,26 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.data.CMDs;
import de.steamwar.inventory.SWAnvilInv;
import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem;
@@ -113,7 +114,7 @@ public abstract class LoaderInteractionElement<T extends Enum<T> & LoaderSetting
});
listInv.setItem(48, new SWItem(Material.ARROW, "§7Back", clickType -> {
backAction.run();
}));
}).setCustomModelData(CMDs.BACK));
listInv.setItem(50, new SWItem(Material.GHAST_SPAWN_EGG, "§7Insert another Setting", clickType -> {
elements.add(defaultSetting);
extraPower.add(0);
@@ -150,7 +151,7 @@ public abstract class LoaderInteractionElement<T extends Enum<T> & LoaderSetting
SWInventory swInventory = new SWInventory(player, guiSize, BauSystem.MESSAGE.parse("LOADER_GUI_SETTINGS_TITLE", player));
for (int i = guiSize - 9; i < guiSize; i++) swInventory.setItem(i, new SWItem(Material.GRAY_STAINED_GLASS_PANE, "§7", clickType -> {}));
swInventory.setItem(guiSize - 9, new SWItem(Material.ARROW, BauSystem.MESSAGE.parse("LOADER_GUI_SETTINGS_BACK", player)).getItemStack(), clickType -> back.run());
swInventory.setItem(guiSize - 9, new SWItem(Material.ARROW, BauSystem.MESSAGE.parse("LOADER_GUI_SETTINGS_BACK", player)).setCustomModelData(CMDs.BACK).getItemStack(), clickType -> back.run());
swInventory.setItem(guiSize - 5, new SWItem(Material.WOODEN_AXE, BauSystem.MESSAGE.parse("LOADER_GUI_SETTINGS_COPY", player)).getItemStack(), clickType -> {
SWAnvilInv swAnvilInv = new SWAnvilInv(player, BauSystem.MESSAGE.parse("LOADER_GUI_COPY_TITLE", player), "1");
swAnvilInv.setCallback(s -> {
@@ -1,7 +1,7 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;
@@ -1,20 +1,20 @@
/*
* This file is a part of the SteamWar software.
* This file is a part of the SteamWar software.
*
* Copyright (C) 2023 SteamWar.de-Serverteam
* Copyright (C) 2025 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.features.loader.elements.impl;

Some files were not shown because too many files have changed in this diff Show More