Sunucuma özel Bedwars eklentisi hazırlamaktayım fakat doğru işlemiyor. (Çözüldü)

java10

kız çava bana kahve yap
En iyi cevaplar
0
Peki ne işe yarayacak benim için?

CASPER_VIA_E1 cihazımdan Tapatalk kullanılarak gönderildi
mesela bir oyuncunun envanterini kaydedebilirsin ve ya herhangi bir şeyi kaydedeblirsin minigames yapıyorsan haritaları kaydedebilirsin haritaların ayarlarını tabelalarını alanını vs. aklına ne geliyorsa bu yöntem ile kaydedebilirsin
 

MegaCrafter

Obsidyen Madencisi
En iyi cevaplar
0
Hazır Serializable konusu geçerken söyleyim. Eğer bir sınıfta kaydetmek istemediğin bir değişken olursa bunu "transient" şekilde tanımlayabilirsin. Kısaca başına public veya private yazdığın gibi bir de "transient" yazacaksın. Mesela sınıfında mysql şifreleri gibi kaydedilmemesi gereken detaylar varsa onları "transient" yapıp ois'ten ayrı tutabilirsin.
 

MrPoteyto

Is the excellence? Ok..
En iyi cevaplar
0
Beyler yeni kod göndercem şunada bi bakarmısınız hata var yine ya. (Zaten bi hata olmasa dişimi kıracağım :D)
Hata ise şu: blok koyma falan filan tamam ancak sohbette renk belirleme işlemi yaparken hiçbir yazı gelmemekte. Yani şöyle söyliyim: Şimdi ben bu eklentide yatağın rengini sohbete yazılacak yazı ile ayarlanacak şekilde ayarladım fakat rengi yazınca hiçbir yazı gelmiyor. Ne yaparsam yapıyım olmuyor. Sabahtan beri bunla uğraştım çıldıracağım artık. Lütfen yardım edermisiniz
Kod:
package com.minedream.genel.bedwars;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Project extends JavaPlugin implements Listener{
    
    boolean renkBelirleme = false;
    boolean renkSecildi = false;
    boolean yatakBelirleme = false;
    boolean konusmaDurumu = true;
    String yatakRengi;
    
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("BedWarsDream -- Yeni Nesil BedWars! v" + getDescription().getVersion());
        getLogger().info("BedWarsDream -- Eklenti aktif!");
    }
    public void onDisable() {
        getLogger().info("BedWarsDream - Eklenti kapanıyor, Görüşürüz...");
    }
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
        if(cmd.getName().equalsIgnoreCase("yatak")) {
            if(args.length == 0) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &cBu komut bir 'argument'siz kullanılamıyor."));
                return true;
            }
            if(args[0].equalsIgnoreCase("cik")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aYatak belirleme başarıyla kapatıldı."));
                yatakBelirleme = false;
                renkBelirleme = false;
                konusmaDurumu = true;
                if(konusmaDurumu == false) {
                    konusmaDurumu = true;
                    return true;
                }
            }
            if(args[0].equalsIgnoreCase("yardim")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &eBedwars v1.3b - By MrPoteyto - Sorun bildirmek için: &6MrPoyeyto"));
                return true;
            }
            if(args[0].equalsIgnoreCase("veriyenile")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aEklenti verileri başarıyla yenilendi."));
                renkSecildi = false;
                yatakRengi = null;
                yatakBelirleme = false;
                renkBelirleme = false;
                konusmaDurumu = true;
                return true;
            }
        }
        return true;
    }
    @EventHandler
    public void konustugunda(AsyncPlayerChatEvent e) {
        Player p = e.getPlayer();
        if(konusmaDurumu == false) {
            if(e.getMessage().contains("mavi") || e.getMessage().contains("kırmızı") || e.getMessage().contains("yeşil") || e.getMessage().contains("sarı")) {
                if(renkBelirleme == true) {
                    e.setCancelled(true);
                    renkSecildi = true;
                    yatakRengi = e.getMessage();
                }
            } else {
                e.setCancelled(true);
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &cLütfen sohbete şu 4 renkten birini yazın: &4&lKırmızı&c, &1&lMavi&c, &2&lYeşil&c, &6&lSarı"));
            }
        }
    }
    @EventHandler
    public boolean yatakMesajGonder(BlockPlaceEvent e) {
        Player p = e.getPlayer();
        Block b = e.getBlock();
        Location loc = b.getLocation();
        if(b.getType().equals(Material.GOLD_BLOCK)) {
            loc.setY(loc.getY() - 1);
            loc.setZ(loc.getZ() + 0.5);
            loc.setX(loc.getX() + 0.5);
            if(loc.getBlock().getType().equals(Material.DRAGON_EGG)) {
                if(yatakBelirleme == true) {
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &cZaten bir yatak belirliyorsun! Belirlemeden çıkmak için '&4/yatak cik' &ckomutunu kullanabilirsiniz."));
                    return true;
                }
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aBedwars yatağı belirlendi. Lütfen sohbete bir takım rengi yazın:"));
                renkBelirleme = true;
                yatakBelirleme = true;
                konusmaDurumu = false;
                if(renkSecildi == true) {
                    renkBelirleme = false;
                    if(yatakRengi == "yeşil") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &2&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                    if(yatakRengi == "mavi") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &1&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                    if(yatakRengi == "sarı") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &6&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                    if(yatakRengi == "kırmızı") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &4&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                }
            }
        }
        return true;
    }

}
 

MegaCrafter

Obsidyen Madencisi
En iyi cevaplar
0
Beyler yeni kod göndercem şunada bi bakarmısınız hata var yine ya. (Zaten bi hata olmasa dişimi kıracağım :D)
Hata ise şu: blok koyma falan filan tamam ancak sohbette renk belirleme işlemi yaparken hiçbir yazı gelmemekte. Yani şöyle söyliyim: Şimdi ben bu eklentide yatağın rengini sohbete yazılacak yazı ile ayarlanacak şekilde ayarladım fakat rengi yazınca hiçbir yazı gelmiyor. Ne yaparsam yapıyım olmuyor. Sabahtan beri bunla uğraştım çıldıracağım artık. Lütfen yardım edermisiniz
Kod:
package com.minedream.genel.bedwars;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Project extends JavaPlugin implements Listener{
   
    boolean renkBelirleme = false;
    boolean renkSecildi = false;
    boolean yatakBelirleme = false;
    boolean konusmaDurumu = true;
    String yatakRengi;
   
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("BedWarsDream -- Yeni Nesil BedWars! v" + getDescription().getVersion());
        getLogger().info("BedWarsDream -- Eklenti aktif!");
    }
    public void onDisable() {
        getLogger().info("BedWarsDream - Eklenti kapanıyor, Görüşürüz...");
    }
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
        if(cmd.getName().equalsIgnoreCase("yatak")) {
            if(args.length == 0) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &cBu komut bir 'argument'siz kullanılamıyor."));
                return true;
            }
            if(args[0].equalsIgnoreCase("cik")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aYatak belirleme başarıyla kapatıldı."));
                yatakBelirleme = false;
                renkBelirleme = false;
                konusmaDurumu = true;
                if(konusmaDurumu == false) {
                    konusmaDurumu = true;
                    return true;
                }
            }
            if(args[0].equalsIgnoreCase("yardim")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &eBedwars v1.3b - By MrPoteyto - Sorun bildirmek için: &6MrPoyeyto"));
                return true;
            }
            if(args[0].equalsIgnoreCase("veriyenile")) {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aEklenti verileri başarıyla yenilendi."));
                renkSecildi = false;
                yatakRengi = null;
                yatakBelirleme = false;
                renkBelirleme = false;
                konusmaDurumu = true;
                return true;
            }
        }
        return true;
    }
    @EventHandler
    public void konustugunda(AsyncPlayerChatEvent e) {
        Player p = e.getPlayer();
        if(konusmaDurumu == false) {
            if(e.getMessage().contains("mavi") || e.getMessage().contains("kırmızı") || e.getMessage().contains("yeşil") || e.getMessage().contains("sarı")) {
                if(renkBelirleme == true) {
                    e.setCancelled(true);
                    renkSecildi = true;
                    yatakRengi = e.getMessage();
                }
            } else {
                e.setCancelled(true);
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &cLütfen sohbete şu 4 renkten birini yazın: &4&lKırmızı&c, &1&lMavi&c, &2&lYeşil&c, &6&lSarı"));
            }
        }
    }
    @EventHandler
    public boolean yatakMesajGonder(BlockPlaceEvent e) {
        Player p = e.getPlayer();
        Block b = e.getBlock();
        Location loc = b.getLocation();
        if(b.getType().equals(Material.GOLD_BLOCK)) {
            loc.setY(loc.getY() - 1);
            loc.setZ(loc.getZ() + 0.5);
            loc.setX(loc.getX() + 0.5);
            if(loc.getBlock().getType().equals(Material.DRAGON_EGG)) {
                if(yatakBelirleme == true) {
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &cZaten bir yatak belirliyorsun! Belirlemeden çıkmak için '&4/yatak cik' &ckomutunu kullanabilirsiniz."));
                    return true;
                }
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aBedwars yatağı belirlendi. Lütfen sohbete bir takım rengi yazın:"));
                renkBelirleme = true;
                yatakBelirleme = true;
                konusmaDurumu = false;
                if(renkSecildi == true) {
                    renkBelirleme = false;
                    if(yatakRengi == "yeşil") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &2&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                    if(yatakRengi == "mavi") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &1&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                    if(yatakRengi == "sarı") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &6&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                    if(yatakRengi == "kırmızı") {
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9MineDream &8> &aRenk belirlendi! Renk: &4&l" + yatakRengi));
                        renkSecildi = true;
                        yatakBelirleme = false;
                        renkBelirleme = false;
                        renkSecildi = false;
                        konusmaDurumu = true;
                    }
                }
            }
        }
        return true;
    }

}

Burada şöyle küçük bir hata var: renkSecildi == true dediğin yerde o kod senin chat'e yazı yazmanı beklemez. Sadece true ise o işlemleri yapar, true değilse o bloğu koyduğunla kalırsın. Eğer illaki bu şekilde yapmak istiyorsan repeating task ile adamın son yazdığı mesajı sürekli kontrol ettirmen gerekir ki yine task'ın mesaj algılandıktan sonra durması gerekeceğinden yine timer kullanman gerekebilir. Benim tavsiyem bence fazla zorlama. Zaten gece oldu biraz uyu :D

Uyuma kısmı dışında verebileceğim cevap bu :D
 

MrPoteyto

Is the excellence? Ok..
En iyi cevaplar
0
Beyler maalesef yeni bir sorun daha çıktı. Ben altın bloğunun üzerine yatak konulunca, o yatak bedwars yatağı olarak algılanacak şekilde ayarladım ancak BlockPlaceEvent eventinde altın bloğu üzene yatak koyduğumuzda olmuyor fakat çimen, taş, cam vs. gibi küp olan blokları koyarsak hiçbir sıkıntı olmuyor. Lütfen yardım edebilir misiniz.
 
Son düzenleme:

java10

kız çava bana kahve yap
En iyi cevaplar
0
Beyler maalesef yeni bir sorun daha çıktı. Ben altın bloğunun üzerine yatak konulunca, o yatak bedwars yatağı olarak algılanacak şekilde ayarladım ancak BlockPlaceEvent eventinde altının üstüne yatak koyduğumuzda olmuyor fakat çimen, taş, cam vs. gibi küp olan blokları koyarsak hiçbir sıkıntı olmuyor. Lütfen yardım edebilir misiniz.
blockplaceevent e koyma bed block olmayabilir, playerinteractevent i kullanmanı öneririm action == Action.RIGHT_CLICK_Block giib bir şey olmalı onu bul onunla yap
 

utkuak

Demir Madencisi
En iyi cevaplar
0
Beyler maalesef yeni bir sorun daha çıktı. Ben altın bloğunun üzerine yatak konulunca, o yatak bedwars yatağı olarak algılanacak şeklinde ayarladım ancak BlockPlaceEvent eventinde altının üstüne yatak koyduğumuzda olmuyor fakat çimen, taş, cam vs. gibi küp olan blokları koyarsak hiçbir sıkıntı olmuyor. Lütfen yardım edebilir misiniz.
Anlamadım altın blok küp değil mi? Tek diyebileceğim çok fazla içinde gold geçen materyal var, şöyle yazdığına emin ol:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
 

MrPoteyto

Is the excellence? Ok..
En iyi cevaplar
0
blockplaceevent e koyma bed block olmayabilir, playerinteractevent i kullanmanı öneririm action == Action.RIGHT_CLICK_Block giib bir şey olmalı onu bul onunla yap
O zaman altın bloğuna, yatak ile sağ tıkladığımız zaman direkt olarak kabul edecektir?
 
Üst