Yay+ Kaynak kodu

Krumb069

Nether Yerlisi
En iyi cevaplar
1
Konu: https://forum.gamer.com.tr/konu/plu...n-yaylar-ve-daha-fazlasi.258936/#post-1458810
Kod:
package com.yay;

import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;




public class Main extends JavaPlugin implements Listener{
    HashMap<Player, String> yayk = new HashMap<Player, String>();
     public static final Logger log = Logger.getLogger("Minecraft");
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            log.log(Level.INFO, "[Yay+]Yay Plugini Calisiyor!"); 
        }
        public void onDisable() {
            log.log(Level.INFO, "[Yay+]Yay Plugini Calisiyor!");           
        }
     public boolean onCommand(CommandSender gonderen, Command komut, String label, String[] args) {
         if (komut.getName().equalsIgnoreCase("yay")){
             Player oyuncu = (Player) gonderen;
             if (oyuncu.hasPermission("yay.al")) {
               if(args.length == 0){
                  oyuncu.sendMessage("§7[§6Yay+§7]§aKullanım: §c/yay yayismi, /yay bilgi");
                  oyuncu.sendMessage("§bYay Listesi: §btntyay, isinlayiciyay, patlayiciyay, yildirimyayi, trollyay");

               }
             }
             if(args.length == 1){
                 if(args[0].equalsIgnoreCase("tntyay")) {
             ItemStack tntyay = new ItemStack(Material.BOW);
             ItemMeta tntyayMeta = tntyay.getItemMeta();
             tntyayMeta.setDisplayName("§cTNT Yay");
             tntyay.setItemMeta(tntyayMeta);
             Inventory oyuncuEnvanter = oyuncu.getInventory();
             oyuncuEnvanter.addItem(tntyay);
             oyuncu.sendMessage("§7[§6Yay+§7]§aTNT Yay alındı.");
         }
             }           
              if(args.length == 1){
                 if(args[0].equalsIgnoreCase("isinlayiciyay")) {
             ItemStack iy = new ItemStack(Material.BOW);
             ItemMeta iyMeta = iy.getItemMeta();
             iyMeta.setDisplayName("§cIşınlayıcı Yay");
             iy.setItemMeta(iyMeta);
             Inventory oyuncuEnvanter = oyuncu.getInventory();
             oyuncuEnvanter.addItem(iy);
             oyuncu.sendMessage("§7[§6Yay+§7]§aIşınlayıcı Yay alındı.");
         }
             if(args.length == 1){
                  if(args[0].equalsIgnoreCase("patlayiciyay")) {
              ItemStack py = new ItemStack(Material.BOW);
              ItemMeta pyMeta = py.getItemMeta();
              pyMeta.setDisplayName("§cPatlayıcı Yay");
              py.setItemMeta(pyMeta);
              Inventory oyuncuEnvanter = oyuncu.getInventory();
              oyuncuEnvanter.addItem(py);
              oyuncu.sendMessage("§7[§6Yay+§7]§aPatlayıcı Yay alındı.");
              }           
              }
             if(args.length == 1){
                  if(args[0].equalsIgnoreCase("yildirimyayi")) {
              ItemStack yy = new ItemStack(Material.BOW);
              ItemMeta yyMeta = yy.getItemMeta();
              yyMeta.setDisplayName("§cYıldırım Yayı");
              yy.setItemMeta(yyMeta);
              Inventory oyuncuEnvanter = oyuncu.getInventory();
              oyuncuEnvanter.addItem(yy);
              oyuncu.sendMessage("§7[§6Yay+§7]§aYıldırım Yayı alındı.");
              }           
              }
             if(args.length == 1){
                  if(args[0].equalsIgnoreCase("trollyay")) {
              ItemStack ty = new ItemStack(Material.BOW);
              ItemMeta tyMeta = ty.getItemMeta();
              tyMeta.setDisplayName("Yay");
              ty.setItemMeta(tyMeta);
              Inventory oyuncuEnvanter = oyuncu.getInventory();
              oyuncuEnvanter.addItem(ty);
              oyuncu.sendMessage("§7[§6Yay+§7]§aTroll Yayı alındı.");
              }           
              }
             if(args.length == 1){
                 if(args[0].equalsIgnoreCase("bilgi")) {
             oyuncu.sendMessage("§7[§6Yay+§7]§aTNT Yay: TNT atar.Eğer survivaldaysanız envanterinizde TNT ve ok olması gerekir.");
             oyuncu.sendMessage("§7[§6Yay+§7]§bIşınlayıcı Yay: Oyuncuyu okun düştüğü yere ışınlar.");
             oyuncu.sendMessage("§7[§6Yay+§7]§cPatlayıcı Yay: Okun düştüğü yeri patlatır.");
             oyuncu.sendMessage("§7[§6Yay+§7]§dYıldırım Yayı: Okun düştüğü yere yıldırım çakar.");
             oyuncu.sendMessage("§7[§6Yay+§7]§eTrollYay: İsmi normal yayla aynıdır. Oyuncu ok attığında kendini fırlatır.");
         }
             }           
                }
         }
         return false;
     }
  @EventHandler
  public void okatilinca(EntityShootBowEvent e){
    if ((e.getEntity() instanceof Player)){
        Player o = (Player) e.getEntity();
        if(o.getInventory().getItemInHand().hasItemMeta()) {
         ItemStack yay = o.getItemInHand();
         ItemMeta yayMeta = yay.getItemMeta();
         if (yayMeta.hasDisplayName()){
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cPatlayıcı Yay")) {
             yayk.put(o, "yayk1");
         }
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cIşınlayıcı Yay")){
             yayk.put(o, "yayk2");
            }
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cYıldırım Yayı")) {
             yayk.put(o, "yayk3");
         }
         if (yayMeta.getDisplayName().equalsIgnoreCase("Yay")) {
             yayk.put(o, "yayk0");
             e.getProjectile().setPassenger(o);
         }
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cTNT Yay")){
             yayk.put(o, "yayk0");
             if(o.getGameMode() == GameMode.CREATIVE){
                     Entity ent = o.getWorld().spawnEntity(o.getLocation(), EntityType.PRIMED_TNT);
                     ent.setVelocity(e.getProjectile().getVelocity());
                     e.setProjectile(ent);
                 }
             if (o.getGameMode() == GameMode.SURVIVAL){
                 if (o.getInventory().contains(Material.TNT)){                    
                     o.getInventory().removeItem(new ItemStack(Material.TNT));
                     Entity ent = o.getWorld().spawnEntity(o.getLocation(), EntityType.PRIMED_TNT);
                     ent.setVelocity(e.getProjectile().getVelocity());
                     e.setProjectile(ent);
                 }
                 else{
                     o.sendMessage("§7[§6Yay+§7]§aEnvanterinde TNT yok !");
                 }
             }       
            }
         }
        }
        else{
            yayk.put(o, "yayk0");
        }
    }
    }
  @EventHandler
  public void okCarptiginda(final ProjectileHitEvent e){
      if (e.getEntity() instanceof Arrow) {
          final Arrow ok = (Arrow) e.getEntity();                       
          if (ok.getShooter() instanceof Player){
              Player o = (Player) ok.getShooter();
                  if (yayk.get(o).equalsIgnoreCase("yayk1")) {
                      ok.getWorld().createExplosion(ok.getLocation().getX(), ok.getLocation().getY(), ok.getLocation().getZ(), 4F, false, false);
                   }
                  if (yayk.get(o).equalsIgnoreCase("yayk2")) {
                      o.teleport(ok.getLocation());
                  }
                  if (yayk.get(o).equalsIgnoreCase("yayk3")) {
                      ok.getWorld().strikeLightning(ok.getLocation());
                  }
                  if (yayk.get(o).equalsIgnoreCase("yayk0")) {
                      yayk.remove(o);
                  }
              }         
        }         
      }
}
İngilizce versiyon(dev bukkit ve spigot için):
Kod:
package com.bowsplus;

import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;




public class Main extends JavaPlugin implements Listener{
    HashMap<Player, String> yayk = new HashMap<Player, String>();
     public static final Logger log = Logger.getLogger("Minecraft");
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            log.log(Level.INFO, "[Bows+]Plugin is activated!"); 
        }
        public void onDisable() {
            log.log(Level.INFO, "[Bows+]Plugin is deactivated!");           
        }
     public boolean onCommand(CommandSender gonderen, Command komut, String label, String[] args) {
         if (komut.getName().equalsIgnoreCase("bow")){
             Player oyuncu = (Player) gonderen;
             if (oyuncu.hasPermission("bow.maincommand")) {
               if(args.length == 0){
                  oyuncu.sendMessage("§7[§6Bows+§7]§aUsage: §c/bow bowname, /bow info");
                  oyuncu.sendMessage("§bBow List: §btntbow, teleportbow, explosivebow, lightningbow, trollbow");

               }
             }
             if(args.length == 1){
                 if(args[0].equalsIgnoreCase("tntbow")) {
             ItemStack tntbow = new ItemStack(Material.BOW);
             ItemMeta tntbowMeta = tntbow.getItemMeta();
             tntbowMeta.setDisplayName("§cTNT Bow");
             tntbow.setItemMeta(tntbowMeta);
             Inventory oyuncuEnvanter = oyuncu.getInventory();
             oyuncuEnvanter.addItem(tntbow);
             oyuncu.sendMessage("§7[§6Bow+§7]§aYou took TNT Bow.");
         }
             }           
              if(args.length == 1){
                 if(args[0].equalsIgnoreCase("teleportbow")) {
             ItemStack iy = new ItemStack(Material.BOW);
             ItemMeta iyMeta = iy.getItemMeta();
             iyMeta.setDisplayName("§c§cITeleport Bow");
             iy.setItemMeta(iyMeta);
             Inventory oyuncuEnvanter = oyuncu.getInventory();
             oyuncuEnvanter.addItem(iy);
             oyuncu.sendMessage("§7[§6Bow+§7]§aYou took Teleport bow.");
         }
             if(args.length == 1){
                  if(args[0].equalsIgnoreCase("explosivebow")) {
              ItemStack py = new ItemStack(Material.BOW);
              ItemMeta pyMeta = py.getItemMeta();
              pyMeta.setDisplayName("§cExplosive Bow");
              py.setItemMeta(pyMeta);
              Inventory oyuncuEnvanter = oyuncu.getInventory();
              oyuncuEnvanter.addItem(py);
              oyuncu.sendMessage("§7[§6Bow+§7]§aYou took Explosive Bow.");
              }           
              }
             if(args.length == 1){
                  if(args[0].equalsIgnoreCase("lightningbow")) {
              ItemStack yy = new ItemStack(Material.BOW);
              ItemMeta yyMeta = yy.getItemMeta();
              yyMeta.setDisplayName("§cLightning Bow");
              yy.setItemMeta(yyMeta);
              Inventory oyuncuEnvanter = oyuncu.getInventory();
              oyuncuEnvanter.addItem(yy);
              oyuncu.sendMessage("§7[§6Bow+§7]§aYou took Ligntning Bow.");
              }           
              }
             if(args.length == 1){
                  if(args[0].equalsIgnoreCase("trollbow")) {
              ItemStack ty = new ItemStack(Material.BOW);
              ItemMeta tyMeta = ty.getItemMeta();
              tyMeta.setDisplayName("Bow");
              ty.setItemMeta(tyMeta);
              Inventory oyuncuEnvanter = oyuncu.getInventory();
              oyuncuEnvanter.addItem(ty);
              oyuncu.sendMessage("§7[§6Bow+§7]§aYou took Trollbow.");
              }           
              }
             if(args.length == 1){
                 if(args[0].equalsIgnoreCase("info")) {
             oyuncu.sendMessage("§7[§6Yay+§7]§aTNT Bow: Throws TNT.If you're in survival mod you need to have TNT and arrow in your inventory");
             oyuncu.sendMessage("§7[§6Yay+§7]§bTeleport Bow: Teleports player");
             oyuncu.sendMessage("§7[§6Yay+§7]§cExplosive Bow: Creates explosion at arrow.");
             oyuncu.sendMessage("§7[§6Yay+§7]§dLightning Bow: Strikes lightning at arrow.");
             oyuncu.sendMessage("§7[§6Yay+§7]§eTrollbow: It has same name with normal bow.It launches player insted of arrow");
         }
             }           
                }
         }
         return false;
     }
  @EventHandler
  public void okatilinca(EntityShootBowEvent e){
    if ((e.getEntity() instanceof Player)){
        Player o = (Player) e.getEntity();
        if(o.getInventory().getItemInHand().hasItemMeta()) {
         ItemStack yay = o.getItemInHand();
         ItemMeta yayMeta = yay.getItemMeta();
         if (yayMeta.hasDisplayName()){
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cExplosive Bow")) {
             yayk.put(o, "yayk1");
         }
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cITeleport Bow")){
             yayk.put(o, "yayk2");
            }
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cLightning Bow")) {
             yayk.put(o, "yayk3");
         }
         if (yayMeta.getDisplayName().equalsIgnoreCase("Bow")) {
             yayk.put(o, "yayk0");
             e.getProjectile().setPassenger(o);
         }
         if (yayMeta.getDisplayName().equalsIgnoreCase("§cTNT Bow")){
             yayk.put(o, "yayk0");
             if(o.getGameMode() == GameMode.CREATIVE){
                     Entity ent = o.getWorld().spawnEntity(o.getLocation(), EntityType.PRIMED_TNT);
                     ent.setVelocity(e.getProjectile().getVelocity());
                     e.setProjectile(ent);
                 }
             if (o.getGameMode() == GameMode.SURVIVAL){
                 if (o.getInventory().contains(Material.TNT)){                    
                     o.getInventory().removeItem(new ItemStack(Material.TNT));
                     Entity ent = o.getWorld().spawnEntity(o.getLocation(), EntityType.PRIMED_TNT);
                     ent.setVelocity(e.getProjectile().getVelocity());
                     e.setProjectile(ent);
                 }
                 else{
                     o.sendMessage("§7[§6Bows+§7]§aYou dont have TNT in you inventory!");
                 }
             }       
            }
         }
        }
        else{
            yayk.put(o, "yayk0");
        }
    }
    }
  @EventHandler
  public void okCarptiginda(final ProjectileHitEvent e){
      if (e.getEntity() instanceof Arrow) {
          final Arrow ok = (Arrow) e.getEntity();                       
          if (ok.getShooter() instanceof Player){
              Player o = (Player) ok.getShooter();
                  if (yayk.get(o).equalsIgnoreCase("yayk1")) {
                      ok.getWorld().createExplosion(ok.getLocation().getX(), ok.getLocation().getY(), ok.getLocation().getZ(), 4F, false, false);
                   }
                  if (yayk.get(o).equalsIgnoreCase("yayk2")) {
                      o.teleport(ok.getLocation());
                  }
                  if (yayk.get(o).equalsIgnoreCase("yayk3")) {
                      ok.getWorld().strikeLightning(ok.getLocation());
                  }
                  if (yayk.get(o).equalsIgnoreCase("yayk0")) {
                      yayk.remove(o);
                  }
              }         
        }         
      }
}
 
Üst