mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 07:06:45 +01:00
Added extra settings for Call of the Wild
* Requested in issue #910 * Adds a setting to configure the range check * Adds a setting to summon multiple pets with one summon
This commit is contained in:
parent
6d4a2feaae
commit
df2defe969
@ -10,6 +10,7 @@ Key:
|
|||||||
Version 1.4.07-dev
|
Version 1.4.07-dev
|
||||||
+ Added snow to excavation
|
+ Added snow to excavation
|
||||||
+ Added new experience curve option. Cumulative curve, calculates experience needed for next level using power level.
|
+ Added new experience curve option. Cumulative curve, calculates experience needed for next level using power level.
|
||||||
|
+ Added extra settings to config.yml for Call of the Wild (Taming)
|
||||||
= Fixed bug with Skull Splitter not finding the locale string
|
= Fixed bug with Skull Splitter not finding the locale string
|
||||||
= Fixed issue where locale strings could cause the scoreboard header to be longer than 16 characters.
|
= Fixed issue where locale strings could cause the scoreboard header to be longer than 16 characters.
|
||||||
= Fixed a bug with Beast Lore when the entity had no owner but was tamed.
|
= Fixed a bug with Beast Lore when the entity had no owner but was tamed.
|
||||||
|
@ -240,6 +240,19 @@ public class Config extends AutoUpdateConfigLoader {
|
|||||||
public int getTamingXPOcelot() { return config.getInt("Experience.Taming.Animal_Taming.Ocelot", 500); }
|
public int getTamingXPOcelot() { return config.getInt("Experience.Taming.Animal_Taming.Ocelot", 500); }
|
||||||
public int getTamingCOTWWolfCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); }
|
public int getTamingCOTWWolfCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Bones_Required", 10); }
|
||||||
public int getTamingCOTWOcelotCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Fish_Required", 10); }
|
public int getTamingCOTWOcelotCost() { return config.getInt("Skills.Taming.Call_Of_The_Wild.Fish_Required", 10); }
|
||||||
|
public double getTamingCOTWRange() { return config.getDouble("Skills.Taming.Call_Of_The_Wild.Range", 40); }
|
||||||
|
public int getTamingCOTWAmount(EntityType type) {
|
||||||
|
switch (type) {
|
||||||
|
case OCELOT:
|
||||||
|
return config.getInt("Skills.Taming.Call_Of_The_Wild.Ocelot_Amount", 1);
|
||||||
|
|
||||||
|
case WOLF:
|
||||||
|
return config.getInt("Skills.Taming.Call_Of_The_Wild.Wolf_Amount", 1);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Woodcutting */
|
/* Woodcutting */
|
||||||
public int getWoodcuttingXPOak() { return config.getInt("Experience.Woodcutting.Oak", 70); }
|
public int getWoodcuttingXPOak() { return config.getInt("Experience.Woodcutting.Oak", 70); }
|
||||||
|
@ -178,29 +178,39 @@ public class TamingManager extends SkillManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Entity entity : player.getNearbyEntities(40, 40, 40)) {
|
double range = Config.getInstance().getTamingCOTWRange();
|
||||||
if (entity.getType() == type) {
|
if (range > 0) {
|
||||||
player.sendMessage(Taming.getCallOfTheWildFailureMessage(type));
|
for (Entity entity : player.getNearbyEntities(range, range, range)) {
|
||||||
return;
|
if (entity.getType() == type) {
|
||||||
|
player.sendMessage(Taming.getCallOfTheWildFailureMessage(type));
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LivingEntity entity = (LivingEntity) player.getWorld().spawnEntity(player.getLocation(), type);
|
int amount = Config.getInstance().getTamingCOTWAmount(type);
|
||||||
|
if (amount <= 0) {
|
||||||
entity.setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
|
amount = 1;
|
||||||
((Tameable) entity).setOwner(player);
|
|
||||||
|
|
||||||
if (type == EntityType.OCELOT) {
|
|
||||||
((Ocelot) entity).setCatType(Ocelot.Type.getType(1 + Misc.getRandom().nextInt(3)));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
entity.setMaxHealth(20);
|
|
||||||
entity.setHealth(entity.getMaxHealth());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Permissions.renamePets(player)) {
|
for (int i = 0; i < amount; i++) {
|
||||||
entity.setCustomName(LocaleLoader.getString("Taming.Summon.Name.Format", player.getName(), StringUtils.getPrettyEntityTypeString(entity.getType())));
|
LivingEntity entity = (LivingEntity) player.getWorld().spawnEntity(player.getLocation(), type);
|
||||||
entity.setCustomNameVisible(true);
|
|
||||||
|
entity.setMetadata(mcMMO.entityMetadataKey, mcMMO.metadataValue);
|
||||||
|
((Tameable) entity).setOwner(player);
|
||||||
|
|
||||||
|
if (type == EntityType.OCELOT) {
|
||||||
|
((Ocelot) entity).setCatType(Ocelot.Type.getType(1 + Misc.getRandom().nextInt(3)));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
entity.setMaxHealth(20);
|
||||||
|
entity.setHealth(entity.getMaxHealth());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Permissions.renamePets(player)) {
|
||||||
|
entity.setCustomName(LocaleLoader.getString("Taming.Summon.Name.Format", player.getName(), StringUtils.getPrettyEntityTypeString(entity.getType())));
|
||||||
|
entity.setCustomNameVisible(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
player.setItemInHand(new ItemStack(heldItem.getType(), heldItemAmount - summonAmount));
|
player.setItemInHand(new ItemStack(heldItem.getType(), heldItemAmount - summonAmount));
|
||||||
|
@ -221,6 +221,12 @@ Skills:
|
|||||||
Call_Of_The_Wild:
|
Call_Of_The_Wild:
|
||||||
Bones_Required: 10
|
Bones_Required: 10
|
||||||
Fish_Required: 10
|
Fish_Required: 10
|
||||||
|
|
||||||
|
# Range to check for nearby pets when using Call Of The Wild, 0 will disable the check
|
||||||
|
Range: 40
|
||||||
|
# Amount of pets to summon when using Call Of The Wild
|
||||||
|
Wolf_Amount: 1
|
||||||
|
Ocelot_Amount: 1
|
||||||
Unarmed:
|
Unarmed:
|
||||||
Enabled_For_PVP: true
|
Enabled_For_PVP: true
|
||||||
Enabled_For_PVE: true
|
Enabled_For_PVE: true
|
||||||
|
Loading…
Reference in New Issue
Block a user