Skip to content

Commit

Permalink
Update version to 1.1.0, fix #3 (and then support 1.13!)
Browse files Browse the repository at this point in the history
  • Loading branch information
MinusKube committed Nov 26, 2018
1 parent d7f679e commit b7625f7
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 13 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Scoreboard API for your Minecraft Sponge and Bukkit Plugins.
**You can use this as a Plugin, or just add it to your dependencies.**

## Features:
- Works for all the **Bukkit** versions since **1.7**.
- Works for all the **Bukkit** versions since **1.7** (even **1.13**!).
- Works with **Sponge**! (Tell me if a version is not compatible)
- No blinking!
- Max characters per line:
Expand Down Expand Up @@ -70,10 +70,10 @@ repositories {
}
dependencies {
compile 'fr.minuskube:netherboard-bukkit:1.0.6'
compile 'fr.minuskube:netherboard-bukkit:1.1.0'
// Or if you use Sponge:
// compile 'fr.minuskube:netherboard-sponge:1.0.6'
// compile 'fr.minuskube:netherboard-sponge:1.1.0'
}
```

Expand All @@ -89,7 +89,7 @@ dependencies {
<artifactId>netherboard-sponge</artifactId>
-->

<version>1.0.6</version>
<version>1.1.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ subprojects {
sourceCompatibility = '1.8'

group 'fr.minuskube'
version '1.0.6'
version '1.1.0'

configurations { provided }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,18 @@ private void sendScore(Objective obj, String name, int score, boolean remove) {
break;
}

case "1.13": {
Object packet = NMS.PACKET_SCORE.newInstance(
remove ? NMS.ENUM_SCORE_ACTION_REMOVE : NMS.ENUM_SCORE_ACTION_CHANGE,
obj.getName(),
name,
score
);

NMS.sendPacket(packet, player);
break;
}

default: {
Object packet;

Expand Down
37 changes: 31 additions & 6 deletions bukkit/src/main/java/fr/minuskube/netherboard/bukkit/util/NMS.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public class NMS {
public static final Constructor<?> PACKET_SCORE_REMOVE;
public static final Constructor<?> PACKET_SCORE;

public static final Object ENUM_SCORE_ACTION_CHANGE;
public static final Object ENUM_SCORE_ACTION_REMOVE;

public static final Constructor<?> SB_SCORE;
public static final Method SB_SCORE_SET;

Expand All @@ -46,6 +49,9 @@ public class NMS {
Constructor<?> packetScoreRemove = null;
Constructor<?> packetScore = null;

Object enumScoreActionChange = null;
Object enumScoreActionRemove = null;

Constructor<?> sbScore = null;
Method sbScoreSet = null;

Expand All @@ -61,6 +67,7 @@ public class NMS {
Class<?> packetObjClass = getClass("PacketPlayOutScoreboardObjective");

Class<?> scoreClass = getClass("ScoreboardScore");
Class<?> scoreActionClass = getClass("ScoreboardServer$Action");

Class<?> sbClass = getClass("Scoreboard");
Class<?> objClass = getClass("ScoreboardObjective");
Expand All @@ -75,14 +82,29 @@ public class NMS {
sbScore = scoreClass.getConstructor(sbClass, objClass, String.class);
sbScoreSet = scoreClass.getMethod("setScore", int.class);

if(version.getMajor().equals("1.7"))
packetScore = packetScoreClass.getConstructor(scoreClass, int.class);
else {
packetScore = packetScoreClass.getConstructor(scoreClass);
packetScoreRemove = packetScoreClass.getConstructor(String.class, objClass);
switch(version.getMajor()) {
case "1.7":
packetScore = packetScoreClass.getConstructor(scoreClass, int.class);

packetObj = packetObjClass.getConstructor(int.class, objClass);
break;
case "1.13":
packetScore = packetScoreClass.getConstructor(scoreActionClass,
String.class, String.class, int.class);

enumScoreActionChange = scoreActionClass.getEnumConstants()[0];
enumScoreActionRemove = scoreActionClass.getEnumConstants()[1];

packetObj = packetObjClass.getConstructor(objClass, int.class);
break;
default:
packetScore = packetScoreClass.getConstructor(scoreClass);
packetScoreRemove = packetScoreClass.getConstructor(String.class, objClass);

packetObj = packetObjClass.getConstructor(objClass, int.class);
break;
}

packetObj = packetObjClass.getConstructor(objClass, int.class);
packetDisplay = packetDisplayClass.getConstructor(int.class, objClass);

playerConnection = playerClass.getField("playerConnection");
Expand All @@ -96,6 +118,9 @@ public class NMS {
PACKET_SCORE_REMOVE = packetScoreRemove;
PACKET_SCORE = packetScore;

ENUM_SCORE_ACTION_CHANGE = enumScoreActionChange;
ENUM_SCORE_ACTION_REMOVE = enumScoreActionRemove;

SB_SCORE = sbScore;
SB_SCORE_SET = sbScoreSet;

Expand Down
2 changes: 1 addition & 1 deletion bukkit/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Netherboard
version: 1.0.6
version: 1.1.0
description: Scoreboard API for your Bukkit Plugins.
author: MinusKube
website: https://github.com/MinusKube/netherboard
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
description = "Scoreboard API for your Sponge Plugins.",
authors = "MinusKube",
url = "https://github.com/MinusKube/netherboard",
version = "1.0.6")
version = "1.1.0")
public class NetherboardPlugin {}

0 comments on commit b7625f7

Please sign in to comment.