Krumb069
Nether Yerlisi
- En iyi cevaplar
- 1
Konu: https://forum.gamer.com.tr/konu/plu...n-yaylar-ve-daha-fazlasi.258936/#post-1458810
İngilizce versiyon(dev bukkit ve spigot için):
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);
}
}
}
}
}
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);
}
}
}
}
}