1
0
Fork 0
Commit Graph

174 Commits (kcx-1614)

Author SHA1 Message Date
Sergey Shatunov 5aaf6c5cbf ChunkManager implementation
ChunkManager optimize chunks handling in small and big worlds

Small worlds gets benefits with using int-object map instead long-object (in area -32768...32767 by x and z)

Large worlds gets benefits by using efficient map by Colt project, which a little (3-6%) slower in writing, but greatly faster
(400-500% from Java's HashMap and 150-180% from Trove's maps) on reading.
2016-02-10 19:17:47 +07:00
Sergey Shatunov 0dd6c7efdf Jline's ConsoleReader reads empty string instead of null in stdin-less
environment, like exec() from many languages. Add empty check.
2016-02-09 21:19:36 +07:00
Sergey Shatunov 3b244893d9 Fix #346 2016-02-07 14:50:00 +07:00
Sergey Shatunov 962807f835 Fix #343 2016-02-07 14:40:26 +07:00
Sergey Shatunov d09dc71f62 Fix #106 2016-02-06 19:12:12 +07:00
Sergey Shatunov 84276822ea Fix inventory wiping on keepInventory=true 2016-02-06 15:19:45 +07:00
Sergey Shatunov 0b251c5440 Implement ReverseClonner, which should fix all issues with teleportation/inventories/crashed after respawning 2016-02-06 04:30:12 +07:00
Sergey Shatunov 313adcfbb0 Fix PlayerCloneEvent.wasDeath (close #335) 2016-02-06 00:09:26 +07:00
Sergey Shatunov 30d7378fda Okay, remove full cloning of player during respawn and just post forge's
event for required mods. Close #331
2016-02-05 03:43:24 +07:00
Sergey Shatunov 7b03a5c0d1 Add out-of-box fast leaves decay 2016-02-04 22:55:51 +07:00
Sergey Shatunov d98e2ca8f6 Fix ender inventory not synced after cloning, fix #329 2016-02-04 18:21:25 +07:00
Sergey Shatunov 3b321e3116 Implement custom bukkit's entity for modded projectiles
Fix #150
2016-02-03 22:45:12 +07:00
Sergey Shatunov 7114a28fc6 Implement thread-safe, async-like and not buggy BlockUpdatesTracker
close #320
2016-02-03 10:55:26 +07:00
Sergey Shatunov 3359c026df Add plugins info in crash report 2016-02-03 10:55:26 +07:00
Sergey Shatunov 01238b890a Better handling of out of sync 2016-02-02 15:39:23 +07:00
Sergey Shatunov f9b7fa7da4 Fix #319 2016-02-02 02:21:33 +07:00
Sergey Shatunov 9a1b86730d Avoid to load chunks if block updated scheduled in unloaded chunk 2016-02-01 23:16:31 +07:00
Sergey Shatunov 0d3b4e763c Forward bukkit's CraftPlayer during cloning player
Fix #318
2016-02-01 22:45:16 +07:00
Sergey Shatunov 07698c433a Fix inventory erase when player respawns by mods or plugins
Close #301
2016-02-01 18:50:41 +07:00
Sergey Shatunov 12b0a52ae0 Rewrite NextTickListEntry.hashCode() to implement real hashcode, not incremental ids :)
New function is more stable and gives a good distribution of numbers with less colissions.

Fix #313
2016-02-01 16:03:58 +07:00
Sergey Shatunov 6c2be10dc9 Implement Bukkit's inventory for modded inventories, fix #257 2016-02-01 04:54:40 +07:00
Sergey 8c5b2f7229 Do fully player cloning to avoid duping of items (probably related to #301) 2016-01-31 20:08:36 +07:00
Sergey 201b43272f Optimize chunk saving time by holding block updates in chunks directly (fix #299) 2016-01-31 18:53:17 +07:00
Sergey a5277c151e Fix collision of NextTickListEntry (close #289) 2016-01-31 18:39:40 +07:00
Sergey Shatunov 097252b5bf Add expermintal feature: tileEnitity list recreation each tick 2016-01-17 17:15:55 +07:00
Sergey Shatunov 1817b56ba3 Fix player doesn't cloning after death/teleport, fix #282 2016-01-11 18:50:13 +07:00
Sergey Shatunov 25d6f61aed Autosave unmodified chunks only after 4 periods 2016-01-11 18:49:30 +07:00
Sergey Shatunov 4b705b50af Don't process dead entities during explosion 2016-01-07 00:42:54 +07:00
Sergey Shatunov eb49ce845d Make light asynchronous (close #231) 2016-01-06 01:53:42 +07:00
Sergey Shatunov 7f897a021d Allow fake net handlers, fix #268 2016-01-05 15:14:32 +07:00
Sergey Shatunov 8d4b99c574 Don't sleep between chunk unloading 2016-01-05 14:56:58 +07:00
Sergey Shatunov b53d579e35 Optimize chunk saving 2016-01-05 14:55:35 +07:00
Sergey Shatunov 240272b672 Clear outgoing packet queue on disconnect 2016-01-05 14:50:11 +07:00
Sergey Shatunov 6911f3485a Fix for map decoration 2016-01-05 14:48:56 +07:00
Sergey Shatunov 0011dd0d9a Limit TNT detonations per world per tick 2016-01-05 14:20:01 +07:00
Sergey Shatunov 0aad7977fc Make configurable messages, close #244 2016-01-05 13:54:34 +07:00
Sergey Shatunov f722fccdce Rollback to the state of .152 build with some critical fixes and updates 2016-01-04 12:38:37 +07:00
Prototik ed0bc9ab15 Fix #228 2015-10-25 15:56:15 +07:00
Prototik 30960fd721 Fix #222 2015-10-23 20:04:48 +07:00
Prototik d3c359b26d Fix #218, fix #217 2015-10-23 01:33:13 +07:00
Prototik ad909f2788 Return empty chunk in case of null and come back indent for ProcessingQueue, sorry! :) 2015-10-22 01:45:44 +07:00
Prototik c9caa8c770 Fix #210 2015-10-22 01:33:46 +07:00
Prototik 40ac2b7e23 Fix #209 2015-10-19 11:23:10 +07:00
Prototik 7defe0bb29 Some portion of optimizations:
* Clear outgoing packet queue after player disconnect
* Disable sleep between chunk saving
* Put 2x4096 bytes instead 2048x4 bytes for region file aligment
* Using map to search player by name instead iterating over all players
* Some tweaks for decorations (item frames, maps)
2015-10-18 23:58:28 +07:00
Prototik 0097a0744a Check for active chunks before persistent, could be faster on big maps 2015-10-15 00:09:55 +07:00
Prototik 98f4f02f55 Introduced World Save Thread and some refractoring 2015-10-14 20:31:35 +07:00
Prototik a5b10b36ab Added /kc dump command for some debug reports 2015-10-06 21:00:35 +07:00
Prototik b2e14cb247 Return loop iterating over entites on overloaded server 2015-09-06 18:54:03 +07:00
Prototik 9d56192606 Some improvements in spigot timings and fix #179 2015-09-05 23:31:58 +07:00
Prototik 923b9e81a0 First attempt to fix #141 2015-09-03 18:05:12 +07:00
Prototik 1e51ceeb31 Fix broken stop command, added /kc tps command, better integration bukkit worlds with forge worlds 2015-09-03 00:22:30 +07:00
Prototik 1bafa262d0 Fix #173 2015-09-02 15:05:54 +07:00
Prototik 497d437a37 Add list wrapper for tileentities 2015-08-29 18:21:31 +07:00
Prototik 9ba84893f3 Use iterator for entities loop 2015-08-29 17:37:03 +07:00
Prototik 4a63dcacca Transparent unloading {,tile}entities from world 2015-08-29 14:49:22 +07:00
Prototik 1c8806604f Update to forge 1492 2015-07-25 06:08:11 +07:00
Prototik fbdf884b96 Add option to disable printing client's mod list (close #98) 2015-07-12 13:54:58 +07:00
Prototik 664666ef68 Fix DragonAPI incompatibility (close #99) 2015-07-11 01:37:58 +07:00
Prototik 896e45556a Fix armor double damage, fix #79 2015-06-30 01:00:00 +07:00
Prototik 499c680b58 Make network connections keepalive (close #11) 2015-06-29 20:47:12 +07:00
Prototik 495e0435d5 Fix #70 2015-06-28 03:29:04 +07:00
Prototik 712aab7c57 Add option to allow nether portals in non overworld (close #58) 2015-06-28 00:29:43 +07:00
Prototik eedf6789a0 Update forge to 1481 2015-06-27 19:49:05 +07:00
Prototik 8c50b9899f Finally fix #67 2015-06-27 16:32:21 +07:00
Prototik 102109b7af Fix result in decrStackSize 2015-06-26 23:48:28 +07:00
Prototik f6ba538998 Fix Thaumcraft bucket dupe (close #64) 2015-06-26 22:42:30 +07:00
Prototik 3647ee33f7 Fix #30 2015-06-22 20:44:14 +07:00
Prototik 3707569ced Add KCauldron version to crash report 2015-06-22 19:06:21 +07:00
Prototik 4ebda4d899 Fix #56 2015-06-22 13:42:33 +07:00
Prototik 44020ecc25 Support to restart server after update 2015-06-14 19:50:18 +07:00
Prototik 55d1d750ec Update to forge 1448, close #39 2015-06-10 23:38:24 +07:00
Prototik 33633471ca Normalize patches 2015-06-08 23:18:24 +07:00
Prototik 75eb280f0e Use concurent list of chunks in chunkproviderserver (fix #34) 2015-06-08 22:59:49 +07:00
Prototik 30f5b275be Aaaaand update kimagine to 0.1.9 2015-06-08 18:46:37 +07:00
Prototik ecbd546280 Use indirect collections in entitytracker 2015-06-08 16:09:51 +07:00
Prototik 596a7b993b Additional checks during entity update 2015-06-08 14:20:26 +07:00
Prototik 3ec6f6a65f Additional checks to tracker 2015-06-05 20:58:31 +07:00
Prototik 7f699c1473 Fix #29 2015-06-05 20:41:54 +07:00
Prototik c755e7f9a4 Disable dumb material injection logging 2015-06-03 23:39:56 +07:00
Prototik 27d13cce59 Add support for updating backports correctly 2015-06-03 21:50:46 +07:00
Prototik c427f60e15 Normalize patches 2015-06-01 21:32:10 +07:00
Prototik 86f83acb7e Fix rcon 2015-06-01 20:54:42 +07:00
Prototik 4b0afe6ff9 Attempt to avoid npe during handshake 2015-06-01 18:30:50 +07:00
Prototik 9973a9f8e8 Update to Forge 1420 2015-06-01 16:13:46 +07:00
Prototik de86e3c9f6 Initial autoupdater 2015-05-31 18:21:26 +07:00
Prototik 8c7ff941cf Add ability to configure max tab player list (#10) 2015-05-29 19:54:43 +07:00
Prototik 26adcb6f17 Merge branch 'master' of prok.pw:Prototik/KCauldron 2015-05-29 19:12:46 +07:00
Prototik 0beaa6c4bb Forward ArrayIndexOutOfBoundsException to safier deletion 2015-05-29 19:12:34 +07:00
Prototik 78d84f7848 Support to disable fastcraft 1.22+ 2015-05-29 17:24:31 +07:00
Prototik 94662dd73f Avoid NPE during chunk profiling 2015-05-28 21:21:56 +07:00
Prototik 31cdc9fe6c Check for valid entities on load stage 2015-05-28 17:34:42 +07:00
Prototik bab4bd8b46 Patch ClimateControl for compatibility. Meh. 2015-05-28 17:27:05 +07:00
Prototik bdbb1413cb Add some checks to entityitem :) 2015-05-27 18:44:16 +07:00
Prototik d24b372625 Even don't try to spawn invalid entityitem, fix for extrabiomes 2015-05-27 18:26:08 +07:00
Prototik a42829ecb6 Update to forge 1408 2015-05-27 17:46:53 +07:00
Prototik 58ea094454 Fix for slotless inventories in packet C08PacketPlayerBlockPlacement 2015-05-26 22:47:20 +07:00
Prototik 6c0e72dc35 Safely remove invalid entityitem 2015-05-25 21:28:17 +07:00
Prototik bbf1de17e7 Fix incompability with obfuscated plugins (like SurvivalGames) 2015-05-25 20:20:04 +07:00
Prototik e7413d1814 Ignore FastCraft on loading for preventing crashes 2015-05-25 18:48:26 +07:00
Prototik ea868d4998 Avoid to use Derived.incrementTotalWorldTickTime 2015-05-25 18:27:17 +07:00