Advertisement
No4NaMe

GlobalBlockPalette

Feb 10th, 2021
557
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.66 KB | None | 0 0
  1.     public static int getOrCreateRuntimeId(int protocol, int id, int meta) {
  2.         int legacyId = (protocol >= 388) ? ((id << 6) | meta) : ((id << 4) | meta);
  3.         switch (protocol) {
  4.             // Versions before this doesn't use runtime IDs
  5.             case 223:
  6.             case 224:
  7.                 return legacyToRuntimeId223.get(legacyId);
  8.             case 261:
  9.                 return legacyToRuntimeId261.get(legacyId);
  10.             case 274:
  11.                 return legacyToRuntimeId274.get(legacyId);
  12.             case 281:
  13.             case 282:
  14.                 return legacyToRuntimeId282.get(legacyId);
  15.             case 291:
  16.                 return legacyToRuntimeId291.get(legacyId);
  17.             case 313:
  18.                 return legacyToRuntimeId313.get(legacyId);
  19.             case 332:
  20.                 return legacyToRuntimeId332.get(legacyId);
  21.             case 340:
  22.                 return legacyToRuntimeId340.get(legacyId);
  23.             case 354:
  24.                 return legacyToRuntimeId354.get(legacyId);
  25.             case 361:
  26.                 return legacyToRuntimeId361.get(legacyId);
  27.             case 388:
  28.                 return legacyToRuntimeId388.get(legacyId);
  29.             case 389:
  30.             case 390:
  31.                 int id389 = legacyToRuntimeId389.get(legacyId);
  32.                 if (id389 == -1) {
  33.                     id389 = legacyToRuntimeId389.get(id << 6);
  34.                     if (id389 == -1) {
  35.                         log.info("(389) Creating new runtime ID for unknown block {}", id);
  36.                         id389 = runtimeIdAllocator389.getAndIncrement();
  37.                         legacyToRuntimeId389.put(id << 6, id389);
  38.                     }
  39.                 }
  40.                 return id389;
  41.             case 407:
  42.                 int id407 = legacyToRuntimeId407.get(legacyId);
  43.                 if (id407 == -1) {
  44.                     id407 = legacyToRuntimeId407.get(id << 6);
  45.                     if (id407 == -1) {
  46.                         log.info("(407) Creating new runtime ID for unknown block {}", id);
  47.                         id407 = runtimeIdAllocator407.getAndIncrement();
  48.                         legacyToRuntimeId407.put(id << 6, id407);
  49.                     }
  50.                 }
  51.                 return id407;
  52.             case 408:
  53.             case 409:
  54.             case 410:
  55.             case 411:
  56.                 int id408 = legacyToRuntimeId408.get(legacyId);
  57.                 if (id408 == -1) {
  58.                     id408 = legacyToRuntimeId408.get(id << 6);
  59.                     if (id408 == -1) {
  60.                         log.info("(408) Creating new runtime ID for unknown block {}", id);
  61.                         id408 = runtimeIdAllocator408.getAndIncrement();
  62.                         legacyToRuntimeId408.put(id << 6, id408);
  63.                     }
  64.                 }
  65.                 return id408;
  66.             case 419:
  67.             case 420:
  68.             case 422:
  69.             case ProtocolInfo.v1_16_210_50:
  70.             case ProtocolInfo.v1_16_210_53:
  71.                 int id419 = legacyToRuntimeId419.get(legacyId);
  72.                 if (id419 == -1) {
  73.                     id419 = legacyToRuntimeId419.get(id << 6);
  74.                     if (id419 == -1) {
  75.                         log.info("(419) Creating new runtime ID for unknown block {}", id);
  76.                         id419 = runtimeIdAllocator419.getAndIncrement();
  77.                         legacyToRuntimeId419.put(id << 6, id419);
  78.                     }
  79.                 }
  80.                 return id419;
  81.             default:
  82.                 throw new IllegalArgumentException("Tried to get block runtime id for unsupported protocol version: " + protocol);
  83.         }
  84.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement