Skocz do zawartości
  • 0

Jak to dodać ?


MateoxPL
 Udostępnij

Pytanie

Witam
jak dodać opcję do tego codu, że gdy gracz się teleportuje to anuluje pobieranie głodu z paska
 

 package me.pxl.events;
import java.util.List;
import me.pxl.FoodToSprint;
import me.pxl.Settings;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.FoodLevelChangeEvent;
public class Sprint implements org.bukkit.event.Listener
{
   public static FoodToSprint main;
  
   public Sprint(FoodToSprint se)
   {
     main = se;
    
     Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable()
     {
       public void run()
       {
         java.util.Collection<? extends Player> online_players = Bukkit.getOnlinePlayers();
         for (Player p : online_players) {
           if ((p != null) && (p.isOnline()))
           {
             if (p.hasPermission("fts.use"))
             {
               if (!Settings.disabledWorlds.contains(p.getWorld().getName()))
               {
                 int foodReduceAmount = me.pxl.Utils.getFoodReduceAmount(p).intValue();
                
                 if ((p.isSprinting()) &&
                   (!p.isDead()) &&
                   (p.getGameMode() != GameMode.CREATIVE) &&
                   (p.getGameMode() != GameMode.SPECTATOR))
                 {
                   p.setFoodLevel(p.getFoodLevel() - foodReduceAmount); }
               } } }
         }
       }
     }, 0L, Settings.ticksBetweenReduce);
    
     Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable()
     {
       public void run()
       {
         java.util.Collection<? extends Player> online_players = Bukkit.getOnlinePlayers();
         for (Player p : online_players) {
           if ((p != null) && (p.isOnline()))
           {
             if (p.hasPermission("fts.use"))
             {
               if (!Settings.disabledWorlds.contains(p.getWorld().getName()))
               {
                 int foodRecoverAmount = me.pxl.Utils.getFoodRecoverAmount(p).intValue();
                
                 if ((!p.isSprinting()) &&
                   (p.getFoodLevel() != 20))
                 {
                   p.setFoodLevel(p.getFoodLevel() + foodRecoverAmount); }
               } } }
         }
       }
     }, 0L, Settings.ticksBetweenRecover);
   }
  
   @org.bukkit.event.EventHandler
   public void foodLevelChange(FoodLevelChangeEvent e) {
     if (!Settings.disableOtherFoodRegen) return;
     if ((e.getEntity() instanceof Player)) {
       if (Settings.disabledWorlds.contains(((Player)e.getEntity()).getWorld().getName())) return;
       e.setCancelled(true);
     }
   }
}
 

 

Odnośnik do komentarza
Udostępnij na innych stronach

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0
     Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable()
     {
       public void run()
       {
         java.util.Collection<? extends Player> online_players = Bukkit.getOnlinePlayers();
         for (Player p : online_players) {
           if ((p != null) && (p.isOnline()))
           {
             if (p.hasPermission("fts.use"))
             {
               if (!Settings.disabledWorlds.contains(p.getWorld().getName()))
               {

uzywaj lambd i streamow.. do tego te niepotrzebne ify i nie wiem skad wziales ta kolekcje xd

Bukkit.getOnlinePlayers()
  .stream()
  .filter(player -> player.hasPermission("permisja") && anotherCondition)
  .forEach(player -> {
  
  });

Podczas jakiego teleportowania?

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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