UseItemRequest.java
// Check binge requests before checking fullness or inebriety
switch (consumptionType) {
case SPIRIT_HOBO:
case GLUTTONOUS_GHOST:
case SLIMELING:
return Integer.MAX_VALUE;
  case ROBORTENDER:
return 1;
  case PASTA_GUARDIAN:
UseItemRequest.limiter = "character class";
    return KoLCharacter.isPastamancer() ? 1 : 0;
  case EAT:
return EatItemRequest.maximumUses(
itemId, itemName, ConsumablesDatabase.getFullness(itemName));
  case DRINK:
return DrinkItemRequest.maximumUses(
itemId, itemName, ConsumablesDatabase.getInebriety(itemName), allowOverDrink);
  case SPLEEN:
return SpleenItemRequest.maximumUses(
itemId, itemName, ConsumablesDatabase.getSpleenHit(itemName));
}
// Delegate to specialized classes as appropriate
int inebriety = ConsumablesDatabase.getInebriety(itemName);
if (inebriety > 0) {
return DrinkItemRequest.maximumUses(itemId, itemName, inebriety, allowOverDrink);
}
int fullness = ConsumablesDatabase.getFullness(itemName);
if (fullness > 0 || itemId == ItemPool.MAGICAL_SAUSAGE) {
return EatItemRequest.maximumUses(itemId, itemName, fullness);
}
int spleenHit = ConsumablesDatabase.getSpleenHit(itemName);
if (spleenHit > 0) {
return SpleenItemRequest.maximumUses(itemId, itemName, spleenHit);
}