use of org.spongepowered.api.entity.living.player.Player in project Skree by Skelril.
the class CursedMineListener method onPlayerQuit.
@Listener
public void onPlayerQuit(ClientConnectionEvent.Disconnect event) {
Player player = event.getTargetEntity();
Optional<CursedMineInstance> optInst = manager.getApplicableZone(player);
if (optInst.isPresent() && optInst.get().hasRecordForPlayer(player)) {
manager.getHitList().addPlayer(player);
}
}
use of org.spongepowered.api.entity.living.player.Player in project Skree by Skelril.
the class WildernessWorldWrapper method getMetaInformation.
public Set<Map.Entry<Player, WildernessPlayerMeta>> getMetaInformation() {
Set<Map.Entry<Player, WildernessPlayerMeta>> resultSets = new HashSet<>();
for (Map.Entry<UUID, WildernessPlayerMeta> entry : playerMetaMap.entrySet()) {
Optional<Player> optPlayer = Sponge.getServer().getPlayer(entry.getKey());
if (!optPlayer.isPresent()) {
continue;
}
Player player = optPlayer.get();
if (!player.isOnline()) {
continue;
}
resultSets.add(new AbstractMap.SimpleEntry<>(player, entry.getValue()));
}
return resultSets;
}
use of org.spongepowered.api.entity.living.player.Player in project Skree by Skelril.
the class WildernessWorldWrapper method onEntityDeath.
@Listener
public void onEntityDeath(DestructEntityEvent.Death event) {
Entity entity = event.getTargetEntity();
Location<World> loc = entity.getLocation();
Optional<Integer> optLevel = getLevel(loc);
if (!optLevel.isPresent()) {
return;
}
int level = optLevel.get();
if (entity instanceof Monster) {
DropTable dropTable;
if (entity.getLocation().getExtent().getDimension() == DimensionTypes.NETHER || entity instanceof Wither) {
dropTable = netherMobDropTable;
} else {
dropTable = commonDropTable;
}
Optional<EntityDamageSource> optDamageSource = event.getCause().first(EntityDamageSource.class);
if (optDamageSource.isPresent()) {
Entity srcEntity;
if (optDamageSource.get() instanceof IndirectEntityDamageSource) {
srcEntity = ((IndirectEntityDamageSource) optDamageSource.get()).getIndirectSource();
} else {
srcEntity = optDamageSource.get().getSource();
}
int dropTier = level;
if (srcEntity instanceof Player) {
Optional<ItemStack> optHeldItem = ((Player) srcEntity).getItemInHand(HandTypes.MAIN_HAND);
if (optHeldItem.isPresent()) {
Optional<ItemEnchantment> optLooting = EnchantmentUtil.getHighestEnchantment(optHeldItem.get(), Enchantments.LOOTING);
if (optLooting.isPresent()) {
dropTier += optLooting.get().getLevel();
}
}
dropTier = getDropTier(dropTier);
Collection<ItemStack> drops = dropTable.getDrops((entity instanceof Boss ? 5 : 1) * dropTier, getDropMod(dropTier, ((Monster) entity).getHealthData().maxHealth().get(), entity.getType()));
int times = 1;
Optional<ModifierService> optService = Sponge.getServiceManager().provide(ModifierService.class);
if (optService.isPresent()) {
ModifierService service = optService.get();
if (service.isActive(Modifiers.DOUBLE_WILD_DROPS)) {
times *= 2;
}
}
ItemDropper dropper = new ItemDropper(loc);
for (int i = 0; i < times; ++i) {
dropper.dropStacks(drops, SpawnTypes.DROPPED_ITEM);
}
}
}
if (entity.getType() == EntityTypes.ENDERMITE && Probability.getChance(20)) {
entity.getWorld().triggerExplosion(Explosion.builder().location(entity.getLocation()).shouldBreakBlocks(true).radius(4F).build(), Cause.source(SkreePlugin.container()).build());
}
}
GRAVE_STONE.createGraveFromDeath(event);
}
use of org.spongepowered.api.entity.living.player.Player in project Skree by Skelril.
the class ZonePvPListener method createFor.
private PlayerCombatParser createFor(Cancellable event) {
return new PlayerCombatParser() {
@Override
public void processPvP(Player attacker, Player defender) {
Optional<PvPService> optService = Sponge.getServiceManager().provide(PvPService.class);
if (optService.isPresent()) {
PvPService service = optService.get();
if (service.getPvPState(attacker).allowByDefault() && service.getPvPState(defender).allowByDefault()) {
return;
}
}
attacker.sendMessage(Text.of(TextColors.RED, "PvP is opt-in only in this area!"));
event.setCancelled(true);
}
};
}
use of org.spongepowered.api.entity.living.player.Player in project Skree by Skelril.
the class RespawnServiceImpl method onPlayerRespawn.
@Listener
public void onPlayerRespawn(RespawnPlayerEvent event) {
Player player = event.getTargetEntity();
event.setToTransform(new Transform<>(pop(player).orElse(getDefault(player))));
}
Aggregations