1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Бесплатные уроки по джаве или программиста с огнем не сыщишь? Опрос и комментарии ждем!

Тема в разделе "Оффтопик", создана пользователем exsperto1, 25 апр 2018.

?

Стоит ли записывать уроки по java?

Голосование закрыто 27 апр 2018.
  1. Да

    11 голосов
    61,1%
  2. Нет

    7 голосов
    38,9%
  1. ( Aristotrus )

    ( Aristotrus ) Активный участник Пользователь

    Баллы:
    76
    Делай уроки) Давно хотел научиться чему то, но амому с обычной джавы на API bukkit/ spigot лень учиться
     
  2. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Ну с таким отношением ты ничему и не научишься
     
  3. Roots

    Roots Активный участник Пользователь

    Баллы:
    76
    Для начало нужно java SE знать что бы что то кодировать ))
     
  4. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Тааак, вот и первые кодеры пошли. Для справки:
    Если возникли вопросы по терминологии — гугл в помощь, поскольку это базовые знания.
     
  5. Roots

    Roots Активный участник Пользователь

    Баллы:
    76
    Я считаю нужно учить java SE / Я раз наткнулся на водный урок по java и там тип говорил по java SE. EE и т д
    PS. под слово учить java. А какую ? .Вот подскажи какую учить ? /Если сильный програмист
    Код:
    Внутри Java существует несколько основных семейств технологий:
    
    Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
    Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия.
    Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например, в мобильных телефонах, КПК, встроенных системах;
    Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объёмом памяти и возможностями обработки.
    знания.[/QUOTE]
     
  6. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    [/QUOTE]
    Ля ну логично что когда кто то говорит что учит яву, это об ява SE
     
  7. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Я вообще не программист, но немного понимаю. Код прочитать, по крайней мере, смогу. И говоря "учить java" имеют ввиду именно SE. ME — дополнительные либы для мобилок, EE — дополнительные либы для enterprise (не совсем уверен, что это стоит называть предприятием, в любом случае это сложнее SE).
    SE — стандарт, просто Java. А для майнкрафта тебе надо знать синтаксис языка, принцип алгоритма, хотя-бы линейное построение и bukkit api.
    Да, вопросов ещё больше, но опять — гугл в помощь, если какие-то термины тебе непонятны. Опять же, я не программист, не пишу плагины или что-либо на java. Просто знаком с ней от других людей-кодеров, всё. Все вопросы в гугл.
     
  8. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    может они просто на reactivex пишут)
     
  9. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    76
    Да что ты тут устроил то? Хочешь делать уроки - делай, не хочешь - не делай. Придурков по типу феинта стоит спрашивать в последнюю очередь.
    Ты должен понимать, что твои уроки особо популярными не будут, как и все уроки по программированию, к тому же по какому-то узкоспециализированному BukkitAPI, особенно учитывая то, что материала по этой теме полно. Тем не менее, пытаясь научить кого-то, сам сможешь отлично укрепить знания в этой области.
    И ещё раз, ты ведь эти уроки продавать не будешь? Или, может, будешь заставлять кого-то смотреть твои видео?
    Конечно нет. Поэтому записывать и выкладывать тебе никто не запретит, а вот смотреть или нет - личное дело каждого.
     
  10. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Плюсую
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Есть у меня пару полезностей.
    Код:
    package Example;
    
    import java.util.Map;
    import java.util.Set;
    
    import org.bukkit.Bukkit;
    import org.bukkit.World;
    import org.bukkit.entity.Player;
    
    import com.sk89q.minecraft.util.commands.CommandContext;
    import com.sk89q.minecraft.util.commands.CommandException;
    import com.sk89q.worldedit.BlockVector;
    import com.sk89q.worldedit.EditSession;
    import com.sk89q.worldedit.LocalSession;
    import com.sk89q.worldedit.Vector;
    import com.sk89q.worldedit.WorldEdit;
    import com.sk89q.worldedit.WorldEditException;
    import com.sk89q.worldedit.blocks.BaseBlock;
    import com.sk89q.worldedit.bukkit.WorldEditPlugin;
    import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
    import com.sk89q.worldedit.bukkit.selections.Polygonal2DSelection;
    import com.sk89q.worldedit.bukkit.selections.Selection;
    import com.sk89q.worldedit.patterns.Pattern;
    import com.sk89q.worldedit.patterns.SingleBlockPattern;
    import com.sk89q.worldedit.regions.CuboidRegion;
    import com.sk89q.worldedit.regions.Region;
    import com.sk89q.worldguard.LocalPlayer;
    import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    import com.sk89q.worldguard.domains.DefaultDomain;
    import com.sk89q.worldguard.protection.ApplicableRegionSet;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
    import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    
    public class wg {
        protected static WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard");
        protected static WorldEditPlugin we = (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit");
    
        public static void get(Player player, String id, World world) throws CommandException {
            LocalPlayer localPlayer = wg.wrapPlayer(player);
            RegionManager manager = wg.getRegionContainer().get(world);
            checkRegionDoesNotExist(manager, id, false);
            checkRegionId(id, false);
            ApplicableRegionSet regions = manager.getApplicableRegions(checkRegionFromSelection(player, id));
            if (regions.size() > 0) {
                if (!regions.isOwnerOfAll(localPlayer)) {
                    throw new CommandException("Эта область перекрывается с чужой областью.");
                }
            }
        }
    
        private static Selection checkSelection(Player player) throws CommandException {
            WorldEditPlugin worldEdit = WorldGuardPlugin.inst().getWorldEdit();
            Selection selection = worldEdit.getSelection(player);
            if (selection == null) {
                throw new CommandException(
                        "Сначала выберите область. Используйте WorldEdit, чтобы сделать выбор! (wiki: http://wiki.sk89q.com/wiki/WorldEdit).");
            }
            return selection;
        }
    
        private static ProtectedRegion checkRegionFromSelection(Player player, String id) throws CommandException {
            Selection selection = checkSelection(player);
            if ((selection instanceof Polygonal2DSelection)) {
                Polygonal2DSelection polySel = (Polygonal2DSelection) selection;
                int minY = polySel.getNativeMinimumPoint().getBlockY();
                int maxY = polySel.getNativeMaximumPoint().getBlockY();
                return new ProtectedPolygonalRegion(id, polySel.getNativePoints(), minY, maxY);
            }
            if ((selection instanceof CuboidSelection)) {
                BlockVector min = selection.getNativeMinimumPoint().toBlockVector();
                BlockVector max = selection.getNativeMaximumPoint().toBlockVector();
                return new ProtectedCuboidRegion(id, min, max);
            }
            throw new CommandException(
                    "К сожалению, вы можете использовать только кубоиды и полигоны для регионов WorldGuard.");
        }
    
        private static String checkRegionId(String id, boolean allowGlobal) throws CommandException {
            if (!ProtectedRegion.isValidId(id)) {
                throw new CommandException("Название области '" + id + "' содержит символы, которые не разрешены.");
            }
            if ((!allowGlobal) && (id.equalsIgnoreCase("__global__"))) {
                throw new CommandException("Извините, здесь вы не можете использовать __global__.");
            }
            return id;
        }
    
        private static void checkRegionDoesNotExist(RegionManager manager, String id, boolean mayRedefine)
                throws CommandException {
            if (manager.hasRegion(id)) {
                throw new CommandException("Область с таким именем уже существует. Выберите другое имя."
                        + (mayRedefine ? " Чтобы изменить форму, используйте / region redefine " + id + "." : ""));
            }
        }
    
        public void replaceNear(Player p, CommandContext args) throws WorldEditException {
            com.sk89q.worldedit.entity.Player player = we.wrapPlayer(p);
            LocalSession session = we.getSession(p);
            EditSession editSession = we.createEditSession(p);
            int size = Math.max(1, args.getInteger(0));
            int affected;
            Set<BaseBlock> from;
            Pattern to;
            if (args.argsLength() == 2) {
                from = null;
                to = WorldEdit.getInstance().getBlockPattern(player, args.getString(1));
            } else {
                from = WorldEdit.getInstance().getBlocks(player, args.getString(1), true, !args.hasFlag('f'));
                to = WorldEdit.getInstance().getBlockPattern(player, args.getString(2));
            }
            Vector base = session.getPlacementPosition(player);
            Vector min = base.subtract(size, size, size);
            Vector max = base.add(size, size, size);
            Region region = new CuboidRegion(player.getWorld(), min, max);
            if (to instanceof SingleBlockPattern) {
                affected = editSession.replaceBlocks(region, from, ((SingleBlockPattern) to).getBlock());
            } else {
                affected = editSession.replaceBlocks(region, from, to);
            }
            player.print(affected + " block(s) have been replaced.");
        }
    
        protected static RegionManager checkRegionManager(WorldGuardPlugin plugin, World world) throws CommandException {
            if (!plugin.getGlobalStateManager().get(world).useRegions) {
                throw new CommandException("Region support is disabled in the target world. "
                        + "It can be enabled per-world in WorldGuard's configuration files. "
                        + "However, you may need to restart your server afterwards.");
            }
    
            RegionManager manager = plugin.getRegionContainer().get(world);
            if (manager == null) {
                throw new CommandException("Region data failed to load for this world. "
                        + "Please ask a server administrator to read the logs to identify the reason.");
            }
            return manager;
        }
       
        public static void test(Player player, World world) throws CommandException {
            RegionManager manager = checkRegionManager(wg, world);
            Map<String, ProtectedRegion> regions = manager.getRegions();
            for (String id : regions.keySet()) {
                ProtectedRegion region = regions.get(id);
                DefaultDomain owners = region.getOwners();
                System.out.println("uuid " + owners.contains(player.getUniqueId()));
                System.out.println("name " + owners.contains(player.getName()));
            }
        }
    }
    https://github.com/alexandrage/WGFlags
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Думаю найдешь то что тебе нужно.
     
  13. Автор темы
    exsperto1

    exsperto1 Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    GrayFox
    Благодарю всем за ответы, видеоуроки приготовлю и выложу в ближайшее время, 4 празничных дня мне не хватило, так как нужно еще подготовить методичку и домашние задания.
    Тему закрываю, следите за новостями.
    Ага, аж 20 раз закрыл тему...

    [​IMG]
     
  14. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Если я смог сюда написать - ты хотя бы пытался)
     

Поделиться этой страницей