3
0
Commit Graph

310 Commits

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
6f447f2804 Switch Implementation-Version to bukkit version since some bukkit
plugins depends on it [ci skip]
2016-02-10 02:57:10 +07:00
Prototik
edaff93a90 Update link in readme [ci skip] 2016-02-10 02:16:46 +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
db3a8c3045 Pass net handler during reverse cloning due to some mods could transmit some packets in cloning 2016-02-06 23:21:56 +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
3926aa3878 Allow pseudo-real semi-infernal chunks for trees, fix #273 2016-02-04 22:35:14 +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
Prototik
f1936a41c2 Add link to discord [ci skip] 2016-02-03 01:00:01 +07:00
Sergey Shatunov
01238b890a Better handling of out of sync 2016-02-02 15:39:23 +07:00
Sergey Shatunov
412dab0029 Update references to inventory for CraftPlayer during cloning
Fix #321
2016-02-02 14:45:32 +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
e3bc245aa4 Rollback to Gradle 2.8 due to bug in ForgeGradle 2016-01-31 21:23:01 +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
32dc3664a6 Update gradle wrapper to 2.10 2016-01-31 18:11:48 +07:00
Sergey
8298cc31e8 Fix license 2016-01-31 17:59:46 +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
Prototik
be83aa26fc Fix broken commands.yml (close #276) 2016-01-07 21:12:06 +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
99915acb8b Use player cache for skulls 2016-01-05 15:06: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
955af15697 Make Server.getOnlinePlayers returns immutable collection, like it said
in docs. This is also fix crash with /stop and /restart commands while
any players had been online.
2016-01-05 02:00:44 +07:00
Sergey Shatunov
90386d0abf Add support for 1558 backport into CI 2016-01-04 23:01:21 +07:00
Sergey Shatunov
664be786d4 Update to forge 1614 2016-01-04 22:45:30 +07:00