Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.derffamily.main;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Event.Result;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.event.inventory.CraftItemEvent;
- import org.bukkit.event.player.PlayerInteractAtEntityEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerLevelChangeEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.ShapelessRecipe;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scoreboard.DisplaySlot;
- import org.bukkit.scoreboard.Objective;
- import org.bukkit.scoreboard.Score;
- import org.bukkit.scoreboard.Scoreboard;
- public class Levelsystem extends JavaPlugin implements Listener {
- private static Scoreboard board;
- private static Objective o;
- private static Score s;
- static HashMap<OfflinePlayer, Score> scores = new HashMap<OfflinePlayer, Score>();
- static ItemStack craft_result = null;
- public void loadConfiguration(){
- this.getConfig().options().copyDefaults(true);
- this.saveConfig();
- }
- public void onEnable() {
- {
- /**
- * Craft Result Information
- */
- ItemStack sword1 = new ItemStack(Material.IRON_SWORD, 1);
- ItemMeta sm1 = sword1.getItemMeta();
- sm1.setDisplayName(ChatColor.GOLD + "Rusty Iron Sword");
- sm1.setLore(Arrays.asList(ChatColor.GREEN + "Your rusty ol' sword"));
- sword1.setItemMeta(sm1);
- sword1.setDurability((short) 128);
- ShapelessRecipe sword1r = new ShapelessRecipe(sword1);
- sword1r.addIngredient(Material.STICK);
- sword1r.addIngredient(Material.STICK);
- sword1r.addIngredient(Material.STICK);
- sword1r.addIngredient(Material.STICK);
- sword1r.addIngredient(Material.IRON_INGOT);
- ItemStack result = sword1r.getResult();
- craft_result=result;
- Bukkit.getServer().addRecipe(sword1r);
- }
- board = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
- o = board.registerNewObjective("Stats", "dummy");
- o.setDisplayName(ChatColor.GOLD +"Player stats");
- o.setDisplaySlot(DisplaySlot.SIDEBAR);
- s = o.getScore(ChatColor.GREEN + "Level:");
- loadConfiguration();
- Bukkit.getServer().getPluginManager().registerEvents(this, this);
- this.getCommand("level").setExecutor(new LevelCommand(null));
- List<String> s = getConfig().getStringList("levels");
- for(String str : s) {
- String[] words = str.split(":");
- scores.put(Bukkit.getServer().getOfflinePlayer(words[0]), o.getScore( Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Level:")));
- scores.get(Bukkit.getServer().getOfflinePlayer(words[0])).setScore(Integer.parseInt(words[1]));
- }
- saveDefaultConfig();
- }
- public void onDisable() {
- List<String> s = getConfig().getStringList("levels");
- for(OfflinePlayer p : scores.keySet()) {
- s.add(p.getName() + ":" + scores.get(p).getScore());
- }
- getConfig().set("levels", s);
- saveConfig();
- }
- @EventHandler
- public void playerlevel(PlayerLevelChangeEvent e) {
- if(e.getNewLevel() - e.getOldLevel() == 1) {
- scores.get(e.getPlayer()).setScore(scores.get(e.getPlayer()).getScore() + 1);
- } else {
- return;
- }
- }
- @EventHandler
- public void playerJoinEvents(PlayerJoinEvent e) {
- Player p = e.getPlayer();
- p.setScoreboard(board);
- if(scores.get(p) == null) {
- scores.put(p, o.getScore( Bukkit.getServer().getOfflinePlayer(ChatColor.GREEN + "Level:")));
- } else {
- return;
- }
- }
- @EventHandler
- public void playerdeath(PlayerDeathEvent e) {
- Player p = e.getEntity();
- int score = scores.get(p).getScore();
- if(p.isDead() && !p.hasPermission("level.bypass")) {
- scores.get(p).setScore(0);
- } else {
- return;
- }
- System.out.println(prefix + "If you die you can lose levels (optional)");
- }
- // End of levels //
- String prefix = ChatColor.GOLD + "[" + ChatColor.WHITE + ChatColor.BOLD + "Level" + ChatColor.GOLD + "]";
- @EventHandler
- public void deny_crafting(CraftItemEvent e){
- Player p = (Player) e.getWhoClicked();
- if(craft_result!=null){
- if(e.getInventory().getResult().equals(craft_result)){
- if(scores.get(p)!=null){
- int score = scores.get(p).getScore();
- if(score<5){
- e.setResult(Result.DENY);
- ItemStack result = e.getInventory().getResult();
- e.getInventory().remove(result);
- /**
- * Could be also e.setCancelled(true) not tested!
- */
- p.sendMessage("You need to be Level 5!");
- }
- }
- }
- }
- System.out.println(prefix + "No crafting if level != required level");
- }
- @EventHandler
- public void deny_use(PlayerInteractEvent e) {
- Player p = e.getPlayer();
- int score = scores.get(p).getScore();
- if(e.getItem().equals(craft_result) && e.getMaterial().equals(Material.IRON_SWORD)) {
- if(score < 5) {
- e.setCancelled(true);
- e.getPlayer().sendMessage(prefix + "Sorry! you're a too low level!");
- } else if(score >= 5) {
- return;
- }
- }
- System.out.println(prefix + "Denying Player weapon usage if level != required level");
- }
- }
- // End class //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement