High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
Go to file
Pokechu22 4d3bf20155 Re-enable the vanilla debug MethodProfiler and /debug command
This is highly useful for profiling vanilla code, and in some cases plugin code.  It is somewhat expensive, though, which is why it was initially disabled.

I chose to use a system property instead of a configuration setting because 1) the MethodProfiler is exclusive to CraftBukkit and not part of the general API (the timings system is the general API equivalent), and 2) using a static final boolean property _may_ allow the JITter to optimize out the methods when disabled (though I'm not sure of it).

There are several changes to fix cases where the profiler code was broken slightly by other craftbukkit changes.  All of cases have been fixed, except for the block entity ticking one, due to the cost of the getSimpleName call.  For that, a ticking entry is used instead, so that time spent actually ticking the block entities can be compared with time processing the list.

This (effectively) reverts 7dde6cc566.
2017-01-18 17:42:35 -08:00
nms-patches Re-enable the vanilla debug MethodProfiler and /debug command 2017-01-18 17:42:35 -08:00
src Add API to set Arrow pickup status 2017-01-18 10:01:28 +11:00
.gitignore Update to Minecraft 1.8 2014-11-28 17:16:30 +11:00
applyPatches.sh Update to Minecraft 1.8.6 2015-05-25 22:04:32 +10:00
deprecation-mappings.csrg Update to Minecraft 1.9 2016-03-01 09:32:45 +11:00
LGPL.txt We're LGPL. 2011-01-02 10:58:11 +01:00
LICENCE.txt We're LGPL. 2011-01-02 10:58:11 +01:00
makePatches.sh Cut fluff from patch headers. 2015-05-25 20:37:24 +10:00
pom.xml Update to Minecraft 1.11.2 2016-12-21 22:00:00 +11:00
README.md Change style of PAIL comments in README.md 2016-11-19 16:05:22 +11:00

CraftBukkit

An implementation of the Bukkit plugin API for Minecraft servers, currently maintained by SpigotMC.

Bug Reporting

The development team is very open to both bug and feature requests / suggestions. You can submit these on the JIRA Issue Tracker.

Compilation

CraftBukkit is a Java program which uses Maven 3 for compilation. To compile fresh from Git, simply perform the following steps:

  • Install Git using your preferred installation methods.
  • Download and run BuildTools

Some IDEs such as NetBeans can perform these steps for you. Any Maven capable Java IDE can be used to develop with CraftBukkit, however the current team's personal preference is to use NetBeans.

Contributing

Contributions of all sorts are welcome. To manage community contributions, we use the pull request functionality of Stash. In to gain access to Stash and create a pull request, you will first need to perform the following steps:

  • Create an account on JIRA.
  • Fill in the SpigotMC CLA and wait up to 24 hours for your Stash account to be activated. Please ensure that your username and email addresses match.
  • Log into Stash using your JIRA credentials.

Once you have performed these steps you can create a fork, push your code changes, and then submit it for review.

If you submit a PR involving both Bukkit and CraftBukkit, it's appreciated if each PR links the other. Additionally, every reference to an obfuscated field/method in NMS should be marked with // PAIL: Rename and optionally a suggested name, to make mapping creation easier. E.g.:

    entity.k.get(i).f(); // PAIL pathfinders, navigateToHome 

Also, make sure to include // Craftbukkit comments to indicate modified NMS sources.