use of com.skelril.nitro.Clause in project Skree by Skelril.
the class RedFeather method getFeatherPower.
public Clause<Integer, Long> getFeatherPower(net.minecraft.item.ItemStack stack) {
if (stack != null && stack.getItem() == this) {
long coolDown = 0;
if (stack.getTagCompound() == null) {
stack.setTagCompound(new NBTTagCompound());
}
if (stack.getTagCompound().hasKey("skree_feather_data")) {
NBTTagCompound tag = stack.getTagCompound().getCompoundTag("skree_feather_data");
coolDown = tag.getLong("cool_down");
}
return new Clause<>((__getMaxUses() - stack.getItemDamage()) - 1, coolDown);
}
return new Clause<>(0, 0L);
}
use of com.skelril.nitro.Clause in project Skree by Skelril.
the class RedFeather method getHighestPoweredFeather.
public Optional<Clause<Integer, Clause<ItemStack, Clause<Integer, Long>>>> getHighestPoweredFeather(EntityPlayer player) {
net.minecraft.item.ItemStack[] itemStacks = player.inventory.mainInventory;
int index = -1;
ItemStack stack = null;
Clause<Integer, Long> details = new Clause<>(0, 0L);
for (int i = 0; i < itemStacks.length; ++i) {
ItemStack curStack = tf(itemStacks[i]);
Clause<Integer, Long> powerCooldown = getFeatherPower(curStack);
if (powerCooldown.getValue() > System.currentTimeMillis()) {
return Optional.empty();
}
if (powerCooldown.getKey() > details.getKey()) {
index = i;
details = powerCooldown;
stack = curStack;
}
}
return index != -1 ? Optional.of(new Clause<>(index, new Clause<>(stack, details))) : Optional.empty();
}
use of com.skelril.nitro.Clause in project Skree by Skelril.
the class TempleOfFateInstance method add.
@Override
public Clause<Player, ZoneStatus> add(Player player) {
player.setLocation(startingPoint);
Optional<PlayerStateService> optService = Sponge.getServiceManager().provide(PlayerStateService.class);
if (optService.isPresent()) {
PlayerStateService service = optService.get();
try {
service.storeInventory(player);
service.releaseInventory(player);
player.offer(Keys.POTION_EFFECTS, new ArrayList<>());
player.getInventory().clear();
} catch (InventoryStorageStateException e) {
e.printStackTrace();
return new Clause<>(player, ZoneStatus.ERROR);
}
}
participants.add(player);
return new Clause<>(player, ZoneStatus.ADDED);
}
use of com.skelril.nitro.Clause in project Skree by Skelril.
the class LegacyZoneBase method remove.
@Override
public Clause<Player, ZoneStatus> remove(Player player) {
RespawnService respawnService = Sponge.getServiceManager().provideUnchecked(RespawnService.class);
Location<World> newLocation = respawnService.pop(player).orElse(respawnService.getDefault(player));
player.setLocation(newLocation);
return new Clause<>(player, ZoneStatus.REMOVED);
}
use of com.skelril.nitro.Clause in project Skree by Skelril.
the class CacheBasedAllocator method regionFor.
@Override
public <T> void regionFor(String managerName, Function<Clause<ZoneRegion, ZoneRegion.State>, T> initMapper, Consumer<T> callBack) {
Optional<ZoneBoundingBox> optBoundingBox = pool.getIfAvailable(managerName);
Vector3i origin = new Vector3i(lastEnd.getX(), 0, lastEnd.getY());
if (optBoundingBox.isPresent()) {
origin = optBoundingBox.get().getOrigin();
}
ZoneWorldBoundingBox incompleteRegion = decorator.pasteAt(worldResolver, origin, managerName, box -> initMapper.apply(new Clause<>(new ZoneRegion(this, box), ZoneRegion.State.NEW_LOADING)), callBack::accept);
if (!optBoundingBox.isPresent()) {
pool.claimNew(managerName, incompleteRegion);
Vector3i lastMax = incompleteRegion.getMaximumPoint();
lastEnd = new Vector2i(lastMax.getX() + 1, lastMax.getZ() + 1);
}
}
Aggregations