Fixed broken entity rollbacks
This commit is contained in:
parent
afb13e6677
commit
3038e96c6e
4 changed files with 8 additions and 36 deletions
|
|
@ -46,7 +46,7 @@ public class RollbackEntityHandler {
|
||||||
* The username associated with this entity change
|
* The username associated with this entity change
|
||||||
* @return The number of entities affected (1 if successful, 0 otherwise)
|
* @return The number of entities affected (1 if successful, 0 otherwise)
|
||||||
*/
|
*/
|
||||||
public static int processEntity(Object[] row, int rollbackType, String finalUserString, int rowTypeRaw, int rowData, int rowAction, int rowRolledBack, int rowX, int rowY, int rowZ, int rowWorldId, int rowUserId, String rowUser) {
|
public static int processEntity(Object[] row, int rollbackType, String finalUserString, int oldTypeRaw, int rowTypeRaw, int rowData, int rowAction, int rowRolledBack, int rowX, int rowY, int rowZ, int rowWorldId, int rowUserId, String rowUser) {
|
||||||
try {
|
try {
|
||||||
// Entity kill
|
// Entity kill
|
||||||
if (rowAction == 3) {
|
if (rowAction == 3) {
|
||||||
|
|
@ -76,12 +76,11 @@ public class RollbackEntityHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (rowTypeRaw <= 0) {
|
else if (rowTypeRaw <= 0) {
|
||||||
int oldTypeRaw = rowTypeRaw;
|
|
||||||
// Attempt to remove entity
|
// Attempt to remove entity
|
||||||
if (rowRolledBack == 1) {
|
if (rowRolledBack == 1) {
|
||||||
boolean removed = false;
|
boolean removed = false;
|
||||||
int entityId = -1;
|
int entityId = -1;
|
||||||
String entityName = EntityUtils.getEntityType(Math.abs(oldTypeRaw)).name();
|
String entityName = EntityUtils.getEntityType(oldTypeRaw).name();
|
||||||
String token = "" + rowX + "." + rowY + "." + rowZ + "." + rowWorldId + "." + entityName + "";
|
String token = "" + rowX + "." + rowY + "." + rowZ + "." + rowWorldId + "." + entityName + "";
|
||||||
Object[] cachedEntity = CacheHandler.entityCache.get(token);
|
Object[] cachedEntity = CacheHandler.entityCache.get(token);
|
||||||
|
|
||||||
|
|
@ -107,7 +106,7 @@ public class RollbackEntityHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (entity.getType().equals(EntityUtils.getEntityType(Math.abs(oldTypeRaw)))) {
|
if (entity.getType().equals(EntityUtils.getEntityType(oldTypeRaw))) {
|
||||||
Location entityLocation = entity.getLocation();
|
Location entityLocation = entity.getLocation();
|
||||||
int entityx = entityLocation.getBlockX();
|
int entityx = entityLocation.getBlockX();
|
||||||
int entityY = entityLocation.getBlockY();
|
int entityY = entityLocation.getBlockY();
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ public class RollbackProcessor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (rowAction == 3) { // entity kill
|
else if (rowAction == 3) { // entity kill
|
||||||
entityCount += RollbackEntityHandler.processEntity(row, rollbackType, finalUserString, rowTypeRaw, rowData, rowAction, MaterialUtils.rolledBack((Integer) row[9], false), rowX, rowY, rowZ, rowWorldId, (Integer) row[2], rowUser);
|
entityCount += RollbackEntityHandler.processEntity(row, rollbackType, finalUserString, oldTypeRaw, rowTypeRaw, rowData, rowAction, MaterialUtils.rolledBack((Integer) row[9], false), rowX, rowY, rowZ, rowWorldId, (Integer) row[2], rowUser);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
String world = WorldUtils.getWorldName(rowWorldId);
|
String world = WorldUtils.getWorldName(rowWorldId);
|
||||||
|
|
|
||||||
|
|
@ -533,16 +533,7 @@ public class RollbackUtil extends Lookup {
|
||||||
* Additional data for the entity
|
* Additional data for the entity
|
||||||
*/
|
*/
|
||||||
public static void queueEntitySpawn(String user, BlockState block, EntityType type, int data) {
|
public static void queueEntitySpawn(String user, BlockState block, EntityType type, int data) {
|
||||||
if (Queue.class.getDeclaredMethods() != null) {
|
Queue.queueEntitySpawn(user, block, type, data);
|
||||||
try {
|
|
||||||
java.lang.reflect.Method method = Queue.class.getDeclaredMethod("queueEntitySpawn", String.class, BlockState.class, EntityType.class, int.class);
|
|
||||||
method.setAccessible(true);
|
|
||||||
method.invoke(null, user, block, type, data);
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -556,16 +547,7 @@ public class RollbackUtil extends Lookup {
|
||||||
* The row ID for the skull data
|
* The row ID for the skull data
|
||||||
*/
|
*/
|
||||||
public static void queueSkullUpdate(String user, BlockState block, int rowId) {
|
public static void queueSkullUpdate(String user, BlockState block, int rowId) {
|
||||||
if (Queue.class.getDeclaredMethods() != null) {
|
Queue.queueSkullUpdate(user, block, rowId);
|
||||||
try {
|
|
||||||
java.lang.reflect.Method method = Queue.class.getDeclaredMethod("queueSkullUpdate", String.class, BlockState.class, int.class);
|
|
||||||
method.setAccessible(true);
|
|
||||||
method.invoke(null, user, block, rowId);
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -581,15 +563,6 @@ public class RollbackUtil extends Lookup {
|
||||||
* The time of the update
|
* The time of the update
|
||||||
*/
|
*/
|
||||||
public static void queueSignUpdate(String user, BlockState block, int action, int time) {
|
public static void queueSignUpdate(String user, BlockState block, int action, int time) {
|
||||||
if (Queue.class.getDeclaredMethods() != null) {
|
Queue.queueSignUpdate(user, block, action, time);
|
||||||
try {
|
|
||||||
java.lang.reflect.Method method = Queue.class.getDeclaredMethod("queueSignUpdate", String.class, BlockState.class, int.class, int.class);
|
|
||||||
method.setAccessible(true);
|
|
||||||
method.invoke(null, user, block, action, time);
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue