Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Там изи, писать нечего, отслеживать смещение блоков из листаНо у меня руки кривые((
Это был сарказмТам изи, писать нечего, отслеживать смещение блоков из листа
Можно ещё так было:Ценник: бесплатно
Время: сию же секунду
Скачать - https://yadi.sk/d/PS7sCdexz8f9w
Там изи, писать нечего, отслеживать смещение блоков из листа
private ArrayList<Material> lock = new ArrayList<>();
public void onEnable(){
saveDefaultConfig();
reloadConfig();
lock.addAll(config.getStringList("lock").stream().map(Material::valueOf).collect(Collectors.toList()));
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPiston(BlockPistonEvent e) {
lock.stream().filter(m -> e.getBlock().getType() == m).forEach(m -> e.setCancelled(true));
}
Слишком уж сложно, а грузит сервер так жеМожно ещё так было:
Java:private ArrayList<Material> lock = new ArrayList<>(); public void onEnable(){ saveDefaultConfig(); reloadConfig(); lock.addAll(config.getStringList("lock").stream().map(Material::valueOf).collect(Collectors.toList())); getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onPiston(BlockPistonEvent e) { lock.stream().filter(m -> e.getBlock().getType() == m).forEach(m -> e.setCancelled(true)); }
Ну, Java 8 по идее должна работать немного быстрее, но на практике проверить нет возможности.Слишком уж сложно, а грузит сервер так же
Издеваешься?Можно ещё так было:
Java:private ArrayList<Material> lock = new ArrayList<>(); public void onEnable(){ saveDefaultConfig(); reloadConfig(); lock.addAll(config.getStringList("lock").stream().map(Material::valueOf).collect(Collectors.toList())); getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onPiston(BlockPistonEvent e) { lock.stream().filter(m -> e.getBlock().getType() == m).forEach(m -> e.setCancelled(true)); }
if (lock.contains(e.getBlock().getType())) {
e.setCancelled(true);
}
lock.addAll(config.getStringList("lock").stream().map(Material::valueOf).collect(Collectors.toList()));
Вообще, я в логику кода не вчитывался, только заменил итераторы, ибо изначально код был таким(не учитывая мелкие погрешности декомпилятора):Издеваешься?
И вот тутJava:if (lock.contains(e.getBlock().getType())) { e.setCancelled(true); }Может возникнуть неприятный IllegalArgumentException (он же вроде там выбрасывается?), который сломает плагин, если там будет туфта какая ниб.Java:lock.addAll(config.getStringList("lock").stream().map(Material::valueOf).collect(Collectors.toList()));
Вывод - Stream API хоть и хорош, но не нужно его применять везде, где можно.
private List<Material> lock = new ArrayList();
public void onEnable() {
this.saveDefaultConfig();
this.reloadConfig();
Iterator var1 = this.getConfig().getStringList("Lock").iterator();
while(var1.hasNext()) {
String l = (String)var1.next();
this.lock.add(Material.valueOf(l));
}
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPitson(BlockPistonEvent e) {
Material material = e.getBlock().getType();
Iterator var3 = this.lock.iterator();
while(var3.hasNext()) {
Material m = (Material)var3.next();
if(material == m) {
e.setCancelled(true);
}
}
}
private ArrayList<String> lock = new ArrayList<>();
public void onEnable() {
saveDefaultConfig();
reloadConfig();
lock.addAll(getConfig().getStringList("lock"));
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPiston(BlockPistonEvent event) {
if(lock.contains(event.getBlock().getType().toString()))
event.setCancelled(true);
}
}
Мелкие?(не учитывая мелкие погрешности декомпилятора):
package com.dondays.pitsoncontrol;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPistonEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.List;
public class PitsonControl
extends JavaPlugin
implements Listener {
private List<Material> lock = new ArrayList<Material>();
@Override
public void onEnable() {
this.saveDefaultConfig();
this.reloadConfig();
for(String l : this.getConfig().getStringList("Lock")) {
this.lock.add(Material.valueOf(l));
}
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPitson(BlockPistonEvent e) {
Material material = e.getBlock().getType();
for(Material m : this.lock) {
if(material == m) {
e.setCancelled(true);
}
}
}
}
Не ожидал такого от fernflower'a😆Но сути не меняет, код плохой.Мелкие?
Код:package com.dondays.pitsoncontrol; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.plugin.java.JavaPlugin; import java.util.ArrayList; import java.util.List; public class PitsonControl extends JavaPlugin implements Listener { private List<Material> lock = new ArrayList<Material>(); @Override public void onEnable() { this.saveDefaultConfig(); this.reloadConfig(); for(String l : this.getConfig().getStringList("Lock")) { this.lock.add(Material.valueOf(l)); } Bukkit.getPluginManager().registerEvents(this, this); } @EventHandler public void onPitson(BlockPistonEvent e) { Material material = e.getBlock().getType(); for(Material m : this.lock) { if(material == m) { e.setCancelled(true); } } } }
СойдетНе ожидал такого от fernflower'a😆Но сути не меняет, код плохой.