Skip to content

Commit

Permalink
removed issue with infinite Earthday arrows and infinite Fishbone arrows
Browse files Browse the repository at this point in the history
  • Loading branch information
BuildTools committed Jan 7, 2017
1 parent 97320a2 commit 725d439
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 46 deletions.
2 changes: 1 addition & 1 deletion install.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash
mvn clean install
rm -rf $MCS/plugins/Yearmarked
#rm -rf $MCS/plugins/Yearmarked
cp target/*dependencies.jar $MCS/plugins/Yearmarked.jar
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.blocktyper</groupId>
<artifactId>yearmarked</artifactId>
<version>1.4.0</version>
<version>1.4.1</version>
<name>Yearmarked</name>

<properties>
Expand Down Expand Up @@ -49,7 +49,7 @@
<dependency>
<groupId>com.blocktyper</groupId>
<artifactId>blocktyperplugin</artifactId>
<version>1.0.9</version>
<version>1.0.10</version>
<scope>compile</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.ChestedHorse;
import org.bukkit.entity.Entity;
Expand Down Expand Up @@ -208,7 +209,7 @@ public void setMetadata(Entity player, String key, Object value) {
*
* @param event
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false)
public void playerHitsAnimalWithEarthdayCrop(EntityDamageByEntityEvent event) {

if (!worldEnabled(event.getDamager().getWorld().getName(), "earth-day-pot-pie")) {
Expand Down Expand Up @@ -389,21 +390,20 @@ private void replaceEntityWithEntityArrow(Entity entity, ItemStack itemInHand, P
if (((Tameable) entity).isTamed())
trueOrFalseMeta = trueOrFalseMeta + TAMED;
}
boolean hasChest = entity instanceof ChestedHorse && ((ChestedHorse)entity).isCarryingChest();
if(hasChest){

boolean hasChest = entity instanceof ChestedHorse && ((ChestedHorse) entity).isCarryingChest();
if (hasChest) {
trueOrFalseMeta = trueOrFalseMeta + CHESTED;
}
if(!trueOrFalseMeta.isEmpty())
if (!trueOrFalseMeta.isEmpty())
lore.add(trueOrFalseMeta);

meta.setLore(lore);
arrow.setItemMeta(meta);

// drop the arrow
entity.getWorld().dropItem(entity.getLocation(), arrow);


if (entity instanceof InventoryHolder) {
hasChest = true;
InventoryHolder inventoryHolder = (InventoryHolder) entity;
Expand Down Expand Up @@ -481,17 +481,17 @@ public void onEntityArrowHit(ProjectileHitEvent event) {
boolean isTamed = event.getEntity().hasMetadata(TAMED)
? event.getEntity().getMetadata(TAMED).get(0).asBoolean() : false;
if (isTamed) {
if (spawnedEntity instanceof Ageable){
if (spawnedEntity instanceof Ageable) {
((Ageable) spawnedEntity).setAdult();
}
((Tameable) spawnedEntity).setTamed(true);
}
}

if (spawnedEntity instanceof ChestedHorse) {
boolean isChested = event.getEntity().hasMetadata(CHESTED)
? event.getEntity().getMetadata(CHESTED).get(0).asBoolean() : false;

if (isChested) {
((ChestedHorse) spawnedEntity).setAdult();
((ChestedHorse) spawnedEntity).setCarryingChest(true);
Expand All @@ -504,8 +504,8 @@ public void onEntityArrowHit(ProjectileHitEvent event) {
}

@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false)
public void opPlayerShootEntityArrow(EntityShootBowEvent event) {

public void onPlayerShootEntityArrow(EntityShootBowEvent event) {
if (!(event.getEntity() instanceof Player)) {
return;
}
Expand All @@ -516,45 +516,52 @@ public void opPlayerShootEntityArrow(EntityShootBowEvent event) {

if (firstArrowStack == null || firstArrowStack.getItemMeta() == null
|| firstArrowStack.getItemMeta().getDisplayName() == null) {
plugin.debugInfo("opPlayerShootEntityArrow - not a named arrow");
plugin.debugInfo("onPlayerShootEntityArrow - not a named arrow");
return;
}

if (!firstArrowStack.getItemMeta().getDisplayName()
.startsWith(plugin.getConfig().getString(DayOfWeekEnum.EARTHDAY.getDisplayKey()))) {
plugin.debugInfo("opPlayerShootEntityArrow - not an earthday arrow");
plugin.debugInfo("onPlayerShootEntityArrow - not an earthday arrow");
return;
}

ItemStack bow = plugin.getPlayerHelper().getItemInHand(player);

if (plugin.getPlayerHelper().itemHasEnchantment(bow, Enchantment.ARROW_INFINITE)) {
plugin.debugInfo("Infinite enchantment not approved.");
} else {
event.getProjectile().setCustomName(firstArrowStack.getItemMeta().getDisplayName());

if (firstArrowStack.getItemMeta().getLore() != null) {
Optional<String> nameOptional = firstArrowStack.getItemMeta().getLore().stream()
.filter(l -> l.startsWith(NAMED)).findFirst();
if (nameOptional != null && nameOptional.isPresent() && nameOptional.get() != null) {
String name = nameOptional.get();
plugin.debugInfo("Naming arrow: " + name);
int startIndex = name.indexOf(NAMED) + NAMED.length();
plugin.debugInfo("startIndex: " + startIndex);
name = name.substring(startIndex);
plugin.debugInfo("Named arrow: " + name);
MetadataValue mdv = new FixedMetadataValue(plugin, name);
event.getProjectile().setMetadata(NAMED, mdv);
}

event.getProjectile().setCustomName(firstArrowStack.getItemMeta().getDisplayName());

if(firstArrowStack.getItemMeta().getLore() != null){
Optional<String> nameOptional = firstArrowStack.getItemMeta().getLore().stream().filter(l -> l.startsWith(NAMED)).findFirst();
if (nameOptional != null && nameOptional.isPresent() && nameOptional.get() != null) {
String name = nameOptional.get();
plugin.debugInfo("Naming arrow: " + name);
int startIndex = name.indexOf(NAMED) + NAMED.length();
plugin.debugInfo("startIndex: " + startIndex);
name = name.substring(startIndex);
plugin.debugInfo("Named arrow: " + name);
MetadataValue mdv = new FixedMetadataValue(plugin, name);
event.getProjectile().setMetadata(NAMED, mdv);
}
if (firstArrowStack.getItemMeta().getLore().stream()
.anyMatch(l -> !l.startsWith(NAMED) && l.contains(TAMED))) {
MetadataValue mdv = new FixedMetadataValue(plugin, true);
event.getProjectile().setMetadata(TAMED, mdv);
}

if (firstArrowStack.getItemMeta().getLore().stream().anyMatch(l -> !l.startsWith(NAMED) && l.contains(TAMED))) {
MetadataValue mdv = new FixedMetadataValue(plugin, true);
event.getProjectile().setMetadata(TAMED, mdv);
}

if (firstArrowStack.getItemMeta().getLore().stream().anyMatch(l -> !l.startsWith(NAMED) && l.contains(CHESTED))) {
MetadataValue mdv = new FixedMetadataValue(plugin, true);
event.getProjectile().setMetadata(CHESTED, mdv);
if (firstArrowStack.getItemMeta().getLore().stream()
.anyMatch(l -> !l.startsWith(NAMED) && l.contains(CHESTED))) {
MetadataValue mdv = new FixedMetadataValue(plugin, true);
event.getProjectile().setMetadata(CHESTED, mdv);
}
}
}


}

}

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
Expand Down Expand Up @@ -45,11 +46,17 @@ public void entityShootBow(EntityShootBowEvent event) {
plugin.debugInfo("arrows have no display name");
return;
}

// name it whatever the item stack is named
// we will worry about if it is configured in the
// EntityDamageByEntityEvent handler playerKillSuperCreeper
event.getProjectile().setCustomName(firstArrowStack.getItemMeta().getDisplayName());

ItemStack bow = plugin.getPlayerHelper().getItemInHand(player);
if(plugin.getPlayerHelper().itemHasEnchantment(bow, Enchantment.ARROW_INFINITE)){
plugin.debugInfo("Infinite enchantment not approved.");
}else{
// name it whatever the item stack is named
// we will worry about if it is configured in the
// EntityDamageByEntityEvent handler playerKillSuperCreeper
event.getProjectile().setCustomName(firstArrowStack.getItemMeta().getDisplayName());
}

} else {
plugin.debugInfo("no arrows found");
}
Expand Down

0 comments on commit 725d439

Please sign in to comment.