Commit graph

1098 commits

Author SHA1 Message Date
Alfie Cleveland
c7287dd5ee Optimise BlockState's hashCode/equals
These are singleton "single instance" objects. We can rely on
object identity checks safely.

Use a simpler optimized hashcode
2016-08-19 01:52:56 +01:00
Gabriele C
f7ae11f984 Add setting for proxy online mode status
TODO: Add isProxyOnlineMode check to Metrics
2016-08-05 01:03:08 +02:00
Zach Brown
a55727ff06 Don't lookup game profiles that have no UUID and no name 2016-07-16 19:11:17 -05:00
Aikar
d072c2d5fb Avoid blocking on Network Manager creation
Per Paper issue 294
2016-05-16 23:19:16 -04:00
Jake Potrebic
08698c4642 Fix global sound handling
* Only send global sounds to same world if limiting radius
* respect global sound events gamerule

Co-authored-by: Evan McCarthy <evanmccarthy@outlook.com>
Co-authored-by: lexikiq <noellekiq@gmail.com>
Co-authored-by: Aikar <aikar@aikar.co>
2016-05-31 22:53:50 -04:00
Martin Panzer
ef21fd4166 Faster redstone torch rapid clock removal
Only resize the the redstone torch list once, since resizing arrays / lists is costly
2016-05-23 12:12:37 +02:00
Zach Brown
bdd96190e0 Optional TNT doesn't move in water 2016-05-22 20:20:55 -05:00
Aikar
cda878cf64 Async GameProfileCache saving 2016-05-16 20:47:41 -04:00
Aikar
07c767b6f4 LootTable API and replenishable lootables
Provides an API to control the loot table for an object.
Also provides a feature that any Lootable Inventory (Chests in Structures)
can automatically replenish after a given time.

This feature is good for long term worlds so that newer players
do not suffer with "Every chest has been looted"

== AT ==
public org.bukkit.craftbukkit.block.CraftBlockEntityState getTileEntity()Lnet/minecraft/world/level/block/entity/BlockEntity;
public org.bukkit.craftbukkit.block.CraftLootable setLootTable(Lorg/bukkit/loot/LootTable;J)V
public org.bukkit.craftbukkit.entity.CraftMinecartContainer setLootTable(Lorg/bukkit/loot/LootTable;J)V
2016-05-01 21:19:14 -04:00
Aikar
b8d05bbc27 Don't save empty scoreboard teams to scoreboard.dat 2016-05-07 23:33:08 -04:00
Aikar
6d39090450 remove null possibility for getServer singleton
to stop IDE complaining about potential NPE
2016-04-28 00:57:27 -04:00
Riley Park
217a52eaa8 Add ability to configure frosted_ice properties 2016-04-21 23:51:55 -07:00
Zach Brown
3532e55dab EntityRegainHealthEvent isFastRegen API
Don't even get me started
2016-04-22 01:43:11 -05:00
Aikar
b414f3d993 Configurable RCON IP address
For servers with multiple IP's, ability to bind to a specific interface.

== AT ==
public net.minecraft.server.dedicated.Settings getStringRaw(Ljava/lang/String;)Ljava/lang/String;
2016-04-16 00:39:33 -04:00
Riley Park
d743b03fb6 Add handshake event to allow plugins to handle client handshaking logic themselves 2016-04-13 20:21:38 -07:00
Aikar
a99426b5fe Configurable Player Collision 2016-04-13 02:10:49 -04:00
Aikar
1056951a73 Optimize DataBits
Remove Debug checks as these are super hot and causing noticeable hits

Before: http://i.imgur.com/nQsMzAE.png
After: http://i.imgur.com/nJ46crB.png

Optimize redundant converting of static fields into an unsigned long each call by precomputing it in ctor
2016-04-05 21:38:58 -04:00
Aikar
55db966770 Fix Cancelling BlockPlaceEvent triggering physics 2016-04-03 17:48:50 -04:00
Aikar
eb76e508f5 Configurable random tick rates for blocks
A general purpose patch that includes config options for the tick rate
of a variety of blocks that are random ticked.

Co-authored-by: MrPowerGamerBR <git@mrpowergamerbr.com>
2016-04-03 16:28:17 -04:00
Jedediah Smith
e2263633d4 Add PlayerUseUnknownEntityEvent
Adds the PlayerUseUnknownEntityEvent to be used by plugins dealing with
virtual entities/entities that are not actually known to the server.

Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
2016-04-02 05:09:16 -04:00
Aikar
f9ef3612f7 Do not load chunks for Pathfinding 2016-03-31 19:17:58 -04:00
Antony Riley
db2502d732 Sanitise RegionFileCache and make configurable
RegionFileCache prior to this patch would close every single open region
file upon reaching a size of 256.
This patch modifies that behaviour so it closes the the least recently
used RegionFile.
The implementation uses a LinkedHashMap as an LRU cache (modified from HashMap).
The maximum size of the RegionFileCache is also made configurable.
2016-03-29 08:22:55 +03:00
Aikar
c801c5439d EntityPathfindEvent
Fires when an Entity decides to start moving to a location.
2016-03-28 21:22:26 -04:00
Aikar
e2accd8d62 Configurable Chunk Inhabited Time
Vanilla stores how long a chunk has been active on a server, and dynamically scales some
aspects of vanilla gameplay to this factor.

For people who want all chunks to be treated equally, you can chose a fixed value.

This allows to fine-tune vanilla gameplay.
2016-03-28 20:46:14 -04:00
Aikar
93bbce1c69 Entity AddTo/RemoveFrom World Events 2016-03-28 20:32:58 -04:00
Aikar
63fa3068c6 Only process BlockPhysicsEvent if a plugin has a listener
Saves on some object allocation and processing when no plugin listens to this
2016-03-28 19:55:45 -04:00
Zach Brown
b2671f4dd1 Configurable spawn chances for skeleton horses 2016-03-22 12:04:28 -05:00
Aikar
d989bc5d17 Use a Shared Random for Entities
Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created.
2016-03-22 00:33:47 -04:00
Aikar
becb30e9e6 handle NaN health/absorb values and repair bad data 2015-09-27 01:18:02 -04:00
Jedediah Smith
54fe0287a2 Custom replacement for eaten items 2015-06-21 15:07:20 -04:00
Aikar
f54f356a35 Add World Util Methods
Methods that can be used for other patches to help improve logic.
2016-03-18 20:16:03 -04:00
Aikar
686b77345f Configurable Non Player Arrow Despawn Rate
Can set a much shorter despawn rate for arrows that players can not pick up.
2016-03-18 15:12:22 -04:00
Aikar
20b9d3de7b Handle Item Meta Inconsistencies
First, Enchantment order would blow away seeing 2 items as the same,
however the Client forces enchantment list in a certain order, as well
as does the /enchant command. Anvils can insert it into forced order,
causing 2 same items to be considered different.

This change makes unhandled NBT Tags and Enchantments use a sorted tree map,
so they will always be in a consistent order.

Additionally, the old enchantment API was never updated when ItemMeta
was added, resulting in 2 different ways to modify an items enchantments.

For consistency, the old API methods now forward to use the
ItemMeta API equivalents, and should deprecate the old API's.
2015-05-28 23:00:19 -04:00
Jedediah Smith
f55b057ffb Complete resource pack API 2015-04-04 23:17:52 -04:00
Aikar
5764c71185 Disable Scoreboards for non players by default
Entities collision is checking for scoreboards setting.
This is very heavy to do map lookups for every collision to check
this setting.

So avoid looking up scoreboards and short circuit to the "not on a team"
logic which is most likely to be true.
2016-03-08 23:25:45 -05:00
Joseph Hirschfeld
68979dd492 Add exception reporting event 2016-03-03 03:15:41 -06:00
Joseph Hirschfeld
1f86344458 Add configurable portal search radius 2016-03-03 02:46:17 -06:00
vemacs
886d8e6ac3 All chunks are slime spawn chunks toggle 2016-03-03 01:19:22 -06:00
Aikar
bcc07d07b6 Improve Player chat API handling
Properly split up the chat and command handling to reflect the server now
having separate packets for both, and the client always using the correct packet. Text
from a chat packet should never be parsed into a command, even if it starts with the `/`
character.

Add a missing async catcher and improve Spigot's async catcher error message.

== AT ==
public net.minecraft.server.network.ServerGamePacketListenerImpl isChatMessageIllegal(Ljava/lang/String;)Z

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: SoSeDiK <mrsosedik@gmail.com>
2016-03-03 01:17:12 -06:00
Aikar
b380d6445b Configurable Disabling Cat Chest Detection
Offers a gameplay feature to stop cats from blocking chests
2016-03-03 01:13:45 -06:00
Steve Anton
dd1cfc07db Fix spawn location event changing location
== AT ==
public net.minecraft.world.entity.Entity setRot(FF)V
2016-03-03 00:09:38 -06:00
Zach Brown
c8c53412a4 Disable spigot tick limiters 2016-03-02 23:45:17 -06:00
Sudzzy
5b0e06e8e8 Configurable container update tick rate 2016-03-02 23:34:44 -06:00
Byteflux
adb6c35b17 Add BeaconEffectEvent 2016-03-02 23:30:53 -06:00
Isaac Moore
c9cf82340d Use null Locale by default 2016-04-19 14:09:31 -05:00
Sudzzy
1ac857b531 Configurable mob spawner tick rate 2016-03-02 15:03:53 -06:00
Sudzzy
3816346f1c Disable ice and snow 2016-03-02 14:57:24 -06:00
Sudzzy
d75a64eff3 Disable thunder 2016-03-02 14:52:43 -06:00
Sudzzy
fb3f2c1b8e Disable explosion knockback 2016-03-02 14:48:03 -06:00
Byteflux
68603a72c5 Optimize explosions
The process of determining an entity's exposure from explosions can be
expensive when there are hundreds or more entities in range.

This patch adds a per-tick cache that is used for storing and retrieving
an entity's exposure during an explosion.
2016-03-02 11:59:48 -06:00
Iceee
e2ead8262e Fix lag from explosions processing dead entities 2016-03-02 01:39:52 -06:00
DoctorDark
b083157a8c Configurable end credits 2016-03-16 02:21:39 -05:00
Zach Brown
188e3332d6 Check online mode before converting and renaming player data 2016-03-02 00:03:55 -06:00
Zach Brown
b8b1eef98c Configurable top of nether void damage
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2016-03-01 23:58:50 -06:00
Aikar
0255317409 Prevent block entity and entity crashes 2016-03-01 23:52:34 -06:00
Byteflux
6212f523fa Entity Origin API 2016-03-01 23:45:08 -06:00
Jedediah Smith
840b8a7bfa Player affects spawning API 2016-03-01 14:47:52 -06:00
Zach Brown
f41436f787 Expose server build information
Co-authored-by: Zach Brown <1254957+zachbr@users.noreply.github.com>
Co-authored-by: Kyle Wood <kyle@denwav.dev>
Co-authored-by: Mark Vainomaa <mikroskeem@mikroskeem.eu>
Co-authored-by: Riley Park <rileysebastianpark@gmail.com>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: masmc05 <masmc05@gmail.com>
2016-03-01 14:32:43 -06:00
Byteflux
560b13ca08 Drop falling block and tnt entities at the specified height
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2016-03-01 14:14:15 -06:00
Suddenly
a24a98199a Add configurable entity despawn distances 2016-03-01 13:51:54 -06:00
Zach Brown
92ffacc419 Allow nerfed mobs to jump 2016-03-01 13:24:16 -06:00
Zach Brown
c7125aaa48 Configurable fishing time ranges 2016-03-01 13:14:11 -06:00
Zach Brown
92ebed543f Configurable baby zombie movement speed 2016-03-01 13:09:16 -06:00
Zach Brown
097b7fd752 Configurable cactus bamboo and reed growth height
Bamboo - Both the minimum fully-grown height and the maximum are configurable
- Machine_Maker
2016-03-01 13:02:51 -06:00
Aikar
770ee3eebd Remove Spigot timings 2016-03-03 04:00:11 -06:00
Aikar
a371d5fefe Further improve server tick loop
Improves how the catchup buffer is handled, allowing it to roll both ways
increasing the effeciency of the thread sleep so it only will sleep once.

Also increases the buffer of the catchup to ensure server stays at 20 TPS unless extreme conditions

Previous implementation did not calculate TPS correctly.
Switch to a realistic rolling average and factor in std deviation as an extra reporting variable
2016-03-01 23:09:29 -06:00
Jason Penilla
13e0a1a71e Plugin remapping
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
2022-10-29 15:22:32 -07:00
Owen1212055
216388dfdf Paper Plugins
Co-authored-by: Micah Rao <micah.s.rao@gmail.com>
2022-07-06 23:00:31 -04:00
Zach Brown
329dfdabdc Paper Metrics
Removes Spigot's mcstats metrics in favor of a system using bStats

To disable for privacy or other reasons go to the bStats folder in your plugins folder
and edit the config.yml file present there.

Please keep in mind the data collected is anonymous and collection should have no
tangible effect on server performance. The data is used to allow the authors of
PaperMC to track version and platform usage so that we can make better management
decisions on behalf of the project.
2017-03-24 23:56:01 -05:00
Jason Penilla
bd7282c66d Paper command
Co-authored-by: Zach Brown <1254957+zachbr@users.noreply.github.com>
2016-02-29 21:02:09 -06:00
Jason Penilla
34407fe880 Deobfuscate stacktraces in log messages, crash reports, and etc. 2021-06-20 18:19:09 -07:00
Minecrell
36723cdd60 Use TerminalConsoleAppender for console improvements
Rewrite console improvements (console colors, tab completion,
persistent input line, ...) using JLine 3.x and TerminalConsoleAppender.

Also uses the new ANSIComponentSerializer to serialize components when
logging them via the ComponentLogger, or when sending messages to the
console, for hex color support.

New features:
  - Support console colors for Vanilla commands
  - Add console colors for warnings and errors
  - Server can now be turned off safely using CTRL + C. JLine catches
    the signal and the implementation shuts down the server cleanly.
  - Support console colors and persistent input line when running in
    IntelliJ IDEA

Other changes:
  - Server starts 1-2 seconds faster thanks to optimizations in Log4j
    configuration

Co-Authored-By: Emilia Kond <emilia@rymiel.space>
2017-06-09 19:03:43 +02:00
Riley Park
66779f5c86 Adventure
== AT ==
public net.minecraft.network.chat.HoverEvent$ItemStackInfo item
public net.minecraft.network.chat.HoverEvent$ItemStackInfo count
public net.minecraft.network.chat.HoverEvent$ItemStackInfo components
public net.minecraft.network.chat.contents.TranslatableContents filterAllowedArguments(Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;

Co-authored-by: zml <zml@stellardrift.ca>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2021-01-29 17:54:03 +01:00
Aikar
b01c811c2f MC Utils
== AT ==
public net.minecraft.server.level.ServerChunkCache mainThread
public net.minecraft.server.level.ServerLevel chunkSource
public org.bukkit.craftbukkit.inventory.CraftItemStack handle
public net.minecraft.server.level.ChunkMap getVisibleChunkIfPresent(J)Lnet/minecraft/server/level/ChunkHolder;
public net.minecraft.server.level.ServerChunkCache mainThreadProcessor
public net.minecraft.server.level.ServerChunkCache$MainThreadExecutor
public net.minecraft.world.level.chunk.LevelChunkSection states
2016-03-28 20:55:47 -04:00
Jake Potrebic
a82a09d198 CB fixes
* Missing Level -> LevelStem generic in StructureCheck
  Need to use the right for injectDatafixingContext (Spottedleaf)

* Fix summon_entity effect attempting to add incorrect entity (granny)

* Removed incorrect parent perm for `minecraft.debugstick.always` (Machine_Maker)

* Fixed method signature of Marker#addPassenger (Machine_Maker)

* Removed unneeded UOE in CustomWorldChunkManager (extends BiomeSource) (Machine_Maker)

* Honor Server#getLootTable method contract (Machine_Maker)

Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
2022-02-25 07:14:48 -08:00
Aikar
f829dcd46a MC Dev fixes 2016-03-30 19:36:20 -04:00
Jake Potrebic
769119f918 Paper config files
== AT ==
public org.spigotmc.SpigotWorldConfig getBoolean(Ljava/lang/String;Z)Z
public org.spigotmc.SpigotWorldConfig getDouble(Ljava/lang/String;)D
public org.spigotmc.SpigotWorldConfig getDouble(Ljava/lang/String;D)D
public org.spigotmc.SpigotWorldConfig getInt(Ljava/lang/String;)I
public org.spigotmc.SpigotWorldConfig getInt(Ljava/lang/String;I)I
public org.spigotmc.SpigotWorldConfig getList(Ljava/lang/String;Ljava/lang/Object;)Ljava/util/List;
public org.spigotmc.SpigotWorldConfig getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/minecraft/core/RegistryAccess;Ljava/util/Properties;Ljoptsimple/OptionSet;)Lnet/minecraft/server/dedicated/DedicatedServerProperties;
public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES
2022-06-08 22:20:16 -07:00
Zach Brown
bc10922ef3 Build system changes
== AT ==
public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/net/URI;)Ljava/nio/file/Path;

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2016-02-29 20:40:33 -06:00
Kyle Wood
f161aac557 Remap fixes 2021-06-11 05:25:03 -05:00
CraftBukkit/Spigot
9940174241 Add unload-frozen-chunks option
By: md_5 <git@md-5.net>
2024-05-18 11:39:58 +10:00
CraftBukkit/Spigot
479ce445d6 Configurable Below Zero Generation
By: DerFrZocker <derrieple@gmail.com>
2021-11-28 12:09:29 +11:00
CraftBukkit/Spigot
7cfc37b17d Configurable Thunder Chance
By: md_5 <git@md-5.net>
2021-10-24 20:29:25 +11:00
CraftBukkit/Spigot
e81bcdf643 Allow Disabling Player Data Saving
By: Sander Knauff <sanderknauff@hotmail.com>
2020-11-07 18:23:42 +11:00
CraftBukkit/Spigot
76c24a1454 Add log-villager-deaths option
By: md_5 <git@md-5.net>
2019-12-14 10:26:52 +11:00
CraftBukkit/Spigot
9ef9823b3b Allow Reading Old Large Chunks
The size of chunks in the region format is overdetermined. In particular their size on disk is indicated by both a sector count in the header, and actual size in the body.
If their size would overflow the header field (>= 255 sectors), it can just be read directly from the body instead.

This code/concept was adapted from MinecraftForge.

By: md_5 <git@md-5.net>
2019-02-19 22:30:00 +11:00
CraftBukkit/Spigot
6fcc9cce6d Add creative mode NBT permissions
By: md_5 <git@md-5.net>
2019-02-25 19:26:56 +11:00
CraftBukkit/Spigot
d16d3c3548 Configurable Advancement Disabling
Allow disabling any (or all) inbuilt advancements with a configuration option.

By: md_5 <git@md-5.net>
2017-06-09 16:29:31 +10:00
CraftBukkit/Spigot
93fea68749 Clear Packet Queue on Disconnect
By: md_5 <git@md-5.net>
2015-07-22 19:04:37 +10:00
CraftBukkit/Spigot
c4f3fcfce9 Use Map for getPlayer(String) lookup.
By: md_5 <git@md-5.net>
2015-07-13 19:05:15 +10:00
CraftBukkit/Spigot
d0a65bc995 Allow Capping (Tile)Entity Tick Time.
This patch adds world configuration options for max-tick-time.entity / max-tick-time.tile which allows setting a hard cap on the amount of time (in milliseconds) that a tick can consume. The default values of 50ms each are very conservative and mean this feature will not activate until the server is well below 15tps (minimum). Values of 20ms each have been reported to provide a good performance increase, however I personally think 25ms for entities and 10-15ms for tiles would give even more significant gains, assuming that these things are not a large priority on your server.

For tiles there is very little tradeoff for this option, as tile ticks are based on wall time for most things, however for entities setting this option too low could lead to jerkiness / lag. The gain however is a faster and more responsive server to other actions such as blocks, chat, combat etc.

This feature was commisioned by Chunkr.

By: md_5 <git@md-5.net>
2015-02-20 21:39:31 +11:00
CraftBukkit/Spigot
49288f7f95 BungeeCord Chat API
By: md_5 <git@md-5.net>
2014-12-13 03:06:05 +01:00
CraftBukkit/Spigot
5ec1e1bc24 Configurable Hanging Tick
By: drXor <mcyoung@mit.edu>
2014-08-09 13:56:51 -04:00
CraftBukkit/Spigot
d7f3ba3df3 Limit TNT Detonations per tick
This gives a per-world control on how much TNT will be processed per-tick,
preventing a massive TNT detonation from lagging out the server.

By: Aikar <aikar@aikar.co>
2014-08-20 18:12:32 -04:00
CraftBukkit/Spigot
f026f7905e Add Hunger Config Values
By: lazertester <austin.techhead@gmail.com>
2014-08-17 19:56:17 +10:00
CraftBukkit/Spigot
83699d54bf Plug WorldMap Memory Leak
By: md_5 <git@md-5.net>
2014-08-08 19:57:03 +10:00
CraftBukkit/Spigot
0098808c9e Allow Attribute Capping.
Apply some sensible defaults and allow server owners to customize the maximum values of selected common attributes.

By: md_5 <git@md-5.net>
2014-07-28 16:55:51 +10:00
CraftBukkit/Spigot
5b20d95920 Apply NBTReadLimiter to more things.
By: md_5 <git@md-5.net>
2014-07-27 20:46:04 +10:00
CraftBukkit/Spigot
f972379105 Make "moved too quickly" limit configurable
By: Jonas Konrad <me@yawk.at>
2014-07-22 15:59:01 +02:00
CraftBukkit/Spigot
7b951a7ec6 Make "moved wrongly" limit configurable
By: Jonas Konrad <me@yawk.at>
2014-07-04 23:03:13 +02:00
CraftBukkit/Spigot
6578ff97bb Add CommandLine EULA Flag
This flag contains the same message as eula.txt (albeit with proper grammar for 3rd person plural). By setting this flag you are agreeing to the terms listed in the message printed upon setting this flag, which are no different from those agreed to by any other method.

This feature only exists for hosting companies and people who manage servers in bulk who wish to agree to the terms by setting a flag in a script.

By: md_5 <git@md-5.net>
2014-07-09 10:35:44 +10:00
CraftBukkit/Spigot
0076297721 Safer JSON Loading
By: Suddenly <suddenly@suddenly.coffee>
2014-07-08 09:44:18 +10:00
CraftBukkit/Spigot
c4d2bdfd85 Further Seed Customisation
Allow server admins that really want to to customise the seeds used in world generation even further.

By: md_5 <git@md-5.net>
2014-07-04 13:28:45 +10:00
CraftBukkit/Spigot
4a1b3a723a Better item validation
By: Thinkofdeath <thinkofdeath@spigotmc.org>
2014-07-02 23:35:51 +01:00
CraftBukkit/Spigot
804b118219 Limit block placement/interaction packets
By: Thinkofdeath <thinkofdeath@spigotmc.org>
2014-06-29 21:10:34 +01:00
CraftBukkit/Spigot
7bee9a20b3 Configurable save-on-stop-only for UserCache
By: drXor <mcyoungsota@gmail.com>
2014-05-23 18:05:10 -04:00
CraftBukkit/Spigot
7e097e5d53 Implement PlayerSpawnLocationEvent.
By: ninja <xninja@openmailbox.org>
2014-04-08 14:05:19 +02:00
CraftBukkit/Spigot
542b7a7eb1 Configurable UserCache cap
By: drXor <mcyoungsota@gmail.com>
2014-04-25 18:17:30 -04:00
CraftBukkit/Spigot
05f3042755 Fix race condition that could kill connections before they were initiated
Because NetworkManagers are registered before they get their channel in
channelActive, the ServerConnection would remove them sometimes because
it thought they were disconnected. This commit fixes this by introducing
a 'preparing' variable that is true while the NetworkManager is not
initialized. The ServerConnection does not remove NetworkManagers with
this flag.

By: Jonas Konrad <me@yawk.at>
2014-04-25 23:46:46 +02:00
CraftBukkit/Spigot
8b9d2faa11 Prevent NoClassDefError crash and notify on crash
By: David <dmck2b@gmail.com>
2014-04-21 12:43:08 +01:00
CraftBukkit/Spigot
f1087e18c1 Fix Player Banning
This issue stems from the fact that Bukkit's API only allows a UUID to be banned, but Minecraft requires both a UUID and name. To fix this we modify the code to require a UUID or a name, or both. The correct fix would be expanding the API to be able to provide a name, however this would require plugin changes.

By: md_5 <git@md-5.net>
2014-04-15 10:32:48 +10:00
CraftBukkit/Spigot
b7597142d3 Use Offline Player Data Once if Required.
If we are online mode and the only copy of player data we can find is the player's offline mode data, we will attempt a once off conversion by reading this data and then renaming the file so it won't be used again.

By: md_5 <git@md-5.net>
2014-04-13 14:41:23 +10:00
CraftBukkit/Spigot
c3318769cd Print Stack on InternalException
By: md_5 <git@md-5.net>
2014-04-13 09:00:59 +10:00
CraftBukkit/Spigot
88fc243cd1 Display 'Spigot' in client crashes, server lists and Mojang stats
By: Thinkofdeath <thethinkofdeath@gmail.com>
2014-04-11 11:16:34 +01:00
CraftBukkit/Spigot
1cb6ba6942 Configurable dragon death and wither spawn sounds
By: drXor <mcyoungsota@gmail.com>
2014-03-29 13:44:25 -04:00
CraftBukkit/Spigot
c3ce457c08 Add Option to Silence CommandBlock Console
By: md_5 <git@md-5.net>
2014-02-09 14:39:01 +11:00
CraftBukkit/Spigot
ff6d4b2d90 Spam Filter Exclusions
By: md_5 <git@md-5.net>
2014-02-08 08:13:40 +00:00
CraftBukkit/Spigot
b26b6dadb0 Add Optional Tick Shuffling
This prevents players from 'gaming' the server, and strategically relogging to increase their position in the tick order.

By: md_5 <git@md-5.net>
2014-01-27 08:39:26 +11:00
CraftBukkit/Spigot
23c02d0942 Configurable Ping Sample Size
By: md_5 <git@md-5.net>
2014-01-26 21:48:34 +11:00
CraftBukkit/Spigot
cd82f21617 Highly Optimized Tick Loop
By: md_5 <git@md-5.net>
2017-01-26 21:50:51 +00:00
CraftBukkit/Spigot
68214fb1a0 Allow toggling of ZombiePigmen spawning in portal blocks
By: Dmck2b <dmck2b+github@gmail.com>
2014-01-20 20:18:23 +00:00
CraftBukkit/Spigot
bfc73d87f0 Catch stalling on corrupted map data / NBT arrays.
By: md_5 <git@md-5.net>
2014-01-20 13:44:07 +11:00
CraftBukkit/Spigot
1f67404bb9 Allow statistics to be disabled/forced
By: Thinkofdeath <thethinkofdeath@gmail.com>
2014-01-07 15:56:26 +00:00
CraftBukkit/Spigot
fc81df77cf Add Option to Nerf Mobs from Spawners
By: md_5 <git@md-5.net>
2014-02-02 16:55:46 +00:00
CraftBukkit/Spigot
efce291f2e Save ticks lived to nbttag
By: DerFlash <bte@freenet.de>
2013-07-09 00:11:12 +02:00
CraftBukkit/Spigot
cbf16b353d Configurable Amount of Netty Threads
This brings back the option that the Spigot version of netty saw. By default Netty will try and use cores*2 threads, however if running multiple servers on the same machine, this can be too many threads. Additionally some people have 16 core servers. If 32 Netty threads are allowed in this setup, then the lock contention, and thus blocking between threads becomes much greater, leading to decreased performance.

By: md_5 <git@md-5.net>
2013-12-13 11:58:58 +11:00
CraftBukkit/Spigot
0abc9c4cd1 Allow Disabling Zombie Villager Aggression
Ability to configure if Zombies will be aggressive towards Villagers.

By: Dylan Xaldin <Puremin0rez515@gmail.com>
2013-12-12 18:05:03 -06:00
CraftBukkit/Spigot
3d4c222263 BungeeCord Support
* Provides support for IP forwarding via BungeeCord.
* Treats Bungee as Online Mode.

By: md_5 <git@md-5.net>
2014-04-12 21:23:58 +10:00
CraftBukkit/Spigot
496995ccaa Watchdog Thread.
By: md_5 <git@md-5.net>
2014-08-05 17:20:19 +01:00
CraftBukkit/Spigot
29a8c7f4b3 Arrow Despawn Rate
By: md_5 <git@md-5.net>
2013-10-14 19:20:10 +11:00
CraftBukkit/Spigot
a702945c70 Prevent Ghost Players Caused by Plugins
Check if the player is still connected after firing event. Fixes BUKKIT-4327

By: Alex Ciuba <alexciuba@gmail.com>
2013-06-11 15:23:03 -04:00
CraftBukkit/Spigot
b934e29ae6 Disallow Interaction With Self
By: md_5 <git@md-5.net>
2013-06-28 19:52:54 +10:00
CraftBukkit/Spigot
1904e973f2 Properly Close Inventories
Properly close inventories when unloading and switching worlds.

By: md_5 <git@md-5.net>
2013-06-27 17:26:09 +10:00
CraftBukkit/Spigot
55148a3f2c Configurable Messages
By: md_5 <git@md-5.net>
2013-06-21 19:21:58 +10:00
CraftBukkit/Spigot
cabf908e4c Allow Disabling of Command TabComplete
By: md_5 <git@md-5.net>
2013-06-21 18:05:54 +10:00
CraftBukkit/Spigot
0eed728812 Allow Disabling of Command Logging
By: md_5 <git@md-5.net>
2013-06-21 18:01:29 +10:00
CraftBukkit/Spigot
135df938cc Hopper Customisations
Allows editing hopper cooldowns and amount transferred per tick.

By: erocs <github@erocs.org>
2013-09-08 12:06:15 -07:00
CraftBukkit/Spigot
831bf8fb7e Entity Tracking Ranges
This will let you configure how far to track entities in range from players, so that the entity does not render on the client if out of this range.
This has multiple benefits:

1) Less bandwidth. Not sending update packets for entities that are not even close to a player, or even close enough to clearly see.
2) Less lag by maps in item frames - Default range is 160 blocks... Many players can track that item frame and cause lag and not even see it.
3) Less lag in general - Less work for the server to do
4) Less client lag - Not trying to render distant item frames and paintings and entities will reduce entity count on the client, which is major for shop/town worlds which may use tons of item frames.

By: Aikar <aikar@aikar.co>
2013-02-20 11:58:47 -05:00
CraftBukkit/Spigot
28c8009a16 Entity Activation Range
This feature gives 3 new configurable ranges that if an entity of the matching type is outside of this radius of any player, will tick at 5% of its normal rate.

This will drastically cut down on tick timings for entities that are not in range of a user to actually be "used".
This change can have dramatic impact on gameplay if configured too low. Balance according to your servers desired gameplay.

By: Aikar <aikar@aikar.co>
2024-11-02 18:16:11 +11:00
CraftBukkit/Spigot
54a84c6c79 Item Despawn Rate
By: md_5 <git@md-5.net>
2013-09-22 19:10:53 +10:00
CraftBukkit/Spigot
19bfb10583 Fix Mob Spawning Relative to View Distance
Changes the mob spawning algorithm to properly account for view distance and the range around players.

Needs better documentation.

By: md_5 <git@md-5.net>
2013-06-21 17:29:54 +10:00
CraftBukkit/Spigot
78524cb95e Spigot Timings
Overhauls the Timings System adding performance tracking all around the Minecraft Server

By: Aikar <aikar@aikar.co>
2013-01-10 00:18:11 -05:00
CraftBukkit/Spigot
127d8c1595 View Distance
This commit allows the user to select per world view distances.

By: md_5 <git@md-5.net>
2013-03-23 09:52:41 +11:00
CraftBukkit/Spigot
5240271410 Async Operation Catching
Catch and throw an exception when a potentially unsafe operation occurs on a thread other than the main server thread.

By: md_5 <git@md-5.net>
2014-03-25 16:10:01 +11:00
CraftBukkit/Spigot
973f52a650 Merge tweaks and configuration
This allows the merging of Experience orbs, as well as the configuration of the merge radius of items. Additionally it refactors the merge algorithm to be a better experience for players.

By: md_5 <git@md-5.net>
2013-03-23 09:46:33 +11:00
CraftBukkit/Spigot
df403168ff Crop Growth Rates
Allows configuring the growth rates of crops as a percentage of their normal growth rate.

By: md_5 <git@md-5.net>
2016-03-07 22:14:13 +11:00
CraftBukkit/Spigot
cba0d1f1ec Spigot Configuration
Provides the basic infrastructure to load and save the Spigot configuration file, spigot.yml

By: md_5 <git@md-5.net>
2013-07-07 09:32:53 +10:00
CraftBukkit/Spigot
30e4583dbe Remap CraftBukkit to Mojang+Yarn Mappings
By: Initial Source <noreply+automated@papermc.io>
2024-12-11 22:26:55 +01:00
CraftBukkit/Spigot
a265d64138 Move CraftBukkit per-file patches
By: Initial <noreply+automated@papermc.io>
2024-12-11 22:26:36 +01:00