debug command tells arrow information
parent
98b0abf421
commit
e8f19d8b42
|
@ -3,8 +3,8 @@ version: 0.0.1
|
||||||
author: Soper Aylamo
|
author: Soper Aylamo
|
||||||
main: xyz.soper.arty.Artillery
|
main: xyz.soper.arty.Artillery
|
||||||
api-version: 1.16
|
api-version: 1.16
|
||||||
website: https://home.soper.xyz/projects/Artillery
|
website: https://home.soper.xyz/projects/minecraft/Artillery
|
||||||
commands:
|
commands:
|
||||||
test:
|
arty-debug:
|
||||||
description: swag test
|
description: Artillery debug command
|
||||||
usage: sex
|
usage: /<command>
|
|
@ -5,43 +5,58 @@ import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.RecipeChoice;
|
||||||
import org.bukkit.inventory.ShapedRecipe;
|
import org.bukkit.inventory.ShapedRecipe;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import xyz.soper.arty.debug.DebugCommand;
|
||||||
import javax.naming.Name;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Artillery extends JavaPlugin {
|
public class Artillery extends JavaPlugin {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable(){
|
public void onEnable(){
|
||||||
|
|
||||||
|
//START OF BASE MORTAR RECIPE
|
||||||
ItemStack baseMortar = new ItemStack(Material.BREWING_STAND);
|
ItemStack baseMortar = new ItemStack(Material.BREWING_STAND);
|
||||||
ItemMeta mortarMeta = baseMortar.getItemMeta();
|
ItemMeta baseMortarMeta = baseMortar.getItemMeta();
|
||||||
|
|
||||||
List<String> mortarLore = new ArrayList<String>();
|
assert baseMortarMeta != null;
|
||||||
mortarLore.add(ChatColor.GRAY + "" + ChatColor.UNDERLINE + "Mortal Level I");
|
baseMortarMeta.setDisplayName(ChatColor.GRAY + "Basic Mortar");
|
||||||
mortarLore.add("Max Initial Velocity: ");
|
baseMortar.setItemMeta(baseMortarMeta);
|
||||||
mortarLore.add("Dispersion: ");
|
|
||||||
mortarLore.add("Chance of Failure: ");
|
|
||||||
|
|
||||||
assert mortarMeta != null;
|
NamespacedKey basicMortarKey = new NamespacedKey(this, "basic_mortar");
|
||||||
mortarMeta.setDisplayName(ChatColor.GRAY + "Mortar");
|
ShapedRecipe baseMortarRecipe = new ShapedRecipe(basicMortarKey, baseMortar);
|
||||||
mortarMeta.setLore(mortarLore);
|
|
||||||
baseMortar.setItemMeta(mortarMeta);
|
|
||||||
|
|
||||||
NamespacedKey mortarKey = new NamespacedKey(this, "mortar");
|
|
||||||
ShapedRecipe baseMortarRecipe = new ShapedRecipe(mortarKey, baseMortar);
|
|
||||||
baseMortarRecipe.shape("S S", "SPS", "SFS");
|
baseMortarRecipe.shape("S S", "SPS", "SFS");
|
||||||
baseMortarRecipe.setIngredient('S', Material.SMOOTH_STONE);
|
baseMortarRecipe.setIngredient('S', Material.SMOOTH_STONE);
|
||||||
baseMortarRecipe.setIngredient('P', Material.STONE_PRESSURE_PLATE);
|
baseMortarRecipe.setIngredient('P', Material.STONE_PRESSURE_PLATE);
|
||||||
baseMortarRecipe.setIngredient('F', Material.FLINT);
|
baseMortarRecipe.setIngredient('F', Material.FLINT);
|
||||||
|
|
||||||
Bukkit.addRecipe(baseMortarRecipe);
|
Bukkit.addRecipe(baseMortarRecipe);
|
||||||
|
//END OF BASE MORTAR RECIPE
|
||||||
|
|
||||||
//getServer().getPluginManager().registerEvents();
|
//START OF NORMAL MORTAR RECIPE
|
||||||
|
ItemStack mortar = new ItemStack(Material.BREWING_STAND);
|
||||||
|
ItemMeta mortarMeta = mortar.getItemMeta();
|
||||||
|
|
||||||
|
assert mortarMeta != null;
|
||||||
|
mortarMeta.setDisplayName(ChatColor.GRAY + "Mortar");
|
||||||
|
mortar.setItemMeta(mortarMeta);
|
||||||
|
|
||||||
|
NamespacedKey mortarKey = new NamespacedKey(this, "mortar");
|
||||||
|
ShapedRecipe mortarRecipe = new ShapedRecipe(mortarKey, mortar);
|
||||||
|
mortarRecipe.shape("IRI", "IMI", "IPI");
|
||||||
|
mortarRecipe.setIngredient('R', Material.REDSTONE);
|
||||||
|
mortarRecipe.setIngredient('I', Material.IRON_INGOT);
|
||||||
|
mortarRecipe.setIngredient('P', Material.HEAVY_WEIGHTED_PRESSURE_PLATE);
|
||||||
|
mortarRecipe.setIngredient('M', new RecipeChoice.ExactChoice(baseMortar));
|
||||||
|
|
||||||
|
Bukkit.addRecipe(mortarRecipe);
|
||||||
|
//END OF NORMAL MORTAR RECIPE
|
||||||
|
|
||||||
|
this.getCommand("arty-debug").setExecutor(new DebugCommand());
|
||||||
|
|
||||||
|
//DEBUGGING:
|
||||||
|
getServer().getPluginManager().registerEvents(new DebugCommand(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,2 +1,48 @@
|
||||||
package xyz.soper.arty.debug;public class DebugCommand {
|
package xyz.soper.arty.debug;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Arrow;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||||
|
|
||||||
|
public class DebugCommand implements CommandExecutor, Listener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
|
if(sender instanceof Player){
|
||||||
|
Player player = (Player) sender;
|
||||||
|
if(args[0].equalsIgnoreCase("fire")){
|
||||||
|
try{
|
||||||
|
double multiplier = (double)Integer.parseInt(args[1])/10;
|
||||||
|
Arrow arrow = player.getWorld().spawn(player.getLocation().add(0,1,0), Arrow.class);
|
||||||
|
arrow.setShooter(player);
|
||||||
|
arrow.setVelocity(player.getLocation().getDirection().multiply(multiplier));
|
||||||
|
player.sendMessage(ChatColor.GOLD + "You just fired an arrow with a velocity " + multiplier);
|
||||||
|
return true;
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
player.sendMessage(ChatColor.RED + "Incorrect usage. A number was expected.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else player.sendMessage(ChatColor.RED + "Incorrect usage. This command does not exist.");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onArrowHit(ProjectileHitEvent event){
|
||||||
|
if(event.getEntity().getShooter() instanceof Player && event.getEntity() instanceof Arrow){
|
||||||
|
int x = event.getHitBlock().getLocation().getBlockX();
|
||||||
|
int y = event.getHitBlock().getLocation().getBlockY();
|
||||||
|
int z = event.getHitBlock().getLocation().getBlockZ();
|
||||||
|
|
||||||
|
((Player) event.getEntity().getShooter()).sendMessage(ChatColor.GOLD + "Arrow you have shot landed at " + x + ", " + y + ", " + z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,15 @@
|
||||||
package xyz.soper.arty.Events.Listeners;
|
package xyz.soper.arty.event.Listener;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
|
|
||||||
|
public class MortarInteract implements Listener {
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onClick(PlayerInteractEvent event){
|
||||||
|
if(event.getHand() == EquipmentSlot.OFF_HAND) return;
|
||||||
|
}
|
||||||
|
|
||||||
public class MortarInteract {
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,17 @@ package xyz.soper.arty.item;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
|
||||||
public class Mortar {
|
public class BaseMortar {
|
||||||
|
|
||||||
Location location;
|
Location location;
|
||||||
|
|
||||||
Mortar(Block mortar){
|
int failMultiplier = 25;
|
||||||
|
int maxCaliber = 125;
|
||||||
|
int dispersion = 20;
|
||||||
|
int range = 25;
|
||||||
|
boolean incendiaryCapable = false;
|
||||||
|
|
||||||
|
BaseMortar(Block mortar){
|
||||||
location = mortar.getLocation();
|
location = mortar.getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package xyz.soper.arty.Items;
|
package xyz.soper.arty.item;
|
||||||
|
|
||||||
public class MortarTuner {
|
public class MortarTuner {
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,2 +1,16 @@
|
||||||
package xyz.soper.arty.item;public class NormalMortar {
|
package xyz.soper.arty.item;
|
||||||
|
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
|
||||||
|
public class NormalMortar extends BaseMortar {
|
||||||
|
|
||||||
|
int failMultiplier = 3;
|
||||||
|
int maxCaliber = 125;
|
||||||
|
int dispersion = 10;
|
||||||
|
int range = 50;
|
||||||
|
boolean incendiaryCapable = false;
|
||||||
|
|
||||||
|
NormalMortar(Block mortar) {
|
||||||
|
super(mortar);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package xyz.soper.arty.Blocks;
|
package xyz.soper.arty.util;
|
||||||
|
|
||||||
public class MortarHandler {
|
public class MortarHandler {
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue