3
0
Mirror von https://github.com/GeyserMC/Geyser.git synchronisiert 2024-12-27 08:30:12 +01:00
Commit graph

554 Commits

Autor SHA1 Nachricht Datum
Camotoy
f11dc6d03d
A better educated guess to fix the git branch 2022-09-18 15:56:46 -04:00
Camotoy
8605f0a91c
Use master languages branch 2022-09-18 15:56:30 -04:00
Camotoy
44e60b7ad8
An educated guess to fix Git branch 2022-09-18 15:40:44 -04:00
Camotoy
f71fa9ccac
Only check for correct protocol version once 2022-09-18 15:18:48 -04:00
Camotoy
bb2f4644be
Fix IO_Uring being included in builds 2022-09-18 15:11:18 -04:00
Camotoy
4e2d750791
Gatekeep RequestAbilityPackets to 1.19.30+ 2022-09-18 12:20:54 -04:00
Camotoy
64c03b9610
Correctly detect flying in 1.19.30 2022-09-18 12:18:47 -04:00
Camotoy
c8a51d7834
Update to release protocol 1.19.30 2022-09-17 16:37:30 -04:00
Konicai
0aa7411d02
Fix git branch on Jenkins (#3286) 2022-09-15 20:32:38 -04:00
Camotoy
83be01958f
Yeet logging into Microsoft with password
This has been broken for ages; we need to finally remove it.
2022-09-15 15:53:03 -04:00
Camotoy
27b948a09b
Use Indra to get branch name 2022-09-14 21:22:34 -04:00
Camotoy
e64e12ff98
Initial support for 1.19.30 Bedrock 2022-09-14 21:17:08 -04:00
Camotoy
6df8740955
Only register commands on Spigot if the extension has commands 2022-09-14 14:19:56 -04:00
Camotoy
a99afe4418
Remove usage of Fastutil Object2Reference maps
These are only beneficial for containsValue checks.
2022-09-13 16:24:08 -04:00
Camotoy
2d7a463089
Make Geyser dumps backwards compatible 2022-09-11 19:26:22 -04:00
RednedEpic
8fb22ee225 Merge branch 'master' into feature/extensions 2022-09-04 16:42:14 -05:00
RednedEpic
770dfca328 Fix dumps 2022-09-04 16:35:50 -05:00
ImDaBigBoss
f1da9d7072 Allow events to be registered by any class
Supersedes & closes #3073

Co-authored-by: Redned <redned235@gmail.com>
2022-09-04 16:11:08 -05:00
RednedEpic
db3b470225 Merge remote-tracking branch 'konicai/api-version-check' into feature/extensions 2022-09-04 13:17:20 -05:00
RednedEpic
e5337b6298 Reintroduce GeyserDefineCommandsEvent and cleanup a few things 2022-09-04 13:08:17 -05:00
Kevin Ludwig
a16fc9c07c
Add way to specify key for encrypted packs (#3263) 2022-09-03 14:12:48 -04:00
Camotoy
7d7a38a502 Indicate support for 1.19.22 2022-09-03 14:03:22 -04:00
Tim203
c07c7b9337
Added support for latest events version 2022-09-01 00:50:03 +02:00
AJ Ferguson
f8a84f9777
Loopback exemption fixes (#3261)
* Fix potential hang when checking loopback exemptions

* Remove single quotes from LoopbackExempt command
2022-08-31 16:42:38 -04:00
Camotoy
d9db035d95
Add example issue to Inventory#getBedrockId 2022-08-29 12:30:16 -04:00
AJ Ferguson
8e47a9f5e9
Ensure bedrock inventory id is at most 100 (#3260) 2022-08-29 12:26:30 -04:00
Kas-tle
1db77ad2bd
Fix address, port, & motd being ignored in config (#3259) 2022-08-28 20:42:31 -04:00
Camotoy
670308edc2
Update Netty version used in standalone 2022-08-26 11:19:23 -04:00
Camotoy
b7337fa032
Update mappings
Fixes #3252
2022-08-25 16:11:30 -04:00
Camotoy
29fcce7ec8
Add option to not log player IP addresses
Resolves #3246
2022-08-25 16:10:43 -04:00
Kas-tle
936fed1ded
Move sendMessage(Component) to GeyserCommandSource 2022-08-24 15:38:54 +00:00
Kas-tle
e35f3785b2
Resolve fallout 2022-08-24 04:53:13 +00:00
Kas-tle
9232310b4d
Upstream 2022-08-24 04:53:00 +00:00
Camotoy
8dde4b4347
Support Bedrock 1.19.21 2022-08-23 13:20:57 -04:00
Camotoy
82411978c8
Update languages submodule 2022-08-22 14:34:26 -04:00
Camotoy
d499e22502
Debugging always sneaks in... 2022-08-21 21:25:32 -04:00
Camotoy
67a65c45d3
Implement update notifications for Geyser
Geyser installations will now get notified when a new Bedrock release is out and Geyser must be updated. The system works similarly to ViaVersion where OPs get a notification of an update when they join. The permission node for players to see update notifications is `geyser.update` and the backing JSON that controls this can be found at https://github.com/GeyserMC/GeyserSite/blob/gh-pages/versions.json. There is also a config option to disable update checking.

This update also fixes modern Paper installations not being able to see colored text logged from Geyser in the console.
2022-08-21 21:22:15 -04:00
Camotoy
a3b1cf61ad
Geyser end of https://github.com/GeyserMC/GeyserOptionalPack/pull/34 2022-08-20 16:32:24 -04:00
Camotoy
3716b7a84f
Remove initialized check in movement
This probably isn't needed anymore. This was introduced in https://github.com/GeyserMC/Geyser/pull/41 and is probably no longer needed since we never send movement before the player is spawned, and we don't allow movement to go through until the Bedrock player matches the unconfirmed teleport we create in JavaPlayerPositionTranslator. By removing this we should fix some instances of players kicked for 'flying' as players joining in the air would never respond to gravity until Bedrock finished loading.
2022-08-20 14:56:40 -04:00
Tim203
13046a8602
Fixed building and switched event library 2022-08-13 22:48:12 +02:00
David Choo
33af9e094c
Fix missing cool down indicator when attacking mobs (#3230) 2022-08-12 22:25:07 -04:00
Tim203
ab6e0d1e16
Some more API changes 2022-08-12 01:01:26 +02:00
Tim203
80588a07bd
Initial API changes 2022-08-11 23:17:56 +02:00
Typical
fd4f683d15
Merge pull request #1 from TypicalShavonne/master
Set baby if armor stand is small for OptionalPack (#3210)
2022-08-11 14:40:00 +07:00
Kas-tle
50ea5eac9a
Set baby if armor stand is small for OptionalPack (#3210) 2022-08-10 18:05:59 -04:00
Konicai
737df21495
Merge remote-tracking branch 'upstream/master' into ext-1.19.20-fixes
# Conflicts:
#	ap/pom.xml
#	api/base/pom.xml
#	api/geyser/pom.xml
#	api/pom.xml
#	bootstrap/bungeecord/pom.xml
#	bootstrap/pom.xml
#	bootstrap/spigot/pom.xml
#	bootstrap/sponge/pom.xml
#	bootstrap/standalone/pom.xml
#	bootstrap/velocity/pom.xml
#	common/pom.xml
#	core/pom.xml
#	pom.xml
2022-08-10 17:01:02 -04:00
Konicai
ab2b79485b
Fix sending forms with floodgate for 1.19.20 (#3217)
* Fix sending forms with floodgate

* Comment about 1.19.20

* Swapped if-else

Co-authored-by: Tim203 <mctim203@gmail.com>
2022-08-10 22:09:55 +02:00
David Choo
25a18a2e4f
Fix maps not loading in Bedrock (#3218) 2022-08-09 21:35:26 -04:00
Camotoy
88727fb473
Bump Geyser to version 2.0.7-SNAPSHOT and default Bedrock to 1.19.20 2022-08-09 20:30:49 -04:00
Konicai
259fed247a
Merge remote-tracking branch 'upstream/master' into ext-1.19.20-fixes
# Conflicts:
#	core/pom.xml
2022-08-09 19:27:25 -04:00
Camotoy
eab92da988
Fix form responses on 1.19.20 2022-08-09 19:07:11 -04:00
7man7LMYT
ef81bdeb6b
Update items to 1.19.20 (#3215)
* Update to 1.19.20

* Add 1.19.20 mapping

* Revert biome changes
2022-08-09 16:52:53 -04:00
Konicai
ee5e916112
Merge remote-tracking branch 'upstream/master' into ext-1.19.20
# Conflicts:
#	core/pom.xml
2022-08-09 14:36:54 -04:00
Camotoy
f74713c0ed
Initial support for 1.19.20 Bedrock 2022-08-07 12:09:54 -04:00
Camotoy
3c27273eac
Indicate support for Java 1.19.2 2022-08-05 11:29:47 -04:00
Konicai
29c9bde9ef
Merge branch 'feature/extensions' into api-version-check 2022-08-04 18:18:21 -04:00
Konicai
67e3bf1f8d
Move extensions folder to Geyser's config folder (#3202)
* Move extensions folder to Geyser's config folder

* Move directory field
2022-08-04 17:55:12 -04:00
Konicai
22b16e3587
Merge branch 'feature/extensions' into api-version-check 2022-08-03 11:29:31 -04:00
Konicai
36ef23b24e
Don't allow empty extension name 2022-08-03 00:30:22 -04:00
Konicai
aa7d0f4a57
Use class for reading extension.yml 2022-08-03 00:20:27 -04:00
Konicai
a5dc70a3b5
Refactor extension description 2022-08-02 23:22:08 -04:00
Konicai
17f3deb8df
try to reset languages 2022-08-02 01:11:17 -04:00
Konicai
7121051d9a
Merge mistake fixes 2022-08-02 00:25:07 -04:00
Konicai
aee43e68fa
Merge remote-tracking branch 'upstream/master' into feature/extensions
# Conflicts:
#	ap/pom.xml
#	api/base/pom.xml
#	api/geyser/pom.xml
#	api/pom.xml
#	bootstrap/bungeecord/pom.xml
#	bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java
#	bootstrap/pom.xml
#	bootstrap/spigot/pom.xml
#	bootstrap/sponge/pom.xml
#	bootstrap/standalone/pom.xml
#	bootstrap/standalone/src/main/java/org/geysermc/geyser/platform/standalone/GeyserStandaloneBootstrap.java
#	bootstrap/velocity/pom.xml
#	common/pom.xml
#	core/pom.xml
#	core/src/main/java/org/geysermc/geyser/command/CommandManager.java
#	core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java
#	core/src/main/resources/languages
#	pom.xml
2022-08-02 00:01:05 -04:00
Camotoy
6856922f42
Don't let players change their own gamemode without permission
Fixes #3191
2022-08-01 14:45:03 -04:00
Camotoy
51d9320500
Bungee: Check for potentially outdated proxies 2022-08-01 11:01:24 -04:00
Camotoy
ab5e5a661d
Update wording on saved-user-logins 2022-08-01 00:37:17 -04:00
davchoo
42fdbeb647
Add basis for overriding Bedrock block states
Fix missing providers when used in GeyserDefineCustomBlocksEvent
2022-07-29 18:21:14 -04:00
davchoo
d00886e12a
Fix adding duplicate block states for custom blocks with 0 properties
Remove defaultBlockState CustomBlockState field from
GeyserCustomBlockData since it creates a circular reference
2022-07-28 23:24:01 -04:00
davchoo
36f540f401
Fix isIncorrectHeldItem check for custom skull blocks
Add defaultBlockState to CustomBlockData
2022-07-28 20:43:06 -04:00
davchoo
2ca368019c
Use identifier from CustomBlockData in SkullResourcePackManager 2022-07-28 19:43:03 -04:00
Camotoy
d826949b01
Indicate support for Bedrock 1.19.11 2022-07-28 18:09:35 -04:00
Camotoy
8f8964761a
Merge branch 'feature/1.19.1' 2022-07-28 17:45:55 -04:00
Camotoy
4163de9314
Translate allay dancing 2022-07-28 17:45:38 -04:00
davchoo
9f4f2aca94
Revert "Crop and reorder skull textures to eliminate unused space"
This reverts commit 15fd5353e1.
2022-07-28 14:33:22 -04:00
davchoo
15fd5353e1
Crop and reorder skull textures to eliminate unused space
Should reduce memory & storage usage for Bedrock clients
2022-07-27 22:32:18 -04:00
davchoo
8244afa8c7
Convert skull floor geometries into a template
Should be easier to modify in needed in the future.
2022-07-27 18:43:42 -04:00
davchoo
5676870dd8
More API changes
Convert CustomBlockPermutation into a record
Change materialInstances in CustomBlockComponents Builder to
materialInstance
Reuse box components in CustomSkull
2022-07-27 18:25:04 -04:00
Camotoy
c914938acb
Fix clientbound action serialization 2022-07-27 16:55:57 -04:00
Camotoy
45b05d14be
Compiles; bump version 2022-07-27 16:38:51 -04:00
davchoo
f5d23a6d00
Add custom block stuff to provider registry loader 2022-07-26 20:25:37 -04:00
davchoo
88725f89a3
Merge branch 'feature/extensions' into feature/blockstuff-updated
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/GeyserImpl.java
#	core/src/main/java/org/geysermc/geyser/registry/provider/GeyserBuilderProvider.java
2022-07-26 18:50:30 -04:00
Camotoy
40fde6b046
Some nitpicks and cleaning up the provider API
The command changes here are not final. Internally we're discussing if we want to allow extensions to register root commands on platforms.
2022-07-26 18:33:39 -04:00
davchoo
cb0b52b997
Disable collision box & selection box when box is empty
Fix incorrect collision names used in CustomBlockComponentsBuilder
2022-07-25 15:59:24 -04:00
davchoo
e9e89b4b5c
Update custom block nbt for v534 2022-07-25 11:55:34 -04:00
davchoo
8247e737c1
Merge branch 'feature/extensions' into feature/blockstuff-updated
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/registry/BlockRegistries.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java
2022-07-25 11:29:07 -04:00
Camotoy
f4a5ccb1f9
Empty villager trades are valid
Fixes #3171
2022-07-24 19:41:05 -04:00
Camotoy
a18ac29a91
Initial 1.19.1 Java support 2022-07-24 19:32:22 -04:00
Camotoy
41273001d8
Fix chunks on Hypixel 2022-07-24 13:51:17 -04:00
Camotoy
76bb5d4d88
Fix persistent FOV when walk speed is ever set to zero
Fixes #3139
2022-07-23 10:50:43 -04:00
Camotoy
0efd04dd87
Initial code for /geyser connectiontest
This command acts as a testing ground for debugging Unable to Connect to World. More checks will be added in the future.
2022-07-20 19:59:03 -04:00
Camotoy
616c088b66
Fix custom items with ItemTranslator#getBedrockItemMapping 2022-07-20 18:35:40 -04:00
sctigercat1
467286060c
Update items to 1.19.10 (#3151)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-07-19 21:23:04 -04:00
David Choo
3de2b33e30
Armor stand fixes (#3147)
Co-authored-by: David Choo <davchoo@users.noreply.github.com>
Co-authored-by: The Judge <53906078+thejudge156@users.noreply.github.com>
2022-07-17 21:00:08 -04:00
Kas-tle
46faf02474 Merge remote-tracking branch 'upstream/master' into feature/extensions 2022-07-14 01:46:26 +00:00
Camotoy
f6f8886f23
Fix PS4 players crashing on certain dimension switches 2022-07-13 21:31:10 -04:00
Kas-tle
1b5f237996 Merge remote-tracking branch 'upstream/master' into feature/extensions 2022-07-12 20:17:23 +00:00
Camotoy
109e1c0a97
Fix dropping items in 1.19.10 2022-07-12 16:05:06 -04:00
Kas-tle
2dbd39c5a4
Per review by @Camotoy 2022-07-12 16:33:57 +00:00
Kas-tle
bca6359f7e
1.19.10 fallout 2022-07-12 05:29:39 +00:00
Kas-tle
363d72da91
Merge remote-tracking branch 'origin/master' into feature/extensions 2022-07-12 05:26:52 +00:00
Camotoy
16bb79e7aa
Support HAProxy in legacy ping passthrough 2022-07-11 08:38:26 -04:00
davchoo
49550a513c
Move custom skull config stuff to its own file
Custom skulls can now be added by username, uuid, and textures

Move skull nbt stuff from requestTexturesFromUsername to
SkullBlockEntityTranslator
Add requestTexturesFromUUID
2022-07-10 21:08:07 -04:00
Camotoy
83ba6b5ab5
Extensions have their own command 2022-07-10 20:58:48 -04:00
davchoo
a577512dac
Apply some suggestions from Camotoy 2022-07-10 18:42:38 -04:00
Camotoy
4656383c67
Bump to 2.0.5-SNAPSHOT 2022-07-10 17:05:19 -04:00
Camotoy
fa726092e3
A cleaner error on illegal set slot packet 2022-07-10 15:52:11 -04:00
Camotoy
4d0952c224
Initial support for 1.19.10 Bedrock 2022-07-10 13:33:39 -04:00
davchoo
86c822631c
Clean up custom block api a bit 2022-07-10 12:26:52 -04:00
Camotoy
2ce7ff850a
Support the 1.19.0 Java block prediction/ack system 2022-07-09 23:02:19 -04:00
davchoo
08c24cb462
Use block states more efficiently for custom skulls
21 block states vs 48 block states
2022-07-09 21:05:22 -04:00
Camotoy
897c4dcfec
Changes 2022-07-09 18:39:02 -04:00
davchoo
d07a06cd3b
Fix formatting and names for player skulls 2022-07-09 15:16:29 -04:00
davchoo
774b300f8d
Add config options for custom blocks and custom skull blocks 2022-07-09 13:36:18 -04:00
Yashar
ab4800c4f2
Fix login screen not closing (#3122) 2022-07-08 19:01:00 -04:00
davchoo
9e0af6e098
Auto generate skull resource pack
Change `davchoo` to `geyser` in geometry
2022-07-08 14:49:19 -04:00
davchoo
49f7f6d2f9
Remove skull translation events and define custom blocks for custom skulls
Clean up skull block translation a bit
2022-07-07 16:18:24 -04:00
davchoo
f553dee3a5
Attempt to clean up some code 2022-07-07 05:06:28 -04:00
davchoo
c2a6e8ce70
Rename some stuff 2022-07-06 09:12:52 -04:00
davchoo
0eb7218582
Super cursed custom skulls custom block 2022-07-05 03:41:20 -04:00
David Choo
dc810f1d39
Fix break time while submerged in water (#3110)
* Fix break time while submerged in water

* Review stuff

* LAYERS -> LEVELS
2022-07-02 21:17:14 -04:00
RednedEpic
f9fd7cb831 Fix Geyser not working in IDE 2022-07-02 12:42:31 -05:00
RednedEpic
b5eb27693f Use an immutable view in GeyserDefineCommandsEvent
Methods to properly register/unregister commands are provided in the command manager
2022-07-02 12:30:23 -05:00
ImDaBigBoss
36c49a7256
Custom item support for extensions (#2822)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-07-02 12:50:16 -04:00
AJ Ferguson
f2f894b1d1
Fix IronGolem cracked texture and sound (#3103)
* Update mappings submodule

* Set IronGolem maxHealth to 100 by default

Fixes cracked texture on vanilla servers

* Add detail to comment
2022-06-30 17:40:30 -04:00
Camotoy
13e8b59ed0
Quick fix for NPE in SystemChatTranslator
This won't matter in 1.19.1 so.
2022-06-30 16:53:55 -04:00
Camotoy
f62484b93e
Update Adventure to fix click event deserialization
Fixes #3054
2022-06-29 16:42:30 -04:00
David Choo
5d29bda7eb
Fix incorrect patterns in loom and DecoderException in beacons (#3090)
* Fix DecoderException when setting beacon effect

* Fix incorrect patterns applied in loom and remove old version stuff
2022-06-26 19:12:43 -04:00
Camotoy
00603c5239
Fix creeper primed sound 2022-06-26 18:45:47 -04:00
Camotoy
2ea50116cf
Forward cooldowns for shields and goats
These are server-controlled as of 1.19. Ender pearls and chorus fruit still appear to be client-controlled.
2022-06-24 23:13:35 -04:00
David Choo
9ea22042eb
Fix some item interactions (#3083)
* Remove Bedrock only banner patterns from the creative inventory

* Add sound for tadpole bucket

* Fix lily pad and frogspawn placing on mobile/single stacks

* Workaround? Fix? for bucket usage on mobile

* Simplify math and update position+rotation whenever ServerboundUseItemPacket is sent

* Rotate the player back after using an item and fix glass bottles

* ITEM_USE actionType 1 does not need the rotation fix

Increase delay for look back

* Add some checks

* Prevent buckets and spawn eggs from being unintentionally placed when interacting with special blocks

As of 1.19 Bedrock no longer sends a PlayerActionPacket with action=BLOCK_INTERACT. Bedrock now sends action=ITEM_USE_ON_START before and action=ITEM_USE_ON_STOP after using an item on a block. However, this is not useful as it is sent for all block interactions.

* Fix inventory transactions being rejected after restoreCorrectBlock

The held item's netId is always 0 in the InventoryTransactionPacket.

* Touch ups

* Fix lookAt for different poses and sneaking + cauldron + bucket interactions

Fix boat items being desynced when placing them very close to collision
Fix bottles being desynced when tapping above water

Resend the held item if we do encounter a desync

* Avoid getting blockstate twice and fix comment

* Use generated interaction data

* Fix glass bottles being double filled and phantom water bottles/water buckets

* Don't update the entire inventory on useItem

* Use Geyser's inventory copy for check

* Use ItemTranslator#getBedrockItemMapping to avoid NBT translation

* mappings

Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2022-06-24 16:48:28 -04:00
Camotoy
60327339d6
Indicate support for Bedrock 1.19.2 2022-06-23 21:24:26 -04:00
AJ Ferguson
18f6836c15
Set default Warden heartBeatDelay to 40 (#3071) 2022-06-18 15:32:51 -04:00
Xamyr
fef0401add
Fixed armorstand passenger yOffset (#2976) 2022-06-17 22:15:31 -04:00
AJ Ferguson
71c489b462
Add missing villager entity events (#3063) 2022-06-17 12:25:49 -04:00
Camotoy
5b67c78785
Allow Minecraft locales to be loaded even if offline 2022-06-16 17:14:47 -04:00
David Choo
5e1769d2bd
Translate goat horns (#3057) 2022-06-15 22:55:11 -04:00
Camotoy
ea21e0323a
Map correct glass sounds
Fixes #3049
2022-06-15 21:38:10 -04:00
Camotoy
7739e8097e
Another locale string to pick up on for outdated servers 2022-06-15 19:59:27 -04:00
Camotoy
4405989b81
Fix compiling 2022-06-15 18:36:55 -04:00
Camotoy
ddd2262380
Custom chat types at login are valid
Fixes https://github.com/GeyserMC/Geyser-Fabric/issues/55
2022-06-15 18:32:27 -04:00
rtm516
aa097ecdc4
Fix java style queries responding incorrectly (#3051) 2022-06-14 19:51:45 -04:00
ImDaBigBoss
db003293e9 Merge master 2022-06-12 10:33:32 +02:00
Camotoy
162aff4978
Better handle chat packets sent before login 2022-06-10 10:27:07 -04:00
Camotoy
f1a12d1feb
Bump mappings and MCProtocolLib 2022-06-09 18:34:25 -04:00
Camotoy
72a9df58e0
Properly support differently setup chat registries
ViaVersion has two entries in its fake chat registry that are not in the same order as Java. This commit supports that properly and renders subtitled text correctly.

Resolves #3023
2022-06-08 22:30:34 -04:00
ImDaBigBoss
4e2f74481b Updated to 1.19 2022-06-08 14:09:14 +02:00
Camotoy
78bb69be42
Fix LevelEvent reading 2022-06-07 15:07:54 -04:00
Camotoy
2595eae300 Bump to 2.0.4-SNAPSHOT 2022-06-07 11:14:58 -04:00
Camotoy
c8856d487d
Compile too 2022-06-06 22:56:08 -04:00