Commit Graph

5155 Commits

Author SHA1 Message Date
Felix Cravic e866f79f10 Rewrite of the storage system (use of RocksDB by default) 2020-05-04 18:15:29 +02:00
Draycia 9308d5701d Add component support to Player#kick 2020-05-04 09:10:19 -07:00
Draycia 1c2620840f Add more component support to Player 2020-05-04 09:00:21 -07:00
Draycia 9e9e979104 Fix packets changed with text replacement 2020-05-04 01:01:12 -07:00
Draycia 5b97dde21f Merge remote-tracking branch 'upstream/master' 2020-05-03 23:55:44 -07:00
Draycia 6d45dc674d Fix item names and lore 2020-05-03 23:07:25 -07:00
jglrxavpok edf2def4e4 hashCode and equals for BlockPosition 2020-05-04 00:09:40 +02:00
jglrxavpok 05acfdf59f New event for when an item is used on a block 2020-05-03 22:44:38 +02:00
jglrxavpok c28b0364ba Hoping this un-breaks falling blocks 2020-05-03 16:19:41 +02:00
jglrxavpok 9779a77212 Non solid blocks should not count as solid 2020-05-03 16:15:35 +02:00
jglrxavpok c79d4c7874 Rewrote physics once again. This time going through walls should be more difficult 2020-05-03 15:54:12 +02:00
Draycia 4ba85b4ff3 Temporarily fix inventories 2020-05-03 06:26:46 -07:00
Draycia 1b5bf59c26 Fix death messages 2020-05-03 06:00:53 -07:00
Felix Cravic df1653b0f6 Allow to have "separate block" serialized properly 2020-05-03 14:46:44 +02:00
Draycia ad4193d934 Fix player sendMessage methods 2020-05-03 05:17:32 -07:00
Draycia 5437fa90cc Remove old Chat methods
Note: I'm 100% certain things will break because of theee changes. I'll fix things as I find them broken. 10/10 strategy.
2020-05-03 05:05:43 -07:00
Draycia 83bb14d5a0 Use kyori/text instead of minecraft-text 2020-05-03 04:59:53 -07:00
Felix Cravic 7fd8362d6c ChunkPopulator fix by clearing data list 2020-05-02 23:48:01 +02:00
Felix Cravic e7c26ab45e Added ChunkPopulator 2020-05-02 23:45:10 +02:00
jglrxavpok 1aefbca70a Entity Physics are behaving a bit better
Still possible to go through walls though
2020-05-02 23:34:09 +02:00
TheMode 69e7496fbb
Merge pull request #3 from Articdive/use-jnoise
Use JNoise instead of FastNoise
2020-05-02 23:18:43 +02:00
Lukas Mansour (Articdive) 9682246f4f Use JNoise instead of FastNoise 2020-05-02 23:16:41 +02:00
Felix Cravic cd181929c6 Fix inventory click, proper separation between Inventory & PlayerInventory for events and conditions (+ InventoryPreClickEvent and InventoryClickEvent) 2020-05-02 18:45:34 +02:00
jglrxavpok bfc3975750 Fixed y >= 128 serialization in chunks 2020-05-02 16:16:14 +02:00
jglrxavpok 2bd5b1786b Support for translations in text messages, only used by DamageTypes for the moment 2020-05-02 15:26:28 +02:00
jglrxavpok e57addcbf7 Differentiate scheduled and general updates 2020-05-01 23:48:52 +02:00
jglrxavpok 4ca4631f8a Revert "Automatically set the new instance of an entity when adding it to an instance"
This reverts commit 2fd7f2b3
2020-05-01 23:38:56 +02:00
jglrxavpok edbc189b98 Set lastUpdateTime on task creation, otherwise delayed task won't be delayed 2020-05-01 23:35:56 +02:00
jglrxavpok 2fd7f2b310 Automatically set the new instance of an entity when adding it to an instance 2020-05-01 23:32:25 +02:00
jglrxavpok 9b465830e0 Fixed custom block removal when breaking it 2020-05-01 23:18:32 +02:00
jglrxavpok d96bf48eb2 Remove custom block when breaking it
Use Math.floor() to correct coordinates
2020-05-01 23:05:47 +02:00
jglrxavpok f38d3718c3 Neighbor updates 2020-05-01 22:08:31 +02:00
jglrxavpok 08a32c4492 User-friendly update scheduling 2020-05-01 21:54:01 +02:00
jglrxavpok feae9f1cd3 Resource gatherer to extract data from Minecraft's server jar instead of distributing our own 2020-05-01 21:29:34 +02:00
Felix Cravic 7980ee6ebb Fixed inventory held click & slot on InventoryCondition 2020-04-30 02:42:44 +02:00
Felix Cravic 4b3e3e8e65 An inventory can now have multiple InventoryCondition 2020-04-30 01:51:16 +02:00
jglrxavpok 1cb8166edd Actually fix issue direction issue with yaw < 0 2020-04-29 22:07:37 +02:00
jglrxavpok 9e7f05c311 Fix issue when finding direction with MathUtils when yaw < 0 2020-04-29 21:37:20 +02:00
Felix Cravic 7eee0c788f WIP Enchantments (de)serialization 2020-04-29 20:17:04 +02:00
Felix Cravic 0354a60635 Added Enchantment & PotionType enum + PlayerCommandEvent call 2020-04-29 19:23:47 +02:00
Felix Cravic c2af4be2fa Can now define an inventory to open after closing another + added a bunch of inventory type 2020-04-29 17:27:58 +02:00
Felix Cravic 0782ee7fe5 Added the InventoryCloseEvent event 2020-04-29 12:11:13 +02:00
Felix Cravic db1e108464 Fixed PlayerInventory craft result slot 2020-04-29 11:40:58 +02:00
jglrxavpok 2292261de7 Allow for a different visual block to be placed along a custom block 2020-04-29 00:42:18 +02:00
jglrxavpok 365cdf7818 Correct visual ID when overriding in PlayerBlockPlaceEvent 2020-04-29 00:20:20 +02:00
jglrxavpok 263713ab49 Custom block breaking and data creation now both have an instance and a position accessible 2020-04-29 00:12:59 +02:00
Felix Cravic d49cfc2215 Deleted an useless register method 2020-04-28 23:56:24 +02:00
Felix Cravic 2473a1bbe6 Instance#refreshBlockId optimization 2020-04-28 23:43:37 +02:00
Felix Cravic 93f1b240da Merge remote-tracking branch 'origin/master' 2020-04-28 23:39:09 +02:00
Felix Cravic d0c523f0e5 Added a way to change CustomBlock blockId just after placement + more BlockAlternative tools 2020-04-28 23:38:44 +02:00
jglrxavpok 483cf7aa88 Added opposite() convenience method to Direction 2020-04-28 22:45:44 +02:00
Felix Cravic a06274f877 Cleanup + updated RedstonePlacementRule 2020-04-28 22:08:39 +02:00
jglrxavpok 54111ece6a Convenience method to find horizontal Direction based on yaw, easier block properties usage and PlayerBlockPlaceEvent now references the player placing the block 2020-04-28 21:52:06 +02:00
jglrxavpok 9b25f5d95b Allow server to be stopped cleanly 2020-04-28 19:23:02 +02:00
Felix Cravic 98875df389 Small tweaks 2020-04-28 19:22:47 +02:00
Felix Cravic e022881554 Fixed inventory id generation 2020-04-28 18:55:09 +02:00
Felix Cravic f5212e3bf6 Merge remote-tracking branch 'origin/master' 2020-04-28 18:16:13 +02:00
Felix Cravic a4922e60fa Added InventoryData 2020-04-28 18:16:00 +02:00
jglrxavpok 85da9203b1 Custom blocks can block item interaction, prevents blocks being placed when opening containers 2020-04-28 18:12:06 +02:00
Felix Cravic 6d9ac0b35d CustomBlock#getBreakDelay is now optional 2020-04-28 17:58:34 +02:00
Felix Cravic b128074c75 Reworked data management 2020-04-28 17:36:17 +02:00
Felix Cravic 08015586a0 Merge remote-tracking branch 'origin/master' 2020-04-28 17:11:35 +02:00
Felix Cravic 60cc562435 Changed DataType class and its implementation 2020-04-28 17:11:12 +02:00
jglrxavpok b09db32ddc Send effects to players 2020-04-28 16:08:21 +02:00
Felix Cravic 03f4e19db3 Reduce needed map checks for InstanceContainer#setCustomBlock 2020-04-28 15:41:29 +02:00
Felix Cravic 8050708ecf Changed BlockPosition arg to CustomBlock#createData 2020-04-28 15:25:56 +02:00
jglrxavpok f8f649852b Allow PlayerBlockPlaceEvent callbacks to change the block placed.
Can be used to place custom blocks in replacement of normal ones.
2020-04-28 13:47:41 +02:00
jglrxavpok 4c6d31fac1 Allow custom blocks to initialize their data on placement 2020-04-28 13:23:49 +02:00
Felix Cravic f00bdc66bf Fixed ItemStackData#decode 2020-04-28 03:06:37 +02:00
Felix Cravic e43325edd8 Added ItemStack data type 2020-04-28 03:02:29 +02:00
Felix Cravic 0946c8ce11 Moved the ResponseDataConsumer definition to MinecraftServer#start 2020-04-28 02:33:15 +02:00
jglrxavpok 7ea87b56c2 Wrong check in StatusRequestPacket, show actual error when running 2020-04-28 01:39:53 +02:00
Felix Cravic 48c4941813 We can now have multiple listeners 2020-04-28 01:20:11 +02:00
Felix Cravic 38abe55161 Added Block object to the CustomBlock constructor 2020-04-28 01:01:54 +02:00
Felix Cravic f544f090ae Added SerializableData 2020-04-28 00:24:10 +02:00
Felix Cravic 754821f447 Fixed gamemode command (CommandBuilder update) 2020-04-27 23:36:22 +02:00
Felix Cravic ce40627a36 Added CustomBlock#getCustomBlockId, it is now defined by the developer and not increased automatically by a counter 2020-04-27 23:13:17 +02:00
Felix Cravic 22511ca052 Added damage application verification 2020-04-27 23:03:21 +02:00
Felix Cravic bf795c1442 Added EntityDamageEvent 2020-04-27 22:38:11 +02:00
jglrxavpok bdab9bf71f Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	src/main/java/net/minestom/server/entity/Player.java
2020-04-27 21:16:24 +02:00
jglrxavpok 7e3bc22bc4 Chat messages when player dies and cleaner damage types 2020-04-27 21:12:42 +02:00
jglrxavpok 6b77627d60 Implemented damage types and void below world 2020-04-27 20:33:08 +02:00
Felix Cravic 51811a5909 Added dimension support 2020-04-27 18:46:39 +02:00
Felix Cravic 26debd0d4b Optimization + fixed custom block placement 2020-04-26 20:41:58 +02:00
Felix Cravic d4cf29c7a7 Less magic values 2020-04-26 19:17:04 +02:00
Felix Cravic 161e229985 Cleanup 2020-04-26 17:03:42 +02:00
Felix Cravic 1639a4947c Amazingly fast block getter 2020-04-26 16:51:00 +02:00
Felix Cravic 005d95e97b WIP chunk storage rework (use an array instead of a map) hope that this is working 2020-04-26 16:08:04 +02:00
Felix Cravic 18019277e6 Update 2020-04-26 06:34:08 +02:00
Felix Cravic 3614c378f3 Optimization + added Recipe#shouldShow check 2020-04-26 04:50:38 +02:00
Felix Cravic 9d0cec23df Making pathfinder maxCheck configurable 2020-04-25 23:58:17 +02:00
Felix Cravic cbffd37c8e Added aliases support to CommandProcessor 2020-04-25 23:51:45 +02:00
Felix Cravic 5980943344 Finally a homemade pathfinder 2020-04-25 23:06:16 +02:00
Felix Cravic 6f5ff41c57 Optimization + fix non-solid block entity collision 2020-04-25 20:40:08 +02:00
Felix Cravic d7e9a3a23f Remove useless equipments sync 2020-04-24 18:39:35 +02:00
Felix Cravic 2f6205b577 Added ItemUpdateStateEvent + batch file clean 2020-04-24 17:43:35 +02:00
Felix Cravic 90925b4967 Block/chunk batching should be much faster 2020-04-24 11:33:29 +02:00
Felix Cravic 7daac5e610 Package rename to net.minestom.server 2020-04-24 03:25:58 +02:00
Felix Cravic 5d7f538ab7 WIP block entity 2020-04-24 00:17:40 +02:00
Felix Cravic 6da352f192 Optimization + a data data type (huh) 2020-04-23 23:46:36 +02:00
Felix Cravic f4aa328849 Fixed a random instance crash 2020-04-23 13:43:31 +02:00
Felix Cravic 4570e7a013 Added ItemStack#getAirItem 2020-04-23 12:30:49 +02:00
Felix Cravic 3f15701256 WIP entity/block collision/gravity 2020-04-23 01:26:45 +02:00
Felix Cravic 69e46274da Block collision improvement 2020-04-22 21:45:15 +02:00
Felix Cravic 51308ce920 Added Block#isLiquid 2020-04-22 20:14:27 +02:00
Felix Cravic 0a30554a5a Fixed EntityCreature walking collision 2020-04-22 19:09:57 +02:00
Felix Cravic 26276af29e Added a packet listener 2020-04-22 18:48:27 +02:00
Felix Cravic bd8ccd427c Fixed move event + added a bunch of data type 2020-04-22 16:48:55 +02:00
Felix Cravic 01c348349b Added Block#isSolid and fixed player collision 2020-04-22 13:49:52 +02:00
Felix Cravic ab3aabf6b0 Update 2020-04-22 02:42:58 +02:00
Felix Cravic 7cbb964e21 Added dropping functions + fixes 2020-04-21 15:31:41 +02:00
Felix Cravic f596a8fa84 Update + fixed animations 2020-04-20 23:43:09 +02:00
Felix Cravic 68d8513e1a Fully functional inventory clicks 2020-04-20 20:57:04 +02:00
Felix Cravic 4c25a61720 Optimization + block collision 2020-04-20 18:46:39 +02:00
Felix Cravic 07a0ba2f54 Update 2020-04-19 14:57:27 +02:00
Felix Cravic d53cb49648 Update 2020-04-18 18:03:26 +02:00
Felix Cravic 3940927b5e Update 2020-04-18 15:35:37 +02:00
Felix Cravic 406dad1385 Some fixes 2020-04-17 21:34:01 +02:00
Felix Cravic 29c940b372 Inventory click update 2020-04-17 19:24:59 +02:00
Felix Cravic d7372ce853 Optimization + added stats 2020-04-17 15:58:07 +02:00
Felix Cravic 944ac43b3f Optimization + fixed random tcp crash 2020-04-17 03:44:00 +02:00
Felix Cravic 4af1c0388c Switch to netty (network rewrite) 2020-04-17 01:16:02 +02:00
Felix Cravic f52e0dd6ba Prepare the switch to netty 2020-04-16 16:40:29 +02:00
Felix Cravic 656ccac26d Update 2020-04-16 14:51:21 +02:00
Felix Cravic cb194db4c0 Update 2020-04-15 16:35:25 +02:00
Felix Cravic db9549560c Update + added particles 2020-04-15 13:20:28 +02:00
Felix Cravic c2580789b9 Update + added benchmark tool 2020-04-13 17:17:21 +02:00
Felix Cravic 126d778221 Added redstone placement 2020-04-12 10:24:25 +02:00
Felix Cravic a8f48aafe9 Lot of new packets 2020-04-11 17:21:53 +02:00
Felix Cravic c8ebe32116 Sound & header/footer 2020-04-10 13:39:22 +02:00
Felix Cravic 66572db705 Added sound 2020-04-10 13:18:03 +02:00
Felix Cravic be36486285 Registry update 2020-04-10 12:45:04 +02:00
Felix Cravic a2b36f56c0 Added block registry 2020-04-10 10:31:49 +02:00
Felix Cravic 2db7474b68 Update 2020-04-09 14:25:42 +02:00
Felix Cravic 289ee48816 Update 2020-04-08 10:10:05 +02:00
Felix Cravic 35b77e4e8c Update 2020-04-05 17:46:29 +02:00
Felix Cravic 3b06c5b9ef Update 2020-04-05 10:15:21 +02:00
Felix Cravic 4dd3bd607d Update 2020-04-01 13:16:18 +02:00
Felix Cravic 7b11a54d29 Inventory update 2020-03-31 12:37:51 +02:00
Felix Cravic 5c2771c059 Update 2020-03-30 19:48:25 +02:00
Felix Cravic 994494c5de Update 2020-03-29 20:58:30 +02:00
Felix Cravic 212fceb142 Update 2020-03-20 19:50:22 +01:00
Felix Cravic a4ade2a806 Proper separation 2020-02-17 17:33:53 +01:00
Felix Cravic 0cd6eadd7e Better inventory management & typo 2020-02-16 19:11:36 +01:00
Felix Cravic b8319217ab Optimization & proper ItemStack reader 2020-02-13 15:14:41 +01:00
Felix Cravic e9809b20ac Cleaned code & added some packets 2020-02-11 16:48:06 +01:00
Felix Cravic b1b41afebb 1.15.2 update 2020-02-09 15:34:09 +01:00
TheMode c66020a196 Bugs fixes & scheduled task API 2019-09-23 19:56:08 +02:00
TheMode 5c0056e183 General optimization 2019-09-21 20:42:27 +02:00
TheMode d833963414 WIP blocks update 2019-09-15 16:30:38 +02:00
TheMode 972ed294d3 WIP per block data 2019-09-15 13:42:36 +02:00
TheMode be6cdf8e72 Chunk memory/performance improvement 2019-09-14 19:27:25 +02:00
TheMode e8aa4bfe9e General optimization 2019-09-14 18:00:18 +02:00
TheMode 0fc6234b72 Added json message & scoreboard API 2019-09-10 06:59:15 +02:00
TheMode 879f9e7c42 Fixes & added data serializer 2019-09-07 11:42:33 +02:00
TheMode b517c1091e Optimization 2019-09-06 16:05:36 +02:00
TheMode c23b937c4b Some fixes 2019-09-03 07:36:04 +02:00
TheMode 81c0626e57 Switched to SimpleNet 2019-09-02 06:02:12 +02:00
TheMode dedc17f42e Update 2019-09-01 06:18:41 +02:00
TheMode f43bf11e66 Fixed teleportation & improved first chunk loading 2019-08-31 12:10:46 +02:00
TheMode 666f433ae7 Updated packets reader/writer 2019-08-31 07:54:53 +02:00
TheMode d929730a61 Update 2019-08-30 01:17:46 +02:00
TheMode 932fb6ae2b Update 2019-08-29 02:15:52 +02:00
TheMode 8b95e3881d Added gravity 2019-08-27 20:49:11 +02:00
TheMode 0a732034c2 Update 2019-08-27 05:23:25 +02:00
TheMode 4b1fac6cd4 WIP chunk loading fix 2019-08-26 04:39:58 +02:00
TheMode b13a888170 Added entity properties & removed unnecessary reflection 2019-08-26 00:29:40 +02:00
TheMode e0eb35e81e Auto chunk load & death manager 2019-08-25 20:03:43 +02:00
TheMode fc6f6afccc Shared instances 2019-08-24 21:41:43 +02:00
TheMode c25c846dce Added velocity & WIP shared instances 2019-08-24 20:34:01 +02:00
TheMode 7a557169bd Chunk Zstd compression 2019-08-24 01:05:52 +02:00
TheMode b933a83c31 Basic chunk serializer & reworked chunk multi-threading 2019-08-23 23:55:09 +02:00
TheMode d5d3dab6c7 Reworked packet writer 2019-08-23 15:37:38 +02:00
TheMode c407e384ab Update 2019-08-22 14:52:32 +02:00
TheMode 8ddfdbb42a Cleaned and optimized code 2019-08-21 16:50:52 +02:00
TheMode 9d8e4e7ea2 Multiplayer synchronization 2019-08-20 22:40:57 +02:00
TheMode 729d82abd4 Rewrite of packets listener and added callbacks 2019-08-20 17:41:07 +02:00
TheMode bdde4af581 Update 2019-08-19 17:04:19 +02:00
TheMode 4263a3965b Chunk memory optimization 2019-08-19 00:48:49 +02:00
TheMode 0d40be1552 custom block with custom hardness 2019-08-18 23:52:11 +02:00
TheMode 57def5aaac Update 2019-08-18 20:38:09 +02:00
TheMode 2da2823cbd Added double click and shift-click inventory action 2019-08-14 15:54:37 +02:00
TheMode 60f5768011 Inventory click listener 2019-08-14 06:50:03 +02:00
TheMode e2e7d67013 Enhanced inventory creation & listener 2019-08-13 17:52:09 +02:00
TheMode 349de8773f Added BlockBatch 2019-08-12 13:27:24 +02:00
TheMode 2e626f785e Improved thread safety over entities update 2019-08-12 08:59:15 +02:00
TheMode e0172022b2 Inventory and block breaking/placing 2019-08-12 08:30:59 +02:00
TheMode 3b6b5676ed Improved thread safety 2019-08-11 13:57:23 +02:00
TheMode 87345f70ab Prevent from going on unloaded chunks 2019-08-11 09:33:27 +02:00
TheMode c8ee6858bc Merge branch 'master' of https://github.com/TheMode/Minestom 2019-08-11 08:57:30 +02:00
TheMode 2afb170ff0 Fixed chunk 2019-08-11 08:57:23 +02:00
Adamaq01 25621dede6 Added UpdateViewPositionPacket 2019-08-11 07:56:30 +01:00
TheMode d1967186e5 Basic instances implementation 2019-08-11 07:42:56 +02:00
Adamaq01 383bb634f4 Modified ConnectionManager#removePlayer 2019-08-11 02:45:09 +01:00
Adamaq01 c8b5e13175 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/fr/themode/minestom/entity/Player.java
#	src/main/java/fr/themode/minestom/net/ConnectionManager.java
#	src/main/java/fr/themode/minestom/net/packet/client/login/LoginStartPacket.java
2019-08-11 02:42:13 +01:00
Adamaq01 eb532a1856 Implemented some more packets, basic multiplayer functionalities such as a basic chat system, seeing other players etc... 2019-08-11 02:40:34 +01:00
TheMode 7271636aa8 Updated tick manager & players update 2019-08-11 00:36:20 +02:00
TheMode cc203b1a1a Fixed thread safety 2019-08-10 08:59:33 +02:00
TheMode d4bf3bd2ec WIP entity implementation 2019-08-10 08:44:35 +02:00
Adamaq01 5130931b29 Implemented some more packets 2019-08-10 04:16:16 +01:00
Adamaq01 7f83aacdf8 Implemented some packets + the keepalive system so the client doesn't timeout after 20 seconds 2019-08-10 03:47:19 +01:00
TheMode 076f4d558b Added chunks & some location packets 2019-08-10 04:16:01 +02:00
TheMode 81a880d3cd Update 2019-08-09 07:24:26 +02:00
TheMode 31bf307ae3 WIP chunk packet 2019-08-07 03:42:48 +02:00
TheMode 9380770492 Initial commit 2019-08-03 15:25:24 +02:00