No Gravity #223
Keine Reviewer
Label
Kein Label
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Niemand zuständig
2 Beteiligte
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/SpigotCore#223
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "NoGravityREntity" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?
@ -40,6 +40,8 @@ public class REntity {
private static final Object nameWatcher = BountifulWrapper.impl.getDataWatcherObject(2, Core.getVersion() > 12 ? Optional.class : String.class); // Optional<IChatBaseComponent>
private static final Object nameVisibleWatcher = BountifulWrapper.impl.getDataWatcherObject(3, Boolean.class);
private static final Object noGravityDataWatcher = BountifulWrapper.impl.getDataWatcherObject(5,Boolean.class);
Der DataWatcher existiert nach meinen Informationen in der 1.8 noch nicht...
introduced in der 1.10.
1.9 scheint den DataWatcher nach meinen Recherchen allerdings auch schon zu kennen (auch wenn er da potentiell einen anderen Zweck hat).
@ -187,1 +190,4 @@
public void setNoGravity(boolean noGravity) {
this.noGravity = noGravity;
server.updateEntity(this,getDataWatcherPacket(noGravityDataWatcher,getEntityStatus()));
entityStatus wird nur auf dem EntityStatusWatcher gesendet... hier möchtest du doch ein boolean übertragen... wie wäre es mit noGravity?
@ -232,1 +240,4 @@
}
if(noGravity)
packetSink.accept(getDataWatcherPacket(noGravityDataWatcher,getEntityStatus()));
Auch hier ist ein anderer Wert vonnöten.
@ -188,0 +200,4 @@
public void setGlowing(boolean glowing) {
this.isGlowing = glowing;
if(Core.getVersion() > 8) {
IsGlowing gibts auch erst seit der 1.9?
Ist in der 1.9 dazu gekommen.
@ -231,2 +251,4 @@
packetSink.accept(getDataWatcherPacket(nameWatcher, FlatteningWrapper.impl.formatDisplayName(displayName), nameVisibleWatcher, true));
}
if(noGravity)
1.8
@ -66,3 +72,2 @@
public REntity(REntityServer server, EntityType entityType, Location location) {
this(server, entityType, new UUID(random.nextLong() & -61441L | 16384L, random.nextLong() & 4611686018427387903L | -9223372036854775808L), location);
public REntity(REntityServer server, EntityType entityType, Location location,int objectData) {
Äh nein, in diesem Konstruktor wird definitiv auf 0 gedefaultet. Weil dieser Konstruktor wird bereits in anderen Projekten verwendet (bei Merge gäbe es jede Menge Fehler) und die REntities sollen nicht direkt mit einem random int initialisiert werden. (Evtl. diesen Konstruktor in einen Protected Konstruktor umwandeln und den alten beibehalten)
@ -344,11 +373,13 @@ public class REntity {
protected static Function<REntity, Object> spawnPacketGenerator(Class<?> spawnPacket, int posOffset) {
Reflection.FieldAccessor<Integer> entityId = Reflection.getField(spawnPacket, int.class, 0);
Reflection.FieldAccessor<Integer> additionalData = Reflection.getField(spawnPacket, int.class, 9);
Ich bezweifle stark, dass das in jeder Version von 1.8 bis 1.19 immer int Nr. 9 ist.