Помогите Смена погоды

adodvstudios

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Jenka20091
Нужна смена погоды только чтобы она была 5 на 5 блоков. То есть у игрока дождь на острове, а у других солнце
 
Вряд ли прям так можно, ты можешь посмотреть команды из essentials , которые ставят погоду игроку лично(визуально) и с этим дальше работать.
 
PHP:
package com.earth2me.essentials.commands;

import com.earth2me.essentials.ChargeException;
import com.earth2me.essentials.CommandSource;
import com.earth2me.essentials.I18n;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.IUser;
import com.earth2me.essentials.User;
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.StringJoiner;
import net.ess3.api.MaxMoneyException;
import org.bukkit.Server;
import org.bukkit.WeatherType;

public class Commandpweather extends EssentialsLoopCommand {
  private static final List<String> getAliases = Arrays.asList(new String[] { "get", "list", "show", "display" });
 
  private static final Map<String, WeatherType> weatherAliases = new HashMap<>();
 
  static {
    weatherAliases.put("sun", WeatherType.CLEAR);
    weatherAliases.put("clear", WeatherType.CLEAR);
    weatherAliases.put("storm", WeatherType.DOWNFALL);
    weatherAliases.put("thunder", WeatherType.DOWNFALL);
  }
 
  public Commandpweather() {
    super("pweather");
  }
 
  public void run(Server server, CommandSource sender, String commandLabel, String[] args) throws Exception {
    if (args.length == 0 || getAliases.contains(args[0].toLowerCase())) {
      if (args.length > 1) {
        if (args[1].equals("*") || args[1].equals("**"))
          sender.sendMessage(I18n.tl("pWeatherPlayers", new Object[0]));
        loopOnlinePlayersConsumer(server, sender, false, true, args[1], player -> getUserWeather(sender, (IUser)player));
        return;
      }
      if (args.length == 1 || sender.isPlayer()) {
        if (sender.isPlayer()) {
          getUserWeather(sender, (IUser)sender.getUser((IEssentials)this.ess));
          return;
        }
        throw new NotEnoughArgumentsException();
      }
      if (this.ess.getOnlinePlayers().size() > 1)
        sender.sendMessage(I18n.tl("pWeatherPlayers", new Object[0]));
      for (User player : this.ess.getOnlineUsers())
        getUserWeather(sender, (IUser)player);
    }
    if (args.length > 1 && !sender.isAuthorized("essentials.pweather.others", (IEssentials)this.ess) && !args[1].equalsIgnoreCase(sender.getSelfSelector())) {
      sender.sendMessage(I18n.tl("pWeatherOthersPermission", new Object[0]));
      return;
    }
    String weather = args[0].toLowerCase();
    if (!weatherAliases.containsKey(weather) && !weather.equalsIgnoreCase("reset"))
      throw new NotEnoughArgumentsException(I18n.tl("pWeatherInvalidAlias", new Object[0]));
    StringJoiner joiner = new StringJoiner(",");
    loopOnlinePlayersConsumer(server, sender, false, true, (args.length > 1) ? args[1] : sender.getSelfSelector(), player -> {
          setUserWeather(player, weather);
          joiner.add(player.getName());
        });
    if (weather.equalsIgnoreCase("reset")) {
      sender.sendMessage(I18n.tl("pWeatherReset", new Object[] { joiner.toString() }));
      return;
    }
    sender.sendMessage(I18n.tl("pWeatherSet", new Object[] { weather, joiner.toString() }));
  }
 
  private void getUserWeather(CommandSource sender, IUser user) {
    if (user == null)
      return;
    if (user.getBase().getPlayerWeather() == null) {
      sender.sendMessage(I18n.tl("pWeatherNormal", new Object[] { user.getName() }));
      return;
    }
    sender.sendMessage(I18n.tl("pWeatherCurrent", new Object[] { user.getName(), user.getBase().getPlayerWeather().toString().toLowerCase(Locale.ENGLISH) }));
  }
 
  private void setUserWeather(User user, String weatherType) {
    if (weatherType.equalsIgnoreCase("reset")) {
      user.getBase().resetPlayerWeather();
      return;
    }
    user.getBase().setPlayerWeather(weatherAliases.get(weatherType));
  }
 
  protected List<String> getTabCompleteOptions(Server server, User user, String commandLabel, String[] args) {
    if (args.length == 1)
      return Lists.newArrayList((Object[])new String[] { "get", "reset", "storm", "sun" });
    if (args.length == 2 && (getAliases.contains(args[0]) || user == null || user.isAuthorized("essentials.pweather.others")))
      return getPlayers(server, user);
    return Collections.emptyList();
  }
 
  protected void updatePlayer(Server server, CommandSource sender, User user, String[] args) {}
}

Ничего не понял :)
 
Последнее редактирование:
Назад
Верх