Çözüldü GriefPrevention Claim silince blok kaybetme

  • Konuyu Başlatan Konuyu Başlatan bolib945
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 325
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

bolib945

Zombi Geldi, Beni Yedi
Katılım
16 Mayıs 2021
Mesajlar
245
Elmaslar
16
Puan
6.630
Minecraft
bolib945
Merhabalar, claimi silince belli bir % ile claim bloğu kaybetmesini sağlayabilir miyim?
 
Eklenti özelinde böyle bir özellik bulunmuyor maalesef. Ancak skript veya özel eklenti yardımıyla bunu yapabilirsiniz
 
Yapay zekaya skript yazdırırken söyledi. config kısmında AbandonReturnRatio: 0.8 kısmı var bu kısımdan ayarlanıyor. (0.8 demek %20 kayıp %80 geri verilecek demek.)
 
Yapay zekaya skript yazdırırken söyledi. config kısmında AbandonReturnRatio: 0.8 kısmı var bu kısımdan ayarlanıyor. (0.8 demek %20 kayıp %80 geri verilecek demek.)
Yıllardır kullanıyor olmama rağmen böyle bir ayarı ilk kez görüyorum, o yüzden yanlış bir bilgi verdiysem kusuruma bakmayın lütfen.
İyi forumlar dilerim.
 
Yıllardır kullanıyor olmama rağmen böyle bir ayarı ilk kez görüyorum, o yüzden yanlış bir bilgi verdiysem kusuruma bakmayın lütfen.
İyi forumlar dilerim.
Estağfurullah hocam, iyi forumlar.
 
Java:
import me.ryanhamshire.GriefPrevention.events.ClaimDeletedEvent;
import me.ryanhamshire.GriefPrevention.Claim;
import me.ryanhamshire.GriefPrevention.PlayerData;
import me.ryanhamshire.GriefPrevention.GriefPrevention;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Random;

public class ClaimBlockLossPlugin extends JavaPlugin implements Listener {

    private final Random random = new Random();

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onClaimDeleted(ClaimDeletedEvent event) {
        if (event.getOwnerID() == null) return;

        PlayerData playerData = GriefPrevention.instance.dataStore.getPlayerData(event.getOwnerID());

        if (playerData == null) return;

        double chance = 0.3;

        if (random.nextDouble() < chance) {
            Claim claim = event.getClaim();

            int blocksLost = claim.getArea();

            int currentAccrued = playerData.getAccruedClaimBlocks();

            int newAccrued = currentAccrued - blocksLost;
            if (newAccrued < 0) newAccrued = 0;

            playerData.setAccruedClaimBlocks(newAccrued);
            getServer().getPlayer(event.getOwnerID()).sendMessage("Hey sen! " + blocksLost + " claim hakkını claimini sildiğinden dolayı kaybettin!");
        }
    }
}
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst