Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nl.Matthijs.Mattie.Sacrifice;
- import java.util.Random;
- import java.util.logging.Logger;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.Server;
- import org.bukkit.World;
- import org.bukkit.block.Block;
- import org.bukkit.block.BlockFace;
- import org.bukkit.block.Sign;
- import org.bukkit.entity.Player;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.player.PlayerListener;
- import org.bukkit.inventory.ItemStack;
- public class SacrificePlayerListener extends PlayerListener
- {
- private final Sacrifice plugin;
- private final Server server;
- final Logger logger = Logger.getLogger("Minecraft");
- private Material m = Material.IRON_BLOCK;
- private Random r = new Random();
- private final int HATCHID = 0;
- public SacrificePlayerListener(Sacrifice instance)
- {
- this.plugin = instance;
- this.server = plugin.getServer();
- }
- public void setDay(World w, Long time, PlayerInteractEvent event)
- {
- w.setTime(time + 24000L);
- server.broadcastMessage("The gods give you " + ChatColor.RED + "daylight " + ChatColor.WHITE + "as reward for your sacrifice");
- event.setCancelled(true);
- //cancle event so blocks places will be removed again
- return;
- }
- public void setNight(World w, Long time, PlayerInteractEvent event)
- {
- w.setTime(time + 37700L);
- server.broadcastMessage("The gods give you " + ChatColor.RED + "darkness " + ChatColor.WHITE + "as reward for your sacrifice");
- event.setCancelled(true);
- //cancle event so blocks places will be removed again
- return;
- }
- public void setSun(World w, PlayerInteractEvent event)
- {
- w.setStorm(false);
- server.broadcastMessage("The gods give you " + ChatColor.RED + "SUN " + ChatColor.WHITE + "as reward for your sacrifice");
- event.setCancelled(true);
- return;
- }
- public void setRain(World w, PlayerInteractEvent event)
- {
- w.setStorm(true);
- server.broadcastMessage("The gods give you " + ChatColor.RED + "RAIN " + ChatColor.WHITE + "as reward for your sacrifice");
- event.setCancelled(true);
- return;
- }
- public void setSomething(World w, Long time, PlayerInteractEvent event, Sign s)
- {
- if (s.getLine(2).equalsIgnoreCase("night"))
- {
- setNight(w, time, event);
- }
- else if (s.getLine(2).equalsIgnoreCase("sun"))
- {
- setSun(w, event);
- }
- else if (s.getLine(2).equalsIgnoreCase("rain"))
- {
- setRain(w, event);
- }
- else
- // so: day or nothing
- {
- setDay(w, time, event);
- }
- }
- public void noGoodOfferTable(Player p, PlayerInteractEvent event)
- {
- p.sendMessage(ChatColor.RED + "OOPS JE OFFER TAFEL IS NIET GOED! DIT ACCEPTEREN DE GODEN NIET!");
- event.setCancelled(true);
- }
- public void onPlayerInteract(PlayerInteractEvent event)
- {
- if (/* (event.getAction() != Action.LEFT_CLICK_BLOCK) && */(event.getAction() != Action.RIGHT_CLICK_BLOCK))
- {
- return;
- }
- Block b = event.getClickedBlock();
- if (b.getType() == Material.SIGN_POST)
- {
- Sign s = (Sign) b.getState();
- if (b.getType() == Material.SIGN_POST)
- {
- // System.out.println("line0: " + s.getLine(0));
- // System.out.println("line1: " + s.getLine(1));
- // System.out.println("line2: " + s.getLine(2));
- // System.out.println("line3: " + s.getLine(3));
- if (!s.getLine(1).equalsIgnoreCase("[offer]"))
- {
- return;
- }
- // else if (!s.getLine(2).equalsIgnoreCase("day") || !s.getLine(2).equalsIgnoreCase("night"))
- // {
- // return;
- // }
- else
- {
- b = event.getClickedBlock();
- World w = b.getWorld();
- long time = w.getTime();
- time -= time % 24000L;
- Player p = event.getPlayer();
- Block north = b.getRelative(BlockFace.NORTH);
- Block east = b.getRelative(BlockFace.EAST);
- Block south = b.getRelative(BlockFace.SOUTH);
- Block west = b.getRelative(BlockFace.WEST);
- Block down = b.getRelative(BlockFace.DOWN);
- Block up = b.getRelative(BlockFace.UP);
- if (north.getType() == m && east.getType() == m && south.getType() == m && west.getType() == m)//alles NAAST het sign
- {
- if (down.getType() == Material.GOLD_BLOCK)//alles ONDER het sign
- {
- if (up.getType() == Material.TRAP_DOOR) //alles BOVEN het sign
- {
- Block naastHatch = up;
- //kijk of er naast het hatch wel een gold block ERGENS staat
- if (up.getRelative(BlockFace.NORTH).getType() == Material.GOLD_BLOCK || up.getRelative(BlockFace.EAST).getType() == Material.GOLD_BLOCK
- || up.getRelative(BlockFace.SOUTH).getType() == Material.GOLD_BLOCK || up.getRelative(BlockFace.WEST).getType() == Material.GOLD_BLOCK)
- {
- ItemStack i = p.getItemInHand();
- int aantal = i.getAmount();
- int kansaantal = aantal * 2;
- int base = 10;
- if (aantal == 0)
- base = 8;//goed voor een config item -> hoe streng met niks
- int random = r.nextInt(base + kansaantal);
- System.out.println("random: " + random);
- server.broadcastMessage("het random getal: " + random);
- if (random <= 4)//goed voor een config item -> hoe streng
- {
- if (i.getType() == Material.AIR)
- {
- System.out.println(i.getType());
- server.broadcastMessage("The gods are " + ChatColor.RED + "NOT" + ChatColor.WHITE + " pleased with the offering of NOTHING!!!!!!!!");
- }
- else
- {
- System.out.println("niks");
- server.broadcastMessage("The gods are " + ChatColor.RED + "NOT" + ChatColor.WHITE + " pleased with the offering of "
- + p.getDisplayName() + " therefore:");
- }
- server.broadcastMessage(ChatColor.RED + "Player: " + p.getDisplayName() + ChatColor.RED + " just made the ultimate sacrifice to the gods!");
- i.setAmount(0);
- p.setHealth(0);
- //make (and execute) a check to see what to change
- setSomething(w, time, event, s);
- }
- else
- {
- if (i.getType() == Material.AIR)
- {
- server.broadcastMessage("Player: " + p.getDisplayName() + " just offered nothing(!) in an attempt to please the gods!");
- }
- else
- {
- server.broadcastMessage("Player: " + p.getDisplayName() + " just offered " + aantal + " " + i.getType()
- + " in an attempt to please the gods!");
- }
- i.setAmount(0);
- p.setItemInHand(null);
- //make (and execute) a check to see what to change
- setSomething(w, time, event, s);
- }
- byte data = (byte) (up.getData() + 4);
- up.setData(data);
- }
- else
- //offer table not in the correct format
- {
- noGoodOfferTable(p, event);
- }
- }
- else
- //offer table not in the correct format
- {
- noGoodOfferTable(p, event);
- }
- }
- else
- //offer table not in the correct format
- {
- noGoodOfferTable(p, event);
- }
- }
- else
- //offer table not in the correct format
- {
- noGoodOfferTable(p, event);
- }
- }
- }
- }
- // System.out.println(event.getEventName() + "\n" + event.getAction());
- // System.out.println("de data: " + event.getClickedBlock().getData());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment