Skip to content

Commit

Permalink
shootlimit
Browse files Browse the repository at this point in the history
  • Loading branch information
matsu1213 committed Jun 22, 2024
1 parent 76ab870 commit 68cdcf6
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,10 @@ public void onShoot(WeaponShootEvent e){
f.set(pj, new EntitySize((float) data.projectileSizeXZ, (float) data.projectileSizeY, true));
double d0 = data.projectileSizeXZ / 2.0D;
pj.a(new AxisAlignedBB(pj.locX() - d0, pj.locY(), pj.locZ() - d0, pj.locX() + d0, pj.locY() + data.projectileSizeY, pj.locZ() + d0));
e.getPlayer().sendMessage(pj.getBoundingBox().toString());
}catch (Exception ex){
ex.printStackTrace();
}
}
}

@EventHandler
public void onDamage(WeaponDamageEntityEvent e){
if(e.getDamager() instanceof Projectile){
Projectile pj = (Projectile) e.getDamager();
EntityProjectile ep = ((CraftProjectile)pj).getHandle();
e.getPlayer().sendMessage(ep.getBoundingBox().toString());
}
}

}
3 changes: 2 additions & 1 deletion src/main/java/net/azisaba/leoncsaddon/WeaponConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public void init(){

List<String> type = configuration.getStringList(key + ".type");
boolean isMain = configuration.getBoolean(key + ".isMain",true);
List<String> requirements = configuration.getStringList(key + ".requirements");
double damage = configuration.getDouble(key + ".damage",0);
double headshotBonusDamage = configuration.getDouble(key + ".headshotBonusDamage",0);
double criticalBonusDamage = configuration.getDouble(key + ".criticalBonusDamage",0);
Expand All @@ -53,7 +54,7 @@ public void init(){
double projectileSizeXZ = configuration.getDouble(key + ".projectileSize.xz",0);
double projectileSizeY = configuration.getDouble(key + ".projectileSize.y",0);

weaponsMap.put(key,new WeaponConfigData(key, type, isMain, damage, headshotBonusDamage, criticalBonusDamage, guardMult, walkSpeed, canSprint, reduceStartTick, reduceEndTick, reduceDamage, projectileSizeXZ, projectileSizeY));
weaponsMap.put(key,new WeaponConfigData(key, type, isMain, requirements, damage, headshotBonusDamage, criticalBonusDamage, guardMult, walkSpeed, canSprint, reduceStartTick, reduceEndTick, reduceDamage, projectileSizeXZ, projectileSizeY));

});
}
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/net/azisaba/leoncsaddon/WeaponConfigData.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public class WeaponConfigData {
public final String name;
public final List<String> type;
public final boolean isMain;
public final List<String> requirements;
public final double damage;
public final double headshotBonusDamage;
public final double criticalBonusDamage;
Expand All @@ -21,9 +22,10 @@ public class WeaponConfigData {
public final int reduceEndTick;
public final double reduceDamage;

public WeaponConfigData(String name, List<String> type, boolean isMain, double damage, double headshotBonusDamage, double criticalBonusDamage, double guardMult, float walkSpeed, boolean canSprint, int reduceStartTick, int reduceEndTick, double reduceDamage, double projectileSizeXZ, double projectileSizeY){
public WeaponConfigData(String name, List<String> type, boolean isMain, List<String> requirements, double damage, double headshotBonusDamage, double criticalBonusDamage, double guardMult, float walkSpeed, boolean canSprint, int reduceStartTick, int reduceEndTick, double reduceDamage, double projectileSizeXZ, double projectileSizeY){
this.type = type;
this.isMain = isMain;
this.requirements = requirements;
this.name = name;
this.damage = damage;
this.headshotBonusDamage = headshotBonusDamage;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package net.azisaba.leoncsaddon;

import com.shampaggon.crackshot.CSUtility;
import com.shampaggon.crackshot.events.WeaponPreShootEvent;
import com.shampaggon.crackshot.events.WeaponPrepareShootEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;

public class WeaponShootLimitListener implements Listener {

@EventHandler
public void onPreShoot(WeaponPrepareShootEvent e){
WeaponConfigData data = LeonCSAddon.INSTANCE.getWeaponConfig().getWeaponConfigData(e.getWeaponTitle());
if(data != null && !data.isMain){
for(int i = 0; i < 9; i++){
ItemStack item = e.getPlayer().getInventory().getItem(i);
String weaponTitle = new CSUtility().getWeaponTitle(item);
if(weaponTitle != null){
WeaponConfigData otherData = LeonCSAddon.INSTANCE.getWeaponConfig().getWeaponConfigData(weaponTitle);
if(otherData != null && otherData.isMain){
if(!Collections.disjoint(data.requirements, otherData.type)){
e.setCancelled(true);
}
}
}
}
}
}

}

0 comments on commit 68cdcf6

Please sign in to comment.