Commit Graph

2698 Commits

Author SHA1 Message Date
Minecrell c85ea66260 Add workaround for plugins modifying the parent of the plugin logger
Essentials uses a custom logger name ("Essentials") instead of the
plugin logger. Log messages are redirected to the plugin logger by
setting the parent of the "Essentials" logger to the plugin logger.

With our changes, the plugin logger is now also called "Essentials",
resulting in an infinite loop. Make sure plugins can't change the
parent of the plugin logger to avoid this.
2017-09-21 19:41:20 +02:00
Minecrell 31a575f5f7 Handle plugin prefixes in implementation logging configuration
Currently, plugin prefixes are prepended to the log message in
the PluginLogger before passing the message to the underlying
logging framework. This is bad design because they need to be
stripped manually when using custom appenders to log messages
in a different format.

Additionally, it makes integration of alternative logging APIs hard
because all logging must go through the PluginLogger. Avoid using
PluginLogger and create a regular logger using the plugin name.
The implementation should handle plugin prefixes by displaying
logger names when appropriate.
2017-09-21 16:14:13 +02:00
Minecrell 1caeaef01d Allow plugins to use SLF4J for logging
SLF4J is a commonly used abstraction for various logging frameworks
such as java.util.logging (JUL) or Log4j. Currently, plugins are
required to do all their logging using the provided JUL logger.
This is annoying for plugins that target multiple platforms or when
using libraries that log messages using SLF4J.

Expose SLF4J as optional logging API for plugins, so they can use
it without having to shade it in the plugin and going through
several layers of logging abstraction.
2017-09-21 16:33:12 +02:00
BillyGalbreath eb5ae9c077 LivingEntity#setKiller 2017-07-31 01:49:43 -05:00
Aikar 8df1d2656c ensureServerConversions API
This will take a Bukkit ItemStack and run it through any conversions a server process would perform on it,
to ensure it meets latest minecraft expectations.
2016-05-04 23:55:48 -04:00
Aikar 221abecc78 Add getI18NDisplayName API
Gets the Display name as seen in the Client.
Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
2016-05-04 23:55:48 -04:00
Aikar 9895d6c5c3 Improve the Saddle API for Horses
Not all horses with Saddles have armor. This lets us break up the horses with saddles
and access their saddle state separately from an interface shared with Armor.
2016-12-10 16:12:48 -05:00
BillyGalbreath 7bde46eefa Entity#fromMobSpawner() 2017-06-18 18:17:05 -05:00
Aikar 705daba3f5 Shoulder Entities Release API 2017-06-17 15:04:51 -04:00
BillyGalbreath f5829fec2e PlayerPickupItemEvent#setFlyAtPlayer 2017-05-07 06:26:01 -05:00
Aikar ccd4375fa5 Basic PlayerProfile API
Provides basic elements of a PlayerProfile to be used by future API/events
2018-01-15 21:46:46 -05:00
Sweepyoface 95384179d4 Add UnknownCommandEvent 2017-06-17 18:48:06 -04:00
BillyGalbreath 915a67d444 PlayerAttemptPickupItemEvent 2017-06-11 16:30:37 -05:00
BillyGalbreath 9dc1cc8212 Item#canEntityPickup 2017-05-05 03:57:08 -05:00
Zach Brown 0c37d20354 Fix upstream javadocs 2017-06-10 16:59:40 -05:00
Riley Park f7eff332be Add configuration option to prevent player names from being suggested 2017-06-09 07:24:24 -07:00
Aikar f0d3438c11 ExperienceOrbs API for Reason/Source/Triggering player
Adds lots of information about why this orb exists.

Replaces isFromBottle() with logic that persists entity reloads too.
2017-12-19 16:28:32 -05:00
Aikar 204f5daef7 Provide E/TE/Chunk count stat methods
Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections.
2017-01-07 15:23:03 -05:00
Aikar d84384e895 Fireworks API's
Get the Entity being boosted
Get the firework launcher
2016-12-28 01:18:55 -05:00
Riley Park 614404fa55 Add API methods to control if armour stands can move 2016-12-21 11:47:25 -06:00
Aikar e5e56e1ee1 Add String based Action Bar API 2016-12-20 15:55:55 -05:00
AlphaBlend df6649ed5d Add source to PlayerExpChangeEvent 2016-09-08 08:47:08 -07:00
willies952002 55dc3ff664 Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
2016-11-28 10:16:39 -05:00
AlphaBlend 4d7ecbdb78 Add EntityZapEvent 2016-10-16 23:19:34 -07:00
Aikar 397d3cac4b LootTable API
Provides API to control what Loot Table an object uses.

Also provides an Event to control if a lootable inventory should
auto replenish for a player.

Provides methods to determine players looted state for an object
2016-05-01 15:19:49 -04:00
Zach Brown 391451207f EntityRegainHealthEvent isFastRegen API 2016-04-22 01:43:11 -05:00
Jedediah Smith bcd6aecdab Arrow pickup rule API 2016-03-04 03:13:18 -05:00
Aikar 542f830ebc Add MetadataStoreBase.removeAll(Plugin)
So that on reload, metadata will be cleared
2013-07-16 21:26:50 -04:00
crast fc77a4d2d3 Reduce thread synchronization in MetadataStoreBase
Use ConcurrentHashMap to allow thread-safe access methods and very
limited synchronized portions to allow much higher concurrency in
MetadataStore as well as far less locking, especially on reads
2013-06-01 13:52:30 -06:00
Aikar 7ad9895c25 Entity AddTo/RemoveFrom World Events 2016-03-28 20:26:34 -04:00
Jedediah Smith 1e271136de Custom replacement for eaten items 2015-06-21 15:05:21 -04:00
William 97112daade Add command to reload permissions.yml and require confirm to reload 2016-03-18 03:28:07 -04:00
Aikar 65a5fbb91a Add sender name to commands.yml replacement
This allows you to use $sender in commands.yml definitions to make
commands that auto target self.
2015-07-22 18:50:41 -04:00
Aikar 7ec6dfa78b Add a call helper to Event
Reduces diff in Server patches
2013-05-19 20:36:58 -04:00
Jedediah Smith ecfabc25c7 Complete resource pack API 2015-04-04 22:59:54 -04:00
mrapple 333cc0c4e1 Add methods for working with arrows stuck in living entities
Upstream added methods for this so the original methods
are now deprecated
2012-11-25 13:47:27 -06:00
Techcable b8f6338201 Player Tab List and Title APIs
Co-authored-by: Fruxz <cedricspitzer@outlook.de>
2016-02-29 20:02:40 -06:00
Aikar 459551a9d5 Fix ServerListPingEvent flagging as Async
This event can sometimes fire Async, set the proper boolean
2016-02-29 20:26:39 -06:00
Riley Park 8b45793902 Add BaseComponent sendMessage methods to CommandSender 2016-03-08 13:05:59 -08:00
Zach Brown 7c31d0a39b Add exception reporting event 2016-02-29 20:24:35 -06:00
Zach Brown b007bb8264 Graduate bungeecord chat API from spigot subclasses
Change Javadoc to be accurate
2016-02-29 19:54:32 -06:00
Riley Park 07c65b03e0 Expose server CommandMap 2016-02-29 19:48:59 -06:00
Byteflux 5fe2709f4c Add view distance API
Add per player no-tick, tick, and send view distances.

Also add send/no-tick view distance to World.
2016-02-29 18:05:37 -06:00
Byteflux 0cf4a9a62e Entity Origin API 2016-02-29 17:50:31 -06:00
Zach Brown 05ec73f817 Expose server build information
Co-authored-by: Professor Bloodstone <git@bloodstone.dev>
Co-authored-by: Mark Vainomaa <mikroskeem@mikroskeem.eu>
Co-authored-by: masmc05 <masmc05@gmail.com>
Co-authored-by: Riley Park <rileysebastianpark@gmail.com>
2019-05-27 01:10:06 -05:00
Aikar 376251dab7 Add getTPS method 2016-02-29 17:24:57 -06:00
Jedediah Smith 978feffa80 Player affects spawning API 2016-02-29 17:22:34 -06:00
Jason Penilla e183355647 Add command line option to load extra plugin jars not in the plugins folder
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
2021-05-18 14:42:26 -07:00
Aikar d4d8262f6e Timings v2
TODO: Add #isStopping to FullServerTickHandler#stopTiming in patch 191
expose isRunning
2016-02-29 18:48:17 -06:00
Jake Potrebic 30e04bfa2f Add Position 2022-03-20 10:42:28 -07:00