Commit Graph

320 Commits

Author SHA1 Message Date
Yannick Lamprecht a2bbaf6744 ItemStack Tooltip API 2024-01-22 13:27:30 +01:00
Jake Potrebic ef5bac21b2 Add Lifecycle Event system
This event system is separate from Bukkit's event system and is
meant for managing resources across reloads and from points in the
PluginBootstrap.
2023-07-18 17:49:38 -07:00
Luis e5c2af7f5e Add api for spawn egg texture colors 2024-01-11 19:58:23 +01:00
Nassim Jahnke 898bf90054 Fixup NamespacedKey handling 2024-01-06 14:31:00 +01:00
Jake Potrebic fff5d44a12 Don't fire sync events during worldgen
Fixes EntityPotionEffectEvent
Fixes EntityPoseChangeEvent

Asynchronous chunk generation provides an opportunity for things
to happen async that previously fired synchronous-only events. This
patch is for mitigating those issues by various methods.

Also fixes correctly marking/clearing the entity generation flag.
This patch sets the generation flag anytime an entity is created
via StructureTemplate before loading from NBT to catch uses of
the flag during the loading logic. This patch clears the generation
flag from an entity when added to a ServerLevel for the situation
where generation happened directly to a ServerLevel and the
entity still has the flag set.
2023-11-23 10:33:25 -08:00
LemonCaramel de8998e411 Fix UnsafeValues#loadAdvancement 2023-09-24 20:19:44 +09:00
Noah van der Aa 3b2125b47d Fix custom statistic criteria creation 2023-08-12 15:33:49 +02:00
Shane Freeder 084e7e62ad Mitigate effects of WorldCreator#keepSpawnLoaded ret type change
TODO: Remove in 1.21?
2022-09-19 00:13:02 +01:00
Jake Potrebic 75c623590f Fire EntityChangeBlockEvent in more places
Co-authored-by: ChristopheG <61288881+chrisgdt@users.noreply.github.com>
Co-authored-by: maxcom1 <46265094+maxcom1@users.noreply.github.com>
2021-08-09 20:45:46 -07:00
Josh Roy ebdde69c39 Add NamespacedKey biome methods
Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com>
2022-08-14 12:23:11 -04:00
Owen1212055 24d356944c Add missing important BlockStateListPopulator methods
Without these methods it causes exceptions due to these being used by certain feature generators.
2022-06-12 13:25:52 -04:00
Mariell Hoversholm 33aad47ee1 Add Raw Byte Entity Serialization
== AT ==
public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V
2021-10-24 16:20:31 -04:00
William Blake Galbreath b530d53b66 Add ItemFactory#getSpawnEgg API 2021-10-14 12:09:39 -05:00
syldium 864494345a Add more advancement API
== AT ==
public net.minecraft.advancements.Advancement decorateName(Lnet/minecraft/advancements/DisplayInfo;)Lnet/minecraft/network/chat/Component;

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2021-07-09 18:50:40 +02:00
Jake Potrebic 4180e72054 Get entity default attributes
== AT ==
public net.minecraft.world.entity.ai.attributes.AttributeSupplier getAttributeInstance(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;
2021-08-20 13:03:21 -07:00
Jake Potrebic c2b061d759 Improve item default attribute API 2021-05-08 15:01:54 -07:00
Jake Potrebic 121534e841 ItemStack repair check API 2021-05-15 22:11:11 -07:00
Jake Potrebic 80878ac918 More World API 2020-07-07 10:52:34 -07:00
Nassim Jahnke 85a8224261 Expose protocol version 2021-03-26 11:23:17 +01:00
Jake Potrebic d0185eb56e Expand world key API 2021-01-06 00:34:04 -08:00
Jake Potrebic 239e7a6b37 Add RegistryAccess for managing Registries
RegistryAccess is independant from CraftServer and
doesn't require one to be created allowing the
org.bukkit.Registry class to be loaded earlier.

== AT ==
public net.minecraft.server.RegistryLayer STATIC_ACCESS
2023-02-27 18:28:39 -08:00
Jake Potrebic 84581d0c6b Add missing default perms for commands 2020-11-16 12:01:52 -08:00
Jason Penilla 9ac98063a0 Fix client lag on advancement loading
When new advancements are added via the UnsafeValues#loadAdvancement
API, it triggers a full datapack reload when this is not necessary. The
advancement is already loaded directly into the advancement registry,
and the point of saving the advancement to the Bukkit datapack seems to
be for persistence. By removing the call to reload datapacks when an
advancement is loaded, the client no longer completely freezes up when
adding a new advancement.
To ensure the client still receives the updated advancement data, we
manually reload the advancement data for all players, which
normally takes place as a part of the datapack reloading.
2020-10-31 11:49:01 -07:00
MeFisto94 73b101005b Expose the Entity Counter to allow plugins to use valid and non-conflicting Entity Ids 2020-08-28 01:41:26 +02:00
mbax 0a7b472bee Fix regex mistake in CB NBT int deserialization
The existing regex is too open and allows for the absence of any actual
number data, detecting an NBT entry of just the letter "i" in upper or
lower case. This causes a single-character NBT entry to be processed as
an integer ending in "i", passing an empty String to to Integer.parseInt,
triggering an exception in loading the item.

This commit forces numbers to be present prior to the ending "i"
letter.
2020-08-17 12:17:37 -04:00
Aikar 23ae9d3c49 Improve Legacy Component serialization size
Don't constantly send format: false for all formatting options when parent already
has it false
2020-06-28 19:08:41 -04:00
Mariell Hoversholm 2a6962e59e Add permission for command blocks 2020-05-16 10:05:30 +02:00
Mariell Hoversholm f749992207 Add Raw Byte ItemStack Serialization
Serializes using NBT which is safer for server data migrations than bukkits format.
2020-04-30 16:56:54 +02:00
Aikar d0d0b1a21e Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.

== AT ==
public-f net.minecraft.world.entity.player.Player gameProfile
2018-03-18 12:29:48 -04: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
Aikar 770ee3eebd Remove Spigot timings 2016-03-03 04:00:11 -06:00
Nassim Jahnke fae673b95c Remap reflection calls in plugins using internals
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
2022-10-30 23:47:26 +01:00
Zach Brown 4cd66b0305 Hook into CB plugin rewrites
Allows us to do fun stuff like rewrite the OBC util fastutil location to
our own relocation. Also lets us rewrite NMS calls for when we're
debugging in an IDE pre-relocate.
2018-10-03 20:09:18 -04:00
Owen1212055 216388dfdf Paper Plugins
Co-authored-by: Micah Rao <micah.s.rao@gmail.com>
2022-07-06 23:00:31 -04: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
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
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 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 02380b2f27 POM Changes
Basic changes to the build system which mark the artifact as Spigot, and the necessary code changes to ensure proper functionality. Also disables the auto updater provided by CraftBukkit as it is useless to us.

By: md_5 <git@md-5.net>
2013-07-02 13:07:39 +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 5381ea78f7 Update to Minecraft 1.21.4
By: md_5 <git@md-5.net>
2024-12-04 03:20:00 +11:00
CraftBukkit/Spigot b06cbec171 SPIGOT-7966: Some trees do not generate with #generateTree
By: md_5 <git@md-5.net>
2024-11-27 07:00:57 +11:00
CraftBukkit/Spigot aefa65b696 #1504: Make Art an interface
By: DerFrZocker <derrieple@gmail.com>
2024-11-02 11:00:13 +11:00
CraftBukkit/Spigot 42ebf1afa4 #1502: Make Sound an interface
By: DerFrZocker <derrieple@gmail.com>
2024-11-02 11:00:08 +11:00
CraftBukkit/Spigot 7b903b41cb #1501: Make Biome an interface
By: DerFrZocker <derrieple@gmail.com>
2024-11-01 08:05:35 +11:00
CraftBukkit/Spigot af6f2c9b41 #1499: Make Fluid an interface and add missing entry
By: DerFrZocker <derrieple@gmail.com>
2024-10-29 06:43:20 +11:00
CraftBukkit/Spigot 08c83835f3 #1498: Make Attribute an interface and align names with the new minecraft ones
By: DerFrZocker <derrieple@gmail.com>
2024-10-29 06:43:14 +11:00