Skocz do zawartości

xTea_199

Użytkownik
  • Ilość zawartości

    109
  • Rejestracja

  • Ostatnia wizyta

Odpowiedzi opublikowane przez xTea_199

  1. Mam oto taki kod: 

     

    	@Override
    	public void onEnable(){
    		Bukkit.getServer().getPluginManager().registerEvents(this , this);
    	}
    	
    	@EventHandler
    	public void onExplode(EntityExplodeEvent e){
    		Settings ss = Settings.getInstance();
    		Region region = RegionUtils.getAt(e.getLocation());
    		if (region == null){
    			return;
    		}
    		Guild g = region.getGuild();
    		if (g == null || g.getName() == null){
    			return;
    		}
    		if (g != null) {
    			List<Location> s = sphere(e.getLocation(), 5, 5, false, true, 0);
    			Map ExplodeMaterials = ss.explodeMaterials;
    			for (final Location loc : s) {
    				Material mat = loc.getBlock().getType();
    				if (ExplodeMaterials.containsKey(mat)) {
    					if(mat.equals(Material.WATER)){
    						loc.getBlock().setType(Material.AIR);
    					}
    					else{ loc.getBlock().breakNaturally();
    					}
    				}
    				if (mat.equals(Material.JUKEBOX)) {
    					Bukkit.getScheduler().runTaskLater(new Main(), new Runnable(){
    						public void run(){
    							loc.getBlock().setType(Material.JUKEBOX);
    						}
    					}, 1L);
    				}
    			}
    			g.setBuild(System.currentTimeMillis() + Settings.getInstance().regionExplode * 1000L);
    		    for (User user : g.getMembers()){
    		      Player player = Bukkit.getPlayer(user.getName());
    		      if (player != null) {
    		        player.sendMessage(Messages.getInstance().getMessage("regionExplode")
    		          .replace("{TIME}", Integer.toString(Settings.getInstance().regionExplode)));
    		      }
    		    }
    		}
    	}
    	
    	public static List<Location> sphere(Location loc, int radius, int height, boolean hollow, boolean sphere, int plusY){
    		List circleblocks = new ArrayList();
    		int cx = loc.getBlockX();
    		int cy = loc.getBlockY();
    		int cz = loc.getBlockZ();
    		for (int x = cx - radius; x <= cx + radius; x++) {
    			for (int z = cz - radius; z <= cz + radius; z++) {
    				for (int y = sphere ? cy - radius : cy; y < (sphere ? cy + radius : cy + height); y++) {
    					double dist = (cx - x) * (cx - x) + (cz - z) * (cz - z) + (sphere ? (cy - y) * (cy - y) : 0);
    					if ((dist < radius * radius) && ((!hollow) || (dist >= (radius - 1) * (radius - 1)))) {
    						Location l = new Location(loc.getWorld(), x, y + plusY, z);
    						circleblocks.add(l);
    					}
    				}
    			}
    		}
    		return circleblocks;
    		}

     

     

    ale oczywiście nie działa tylko to co chcę :(

    Material mat = loc.getBlock().getType();
    				if (ExplodeMaterials.containsKey(mat)) {
    					if(mat.equals(Material.WATER)){
    						loc.getBlock().setType(Material.AIR);
    					}
    					else{ loc.getBlock().breakNaturally();
    					}
    				}
    				if (mat.equals(Material.JUKEBOX)) {
    					Bukkit.getScheduler().runTaskLater(new Main(), new Runnable(){
    						public void run(){
    							loc.getBlock().setType(Material.JUKEBOX);
    						}
    					}, 1L);
    				}

     

    Pomoże ktoś to naprawić?

  2. Mam takie coś 

     

    @EventHandler
        public void onCraft(PrepareItemCraftEvent e)
        {
          if (e.getInventory().getType().equals(InventoryType.WORKBENCH)) {
            if (e.getInventory().getResult().getType().equals(Material.EMERALD_ORE)) {
                  if (e.getInventory().getItem(1).getAmount() == 64) {
                    if (e.getInventory().getItem(2).getAmount() == 64) {
                      if (e.getInventory().getItem(3).getAmount() == 64) {
                        if (e.getInventory().getItem(4).getAmount() == 64) {
                          if (e.getInventory().getItem(5).getAmount() == 64) {
                            if (e.getInventory().getItem(6).getAmount() == 64) {
                              if (e.getInventory().getItem(7).getAmount() == 64) {
                                if (e.getInventory().getItem(8).getAmount() == 64) {
                                  if (e.getInventory().getItem(9).getAmount() == 64) {
                                    return;
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  e.getInventory().setResult(
                    new ItemStack(Material.AIR, 0));
                }
              }
          }    

     

    @Override
        public void onEnable(){
            Bukkit.addRecipe(new ShapedRecipe(new ItemStack(c1)).shape(new String[] { "sss", "sss", "sss" }).setIngredient('s', Material.COBBLESTONE));

    }

     

    i to działa na zasadzie że jeżeli w craftingu jest w każdym slocie x64 cobbla to jak craftuje to zabiera po 1 z każdego :(

  3. Mam oto taki kod:

     

    int is = e.getPlayer().getItemInHand().getDurability() + 1;
    				e.getPlayer().getItemInHand().setDurability((short) is);
    				e.getPlayer().updateInventory();
    				if(e.getPlayer().getItemInHand().getDurability() < 1){
    					e.getPlayer().getItemInHand().setType(null);
    					e.getPlayer().sendMessage("sa");
    				}

    Zrobiłem tak ponieważ po e.setcanc... nie zadaje obrażeń do przedmiotu, i to oczywiście nie działa, proszę po pomoc

  4. mam taki kod

    @EventHandler
    	public void onPostaw(BlockPlaceEvent e){
    		if(e.getBlock().getType() == Material.ENDER_STONE){
    			if(e.isCancelled()){
    				e.getPlayer().sendMessage("xd");
    			}else{
    				e.getPlayer().sendMessage("xds");
    			}
    		}
    	}

    ale gdy postawie ender_stone na spawnie to p[isze xds a jeżeli postawie poza spawnem to tak samo pomocy !!!

  5. zrobiłem takie coś że po kliknięciu w stone w inventory BEACONA canceluje event ale to nie działa.. :( 

    @EventHandler
        public static void onInvClick(InventoryClickEvent e){
            Inventory inve = e.getInventory();
            final Player p = (Player) e.getWhoClicked();
            if(inve == null){ return; } if(inve !=null){ if(!inve.getName().equals(inve.getTitle())){ return; } if (e.getCurrentItem() == null){ return; } else{ if(e.getCurrentItem().getItemMeta() == null){ return; } } }
                if(inve.getType().equals(InventoryType.BEACON)){
                    ItemStack item = e.getCurrentItem();
                    ItemMeta meta = item.getItemMeta();
                    if(e.getWhoClicked() instanceof Player){
                        if(e.getCurrentItem().getItemMeta() == null){
                        }
                        if (e.getCurrentItem().getItemMeta().getDisplayName() == null){            
                        return;
                        }
                        if (!(e.getCurrentItem().getItemMeta().getDisplayName() == null)){    
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(Material.STONE)){
                            e.setCancelled(true);
                        }
                    }
                }
        }

     

     

×
×
  • Dodaj nową pozycję...