Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-26 16:12:42 +01:00
Make more errors informative :)
Dieser Commit ist enthalten in:
Ursprung
ef08117f34
Commit
4ce846a899
@ -39,7 +39,7 @@ public class PacketWrapper {
|
|||||||
* @param index The index of the part (relative to the type)
|
* @param index The index of the part (relative to the type)
|
||||||
* @return The requested type or throws ArrayIndexOutOfBounds
|
* @return The requested type or throws ArrayIndexOutOfBounds
|
||||||
*/
|
*/
|
||||||
public <T> T get(Type<T> type, int index) {
|
public <T> T get(Type<T> type, int index) throws Exception {
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
for (Pair<Type, Object> packetValue : packetValues) {
|
for (Pair<Type, Object> packetValue : packetValues) {
|
||||||
if (packetValue.getKey() == type) { // Ref check
|
if (packetValue.getKey() == type) { // Ref check
|
||||||
@ -49,7 +49,9 @@ public class PacketWrapper {
|
|||||||
currentIndex++;
|
currentIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new ArrayIndexOutOfBoundsException("Could not find type " + type.getTypeName() + " at " + index);
|
|
||||||
|
Exception e = new ArrayIndexOutOfBoundsException("Could not find type " + type.getTypeName() + " at " + index);
|
||||||
|
throw new InformativeException(e).set("Type", type.getTypeName()).set("Index", index).set("Packet ID", getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -59,7 +61,7 @@ public class PacketWrapper {
|
|||||||
* @param index The index of the part (relative to the type)
|
* @param index The index of the part (relative to the type)
|
||||||
* @param value The value of the part you wish to set it to.
|
* @param value The value of the part you wish to set it to.
|
||||||
*/
|
*/
|
||||||
public <T> void set(Type<T> type, int index, T value) {
|
public <T> void set(Type<T> type, int index, T value) throws Exception {
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
for (Pair<Type, Object> packetValue : packetValues) {
|
for (Pair<Type, Object> packetValue : packetValues) {
|
||||||
if (packetValue.getKey() == type) { // Ref check
|
if (packetValue.getKey() == type) { // Ref check
|
||||||
@ -70,7 +72,8 @@ public class PacketWrapper {
|
|||||||
currentIndex++;
|
currentIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new ArrayIndexOutOfBoundsException("Could not find type " + type.getTypeName() + " at " + index);
|
Exception e = new ArrayIndexOutOfBoundsException("Could not find type " + type.getTypeName() + " at " + index);
|
||||||
|
throw new InformativeException(e).set("Type", type.getTypeName()).set("Index", index).set("Packet ID", getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -98,7 +101,8 @@ public class PacketWrapper {
|
|||||||
if (type == Type.NOTHING) {
|
if (type == Type.NOTHING) {
|
||||||
return read(type); // retry
|
return read(type); // retry
|
||||||
} else {
|
} else {
|
||||||
throw new IOException("Unable to read type " + type.getTypeName() + ", found " + read.getKey().getTypeName());
|
Exception e = new IOException("Unable to read type " + type.getTypeName() + ", found " + read.getKey().getTypeName());
|
||||||
|
throw new InformativeException(e).set("Type", type.getTypeName()).set("Packet ID", getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public class BaseProtocol extends Protocol {
|
|||||||
map(Type.STRING);
|
map(Type.STRING);
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
ProtocolInfo info = wrapper.user().get(ProtocolInfo.class);
|
ProtocolInfo info = wrapper.user().get(ProtocolInfo.class);
|
||||||
String originalStatus = wrapper.get(Type.STRING, 0);
|
String originalStatus = wrapper.get(Type.STRING, 0);
|
||||||
try {
|
try {
|
||||||
@ -73,7 +73,7 @@ public class BaseProtocol extends Protocol {
|
|||||||
map(Type.STRING); // 1 - Player Username
|
map(Type.STRING); // 1 - Player Username
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
ProtocolInfo info = wrapper.user().get(ProtocolInfo.class);
|
ProtocolInfo info = wrapper.user().get(ProtocolInfo.class);
|
||||||
info.setState(State.PLAY);
|
info.setState(State.PLAY);
|
||||||
// Save other info
|
// Save other info
|
||||||
@ -101,7 +101,7 @@ public class BaseProtocol extends Protocol {
|
|||||||
map(Type.VAR_INT); // 3 - Next State
|
map(Type.VAR_INT); // 3 - Next State
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int protVer = wrapper.get(Type.VAR_INT, 0);
|
int protVer = wrapper.get(Type.VAR_INT, 0);
|
||||||
int state = wrapper.get(Type.VAR_INT, 1);
|
int state = wrapper.get(Type.VAR_INT, 1);
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ public class PlayerPackets {
|
|||||||
// Parse this info
|
// Parse this info
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception{
|
||||||
int entityID = wrapper.get(Type.INT, 0);
|
int entityID = wrapper.get(Type.INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
tracker.getClientEntityTypes().put(entityID, EntityType.PLAYER);
|
tracker.getClientEntityTypes().put(entityID, EntityType.PLAYER);
|
||||||
|
@ -34,7 +34,7 @@ public class SpawnPackets {
|
|||||||
|
|
||||||
create(new ValueCreator() {
|
create(new ValueCreator() {
|
||||||
@Override
|
@Override
|
||||||
public void write(PacketWrapper wrapper) {
|
public void write(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
wrapper.write(Type.UUID, tracker.getEntityUUID(entityID)); // 1 - UUID
|
wrapper.write(Type.UUID, tracker.getEntityUUID(entityID)); // 1 - UUID
|
||||||
@ -45,7 +45,7 @@ public class SpawnPackets {
|
|||||||
// Parse this info
|
// Parse this info
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
int typeID = wrapper.get(Type.BYTE, 0);
|
int typeID = wrapper.get(Type.BYTE, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
@ -92,7 +92,7 @@ public class SpawnPackets {
|
|||||||
// Parse this info
|
// Parse this info
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
tracker.getClientEntityTypes().put(entityID, EntityType.EXPERIENCE_ORB);
|
tracker.getClientEntityTypes().put(entityID, EntityType.EXPERIENCE_ORB);
|
||||||
@ -116,7 +116,7 @@ public class SpawnPackets {
|
|||||||
// Parse this info
|
// Parse this info
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
// Currently only lightning uses this
|
// Currently only lightning uses this
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
@ -138,7 +138,7 @@ public class SpawnPackets {
|
|||||||
|
|
||||||
create(new ValueCreator() {
|
create(new ValueCreator() {
|
||||||
@Override
|
@Override
|
||||||
public void write(PacketWrapper wrapper) {
|
public void write(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
wrapper.write(Type.UUID, tracker.getEntityUUID(entityID)); // 1 - UUID
|
wrapper.write(Type.UUID, tracker.getEntityUUID(entityID)); // 1 - UUID
|
||||||
@ -149,7 +149,7 @@ public class SpawnPackets {
|
|||||||
// Parse this info
|
// Parse this info
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
int typeID = wrapper.get(Type.UNSIGNED_BYTE, 0);
|
int typeID = wrapper.get(Type.UNSIGNED_BYTE, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
@ -205,7 +205,7 @@ public class SpawnPackets {
|
|||||||
// Parse this info
|
// Parse this info
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
tracker.getClientEntityTypes().put(entityID, EntityType.PAINTING);
|
tracker.getClientEntityTypes().put(entityID, EntityType.PAINTING);
|
||||||
@ -215,7 +215,7 @@ public class SpawnPackets {
|
|||||||
|
|
||||||
create(new ValueCreator() {
|
create(new ValueCreator() {
|
||||||
@Override
|
@Override
|
||||||
public void write(PacketWrapper wrapper) {
|
public void write(PacketWrapper wrapper) throws Exception {
|
||||||
int entityID = wrapper.get(Type.VAR_INT, 0);
|
int entityID = wrapper.get(Type.VAR_INT, 0);
|
||||||
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
EntityTracker tracker = wrapper.user().get(EntityTracker.class);
|
||||||
wrapper.write(Type.UUID, tracker.getEntityUUID(entityID)); // 1 - UUID
|
wrapper.write(Type.UUID, tracker.getEntityUUID(entityID)); // 1 - UUID
|
||||||
@ -282,7 +282,7 @@ public class SpawnPackets {
|
|||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(PacketWrapper wrapper) {
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
Integer[] entities = wrapper.get(Type.VAR_INT_ARRAY, 0);
|
Integer[] entities = wrapper.get(Type.VAR_INT_ARRAY, 0);
|
||||||
for (Integer entity : entities) {
|
for (Integer entity : entities) {
|
||||||
// EntityTracker
|
// EntityTracker
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren