OvercastNetwork / SportBukkit

CraftBukkit and Bukkit modifications that improve stability and add new features
99 stars 84 forks source link

[WIP] Rebase to CraftBukkit 1.9 #184

Closed jedediah closed 8 years ago

jedediah commented 8 years ago

Changes:

Removed:

Added:

Needs testing:

jedediah commented 8 years ago

Done all Bukkit patches and 86/127 CraftBukkit patches

jedediah commented 8 years ago

All patches done, builds fine. Just needs testing.

twizmwazin commented 8 years ago

The minecraft-api artifact for 1.9 is not in the repo yet, causing a build fail if it isn't installed locally.

ryanwarsaw commented 8 years ago

Arrows also appear to be bugged, if you go in-game and shoot an arrow it appears to be invisible as it is flying through the air (and returns to its visible state when it lands). I can't confirm whether or not this is an upstream problem or SportBukkit specific.

Pablete1234 commented 8 years ago

@jedediah What happened to player.setAffectsSpawning(Boolean); and player.setCollidesWithEntities(Boolean) ?

jedediah commented 8 years ago

Replaced with Player.setInteractionOverride

Pablete1234 commented 8 years ago

@jedediah thanks

Pablete1234 commented 8 years ago

@jedediah testing 1.9, cancelling the damage event (obervers trying to damage ingame players) also plays the hit sound for the ingame player.

Pablete1234 commented 8 years ago

Playsound throws out of bounds exception if you don't include a player (/playsound sound slider)

if you only put argument, it works as expected and gives the usage, the problem seems to be only if you put 2 arguments (in 1.8 min arguments was 2, and seems like it's the same for 1.9, even tho it should be 3)

twizmwazin commented 8 years ago

In the bossbar api patch, you're changing the parameter and return types to use BaseComponents rather than strings. While I agree with this improvement, it breaks compatibility with plugins written for bukkit. You should have String-based methods (deprecated?) to ensure compatibility. We shouldn't needlessly break compatibility.

jedediah commented 8 years ago

I think it's silly to be creating new APIs that support legacy text formatting, especially when the underlying system doesn't even support it. We reimplemented a fair bit of the boss bar code anyway, and we don't want the extra work of maintaining the legacy methods.

twizmwazin commented 8 years ago

Re-implementing the legacy methods wouldn't be difficult though. There are already methods to quickly convert between strings and base components. I'd even suggest deprecating the legacy methods in SportBukkit to developers to avoid them and use the component formatting instead. The main issue here is that Sportbukkit breaking API compatibility with Bukkit means that users are not necessarily going to be able to run plugins written for Bukkit on there SportBukkit server.

jedediah commented 8 years ago

The bigger issue is that I don't want to invent new ways to use deprecated functionality. I'm going to see about changing the API upstream.

twizmwazin commented 8 years ago

I'm not sure that md_5 would support using components in bukkit, I'd see him more likely to have a spigot patch to add support for them there. However, for compatibility sake here, unless I'm missing something, is there any reason we can't just use TextComponet.fromLegacyText(String message) and BaseComponent.toLegacyText(BaseComponent... components)?

jedediah commented 8 years ago

Yes, that would do it. If it isn't changed upstream, then I'll put the legacy methods back.

Pablete1234 commented 8 years ago

@jedediah Dropped items in the ground always look like stone to the client (when picked up they are the correct type and data)

Pablete1234 commented 8 years ago

@jedediah player.setCollidesWithEntities doesn't prevent stoping boats (if an observers stands onfront of a boat, the player riding the boat can't move it)