Skocz do zawartości
  • 0

plugin na boyfarmer sandfarmer kopaczfosy


Pytanie

Elo da ktos kod pluginu, że po położeniu xxxx bloku o xxxx nazwie z xxxx opisem tworzy się obs 100 kratek w dół do bedrocka od położonego bloku???

i jeszcze, o połozeniu jakiegos bloku xxx nazwa xxxx opis tworzy się dziura. DAJE LIKEI

@yooniks 

Edytowane przez vaper1337
Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/
Udostępnij na innych stronach

12 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Ehh.. Jesli tworzysz serwer, to nawet sie za niego nie bierz. 

Naprawde wrzucenie posta do odpowiedniej kategorii jest ciezkie?

Ale mnie to juz wkurza..

//W takich przypadkach warto zgłosić to przyciskiem 155006507.png przez co od razu zostanie przeniesione, po zauważaniu zgłoszenia przez moderację/administrację. ~ Nioo

Edytowane przez Nioo
Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-154660
Udostępnij na innych stronach

  • 0

powinno działać

Spoiler

 
package me.plugin.boyfarmer;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Mainn extends JavaPlugin implements Listener {
    private Material blok1 = Material.STONE;
    private Material blok2 = Material.SPONGE;
    
    private ArrayList<String> lore1 = new ArrayList<>();
    private ArrayList<String> lore2 = new ArrayList<>();
    
    private String nazwa1 = "nazwa1";
    private String nazwa2 = "nazwa2";
    
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        lore1.add("opis linia1");
        lore1.add("opis linia2");
        //Tak robisz opis -> po linijce
        lore2.add("opis linia1");
        lore2.add("opis linia2");
    }
    
    @EventHandler
    public void onPlace(BlockPlaceEvent e){
        if(e.getItemInHand().getItemMeta().getDisplayName().equals(nazwa1) && e.getItemInHand().getItemMeta().getLore().equals(lore1) && e.getBlock().getType().equals(blok1)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            } else{
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            }
        }else if(e.getItemInHand().getItemMeta().getDisplayName().equals(nazwa2) && e.getItemInHand().getItemMeta().getLore().equals(lore2) && e.getBlock().getType().equals(blok2)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            } else{
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            }
        }
    }
}

 

btw. zły dział bo ten jest od skryptów

daj lajka ^^

//Chowam w spoiler ~ Nioo

Edytowane przez Nioo
Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-154673
Udostępnij na innych stronach

  • 0
Dnia 5.11.2017 o 16:37, LloydPL napisał:

powinno działać


 
package me.plugin.boyfarmer;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Mainn extends JavaPlugin implements Listener {
    private Material blok1 = Material.STONE;
    private Material blok2 = Material.SPONGE;
    
    private ArrayList<String> lore1 = new ArrayList<>();
    private ArrayList<String> lore2 = new ArrayList<>();
    
    private String nazwa1 = "nazwa1";
    private String nazwa2 = "nazwa2";
    
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        lore1.add("opis linia1");
        lore1.add("opis linia2");
        //Tak robisz opis -> po linijce
        lore2.add("opis linia1");
        lore2.add("opis linia2");
    }
    
    @EventHandler
    public void onPlace(BlockPlaceEvent e){
        if(e.getItemInHand().getItemMeta().getDisplayName().equals(nazwa1) && e.getItemInHand().getItemMeta().getLore().equals(lore1) && e.getBlock().getType().equals(blok1)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            } else{
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            }
        }else if(e.getItemInHand().getItemMeta().getDisplayName().equals(nazwa2) && e.getItemInHand().getItemMeta().getLore().equals(lore2) && e.getBlock().getType().equals(blok2)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            } else{
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(!(loc.getBlock().getType().equals(Material.BEDROCK))){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            }
        }
    }
}

btw. zły dział bo ten jest od skryptów

daj lajka ^^

To nie działa. Nie ma błędów w eclipsie

Były w konsoli ale zmieniłem na if (e.getItemInHand().isSimilar(Main.bf)) {

I nie ma błędów w konsoli ale nie działa. Nazwa na 100% dobra i 100% dobry item trzymam w łapie. Proszę pomóż

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-154832
Udostępnij na innych stronach

  • 0

sorka, błąd logiczny przy bedrocku, masz tu sprawdzone + dodałem metodę która da itemy graczowi, poprostu wpiszujesz

giveItems(gracz);

pamiętaj że gracz ma być typem Player

Kod:

Spoiler

 
package me.plugin.boyfarmer;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {

    private Material blok1 = Material.STONE;
    private Material blok2 = Material.SPONGE;
    
    private ArrayList<String> lore1 = new ArrayList<>();
    private ArrayList<String> lore2 = new ArrayList<>();
    
    private String nazwa1 = "nazwa1";
    private String nazwa2 = "nazwa2";
    
    private ItemStack i1;
    private ItemStack i2;
    
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        //Tak robisz opis -> po linijce
        //lore 1
        lore1.add("kappa");
//      lore1.add("itd");
        
        //lore 2       
        lore2.add("hey");
//      lore2.add("itd");
        
        //Nizej nic nie ruszaj
        i1 = new ItemStack(blok1);
        ItemMeta i1m = i1.getItemMeta();
        i1m.setDisplayName(nazwa1);
        i1m.setLore(lore1);
        i1.setItemMeta(i1m);
        i2 = new ItemStack(blok2);
        ItemMeta i2m = i2.getItemMeta();
        i2m.setDisplayName(nazwa2);
        i2m.setLore(lore2);
        i2.setItemMeta(i2m);
    }
    
    @EventHandler
    public void onPlace(BlockPlaceEvent e){
        if(e.getItemInHand().equals(i1)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            l.getBlock().setType(Material.OBSIDIAN);
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            } else{
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            }
        }else if(e.getItemInHand().equals(i2)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            l.getBlock().setType(Material.AIR);
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            } else{
            	
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            }
        }
    }
    
}

//Chowam w spoiler ~ Nioo

Edytowane przez Nioo
Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-154841
Udostępnij na innych stronach

  • 0
13 godzin temu, LloydPL napisał:

sorka, błąd logiczny przy bedrocku, masz tu sprawdzone + dodałem metodę która da itemy graczowi, poprostu wpiszujesz

giveItems(gracz);

pamiętaj że gracz ma być typem Player

Kod:


 
package me.plugin.boyfarmer;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {

    private Material blok1 = Material.STONE;
    private Material blok2 = Material.SPONGE;
    
    private ArrayList<String> lore1 = new ArrayList<>();
    private ArrayList<String> lore2 = new ArrayList<>();
    
    private String nazwa1 = "nazwa1";
    private String nazwa2 = "nazwa2";
    
    private ItemStack i1;
    private ItemStack i2;
    
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        //Tak robisz opis -> po linijce
        //lore 1
        lore1.add("kappa");
//      lore1.add("itd");
        
        //lore 2       
        lore2.add("hey");
//      lore2.add("itd");
        
        //Nizej nic nie ruszaj
        i1 = new ItemStack(blok1);
        ItemMeta i1m = i1.getItemMeta();
        i1m.setDisplayName(nazwa1);
        i1m.setLore(lore1);
        i1.setItemMeta(i1m);
        i2 = new ItemStack(blok2);
        ItemMeta i2m = i2.getItemMeta();
        i2m.setDisplayName(nazwa2);
        i2m.setLore(lore2);
        i2.setItemMeta(i2m);
    }
    
    @EventHandler
    public void onPlace(BlockPlaceEvent e){
        if(e.getItemInHand().equals(i1)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            l.getBlock().setType(Material.OBSIDIAN);
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            } else{
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            }
        }else if(e.getItemInHand().equals(i2)){
            Location l = e.getBlock().getLocation();
            int y = (int) l.getY();
            l.getBlock().setType(Material.AIR);
            if(y >= 100){
                for(int i = 0; i < 100; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = 100;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            } else{
            	
                for(int i = 0; i < y; i++){
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            }
        }
    }
    
}

Działa tylko nie robi się do bedrocka tylko jakiejs tam kratki. Możesz wysłać kod ale napisz co zmieniłes ok?

Ale nie musisz ale możesz daać kod na proste sstoniarki, że po postawieniu Main.st tworzy się nad tym blokiem nieskonczony stone. pls 

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-154915
Udostępnij na innych stronach

  • 0
//onplace, event itd
final Block down = locationOfPlacedBlock.getBlock().getRelative(BlockFace.DOWN)
while (down.getType != Material.BEDROCK)
	down.setType(Material.AIR);

 

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-154992
Udostępnij na innych stronach

  • 0
4 godziny temu, LloydPL napisał:

Tak jak sobie życzyłeś, w czym problem? -_-

NIE TWORZY SIĘ DO BEDROCKA TYLKO PO 1 POŁOZENIU OKOŁO 45 KRATEK A JAK JEST CORAZ NIŻEJ TO PO 3/4 KRATKI SIĘ USUWAJĄ I TAK SAMO Z BOYFARMEREM.

sorry za caps

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-155040
Udostępnij na innych stronach

  • 0
9 godzin temu, vaper1337 napisał:

NIE TWORZY SIĘ DO BEDROCKA TYLKO PO 1 POŁOZENIU OKOŁO 45 KRATEK A JAK JEST CORAZ NIŻEJ TO PO 3/4 KRATKI SIĘ USUWAJĄ I TAK SAMO Z BOYFARMEREM.

sorry za caps

Jak wróce do domu to napisze Ci, chyba że ktoś ma teraz czas to:

1. pobierasz lokalizacje postawionego bloku.

2. Tworzysz petle, np. for(int i = 0;i <= 100; i++);

3. potem sprawdzasz czy lokalizacja -1y nie jest bedrockiem i ustawiasz obsa/piasek, lub jezeli jest to stopujesz return;

 

 

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-155053
Udostępnij na innych stronach

  • 0
8 godzin temu, KrejzolekPRO napisał:

Jak wróce do domu to napisze Ci, chyba że ktoś ma teraz czas to:

1. pobierasz lokalizacje postawionego bloku.

2. Tworzysz petle, np. for(int i = 0;i <= 100; i++);

3. potem sprawdzasz czy lokalizacja -1y nie jest bedrockiem i ustawiasz obsa/piasek, lub jezeli jest to stopujesz return;

 

 

Po co wy tak robicie? Wystarczy proste "while(warunek)" i sprawdzanie czy blok pod boyfarmerem to bedrock, jesli nie to ustawianie na powietrze wtf

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-155088
Udostępnij na innych stronach

  • 0
1 godzinę temu, yooniks napisał:

Po co wy tak robicie? Wystarczy proste "while(warunek)" i sprawdzanie czy blok pod boyfarmerem to bedrock, jesli nie to ustawianie na powietrze wtf

No ja chciałem to tak zrobić, ale chciał 100 kratek w dół to musiałem zrobić warunek (w sumie mogłem też loopnąć 100 razy i zatrzymać na bedrocku)

 

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-155106
Udostępnij na innych stronach

  • 0

@LloydPL czytaj dokładniej:

Poprawa: 

    @EventHandler
    public void onPlace(BlockPlaceEvent e) {
        if(e.getItemInHand().isSimilar(Main.boyfarmer)) { //TAK JAK PISAŁEŚ Z KLASY MAIN
            Location l = e.getBlock().getLocation();
            e.getPlayer().getWorld().spigot().playEffect(l, Effect.SMOKE, 0, 0, 1.0f, 1.0f, 1.0f, 1.0f, 15, 25); //Zawsze można dodać particlesy, żeby ładniej wyglądało
            int y = (int) l.getY();
            l.getBlock().setType(Material.OBSIDIAN);
            if(y >= 3){
                for(int i = 0; i < 300; i++) {
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = 3;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            } else{
                for(int i = 0; i < y; i++) {
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.OBSIDIAN);
                    }
                }
            }
        }else if(e.getItemInHand().isSimilar(Main.fosafarmer)) { //TAK JAK PISAŁEŚ Z KLASY MAIN
            Location l = e.getBlock().getLocation();
            e.getPlayer().getWorld().spigot().playEffect(l, Effect.SMOKE, 0, 0, 1.0f, 1.0f, 1.0f, 1.0f, 15, 25);
            int y = (int) l.getY();
            l.getBlock().setType(Material.AIR);
            if(y >= 3){
                for(int i = 0; i < 300; i++) {
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = 300;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            } else{
                for(int i = 0; i < y; i++) {
                    y--;
                    Location loc = new Location(l.getWorld(), l.getX(), y, l.getZ());
                    if(loc.getBlock().getType().equals(Material.BEDROCK)){
                        i = y;
                    } else{
                        loc.getBlock().setType(Material.AIR);
                    }
                }
            }

 

 

Odnośnik do komentarza
https://skript.pl/temat/22705-plugin-na-boyfarmer-sandfarmer-kopaczfosy/#findComment-159236
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...