Skip to content

Commit b866401

Browse files
committed
Added default PvP flag.
1 parent 9f6d958 commit b866401

File tree

5 files changed

+101
-5
lines changed

5 files changed

+101
-5
lines changed

src/com/jcdesimp/landlord/Landlord.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ public void onEnable() {
149149
if(getConfig().getBoolean("enabled-flags.openDoor")) {
150150
flagManager.registerFlag(new OpenDoor());
151151
}
152+
if(getConfig().getBoolean("enabled-flags.pvp")) {
153+
flagManager.registerFlag(new PVP());
154+
}
152155
//flagManager.registerFlag(new OpenDoorDUPE1());
153156
//flagManager.registerFlag(new OpenDoorDUPE2());
154157
//flagManager.registerFlag(new OpenDoorDUPE3());

src/com/jcdesimp/landlord/landFlags/HarmAnimals.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public HarmAnimals() {
7373
*/
7474

7575
@EventHandler(priority = EventPriority.HIGH)
76-
public void animalKill(EntityDamageByEntityEvent event){
76+
public void animalDamage(EntityDamageByEntityEvent event){
7777
String[] safeAnimals = {"OCELOT","WOLF","HORSE","COW","PIG","MUSHROOM_COW","SHEEP","CHICKEN"};
7878
org.bukkit.entity.Entity victim = event.getEntity();
7979
if(!Arrays.asList(safeAnimals).contains(victim.getType().toString())){
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package com.jcdesimp.landlord.landFlags;
2+
3+
import com.jcdesimp.landlord.landManagement.Landflag;
4+
import com.jcdesimp.landlord.persistantData.OwnedLand;
5+
import org.bukkit.ChatColor;
6+
import org.bukkit.Material;
7+
import org.bukkit.entity.Player;
8+
import org.bukkit.entity.Projectile;
9+
import org.bukkit.event.EventHandler;
10+
import org.bukkit.event.EventPriority;
11+
import org.bukkit.event.entity.EntityDamageByEntityEvent;
12+
import org.bukkit.inventory.ItemStack;
13+
14+
import java.util.Arrays;
15+
16+
/**
17+
* File created by jcdesimp on 5/24/14.
18+
*/
19+
20+
/*
21+
*******************************************************
22+
* All flags need to extend the abstract Landflag class
23+
*******************************************************
24+
*/
25+
public class PVP extends Landflag {
26+
27+
public PVP() {
28+
super(
29+
"PVP", //Display name (will be displayed to players)
30+
"Gives permission to attack|" +
31+
"players on this land|" ,
32+
new ItemStack(Material.IRON_SWORD), //Itemstack (represented in and manager)
33+
"Allowed PvP", //Text shown in manager for granted permission
34+
"can hurt other players.", //Description in manager for granted permission (ex: Friendly players <desc>)
35+
"Denied PvP", //Text shown in manager for denied permission
36+
"cannot hurt other players." //Desciption in manager for denied permission (ex: Regular players <desc>)
37+
);
38+
}
39+
40+
41+
@EventHandler(priority = EventPriority.HIGH)
42+
public void playerDamage(EntityDamageByEntityEvent event){
43+
//String[] safeAnimals = {"OCELOT","WOLF","HORSE","COW","PIG","MUSHROOM_COW","SHEEP","CHICKEN"};
44+
org.bukkit.entity.Entity victim = event.getEntity();
45+
if(!(victim instanceof Player)){
46+
return;
47+
}
48+
49+
50+
org.bukkit.entity.Entity attacker = event.getDamager();
51+
52+
if(attacker.getType().toString().equals("PLAYER")){
53+
Player p = (Player)attacker;
54+
OwnedLand land = OwnedLand.getApplicableLand(victim.getLocation());
55+
if(land==null){
56+
return;
57+
}
58+
if(!land.hasPermTo(p, this)){
59+
60+
p.sendMessage(ChatColor.RED+"You cannot harm other players on this land.");
61+
62+
event.setCancelled(true);
63+
64+
}
65+
66+
} else if(attacker.getType().toString().equalsIgnoreCase("Arrow") || attacker.getType().toString().equalsIgnoreCase("SPLASH_POTION")){
67+
Projectile a = (Projectile)attacker;
68+
Player p;
69+
if(a.getShooter() instanceof Player){
70+
OwnedLand land = OwnedLand.getApplicableLand(victim.getLocation());
71+
p = (Player)a.getShooter();
72+
if(land==null){
73+
return;
74+
}
75+
//System.out.println(a.getType());
76+
if(!land.hasPermTo(p, this)){
77+
if(a.getType().toString().equals("ARROW")) {
78+
p.sendMessage(ChatColor.RED + "You cannot harm other players on this land.");
79+
}
80+
a.remove();
81+
event.setCancelled(true);
82+
}
83+
}
84+
85+
86+
}
87+
}
88+
89+
90+
91+
}

src/com/jcdesimp/landlord/landMap/LandMap.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private Scoreboard displayMap(Player p){
8989

9090

9191
//THIS BETTER NOT STAY!!!!!!
92-
/*class myOfflinePlayer implements OfflinePlayer {
92+
class myOfflinePlayer implements OfflinePlayer {
9393
String name;
9494

9595
public myOfflinePlayer(String name){
@@ -165,10 +165,10 @@ public boolean isOp(){
165165
return false;
166166
}
167167

168-
}*/
168+
}
169169

170-
OfflinePlayer ofp = Bukkit.getOfflinePlayer(mapData[i].substring(5,17));
171-
//OfflinePlayer ofp = new myOfflinePlayer(mapData[i].substring(5,17));
170+
//OfflinePlayer ofp = Bukkit.getOfflinePlayer(mapData[i].substring(5,17));
171+
OfflinePlayer ofp = new myOfflinePlayer(mapData[i].substring(5,17));
172172
//String ofp = mapData[i].substring(5,17);
173173

174174

src/config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
# tntDamage: true
4545
# useContainers: true
4646
# useRedstone: true
47+
# pvp: true
4748
# #### CONFIGURE OPTIONS BELOW ####
4849

4950
options:
@@ -72,6 +73,7 @@ enabled-flags:
7273
tntDamage: true
7374
useContainers: true
7475
useRedstone: true
76+
pvp: true
7577

7678

7779

0 commit comments

Comments
 (0)