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

Стартап Помощь в изучении языка Java

Тема в разделе "Разработка плагинов для новичков", создана пользователем D_ART, 21 июн 2012.

  1. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Если есть много свободного времени и еще больше желания - вполне можно справиться за половину месяца.
    Этого хватит, чтобы написать простенький плагин или приложение.
    А вот такие тонкости, как отличия между HashSet, TreeSet LinkedHashSet, работа с ClassLoader и рефлексиями, Оптимальные варианты чтения потока (stream), многопоточные методы и синхронизация - это все, конечно, важно и приходит с опытом. На усвоение таких моментов в java придется потратить год (минимум).
    Кстати, больше всего информации дают JavaDoc для необходимых классов и гугление по форумам типа stackoverflow.com. Намного больше, чем представленная в этой теме литература.
     
    fromgate нравится это.
  2. romabug

    romabug Активный участник

    Баллы:
    58
    Ну вроде как и желание имеется уже давно, да и время появилось. 4 дня в неделю свободен полностью и 3 только вечером пару часов. Ну что же, спасибо будем пробовать :)
    Начал Шилдта читать, чуть не уснул :D
     
    fromgate, Dereku и DPOH-VAR нравится это.
  3. ptnk

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

    Баллы:
    173
    Ты думал, что это как сказку читать? :D. Я вот, к примеру, Шилдта не читал, а читал Философию Java, т.к. c++ знал к тому моменту. Только в книге есть некоторые моменты-плюшки, которые без прочтения не сразу найдешь.
     
  4. Sasha2dx

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

    Баллы:
    88
    Имя в Minecraft:
    Sasha2dx
    Взялся за чтение книги "Герберт Шилдт - Полный справочник по Java SE 6" сто страниц прошёл уже. Вроде могу уже написать простенькие программы, как в примере в книжке выводящие всякий текст.:) До этого момента всё казалось простым и понятным. Но, дошёл до побитовых операций, и они для меня стали, как .. всякие синусы в школе.. вроде понятны, но какие то ужаснооооо неудобные, и на данном этапе я вообще не понимаю для чего такие могут пригодится.:) Вопрос: это нормально?) Вопрос #2: часто ли они используются в написании плагинов и какие преимущества дают?
     
  5. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Побитовые операции ( & | << >> ~ ) используются очень редко.
    В основном для поиска и формирования бинарной информации, например в криптографии.
    Я не встречал их ни в одном плагине.
    Пропускай.
     
    Sasha2dx нравится это.
  6. DJames

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

    Баллы:
    68
    Skype:
    xjameszzzx
    Имя в Minecraft:
    DJame5
    У меня получится рисовать елементы посредством Java библиотек?
    Мне нужно нарисовать свой графический елемент который будет открываться по даблклику на книгу.

    З.Ы. благодарен за любую помощь!
     
  7. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ты что! (getBlockX()>>4) - это же один из способов получения координаты чанка
     
    Sasha2dx нравится это.
  8. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Я бы использовал getBlockX()/16
    Хотя если подумать, то битами действительно проще высчитать позицию блока в чанке:
    cx - позиция чанка, bx - позиция блока в чанке
    x = cx<<4|bx
    x = cx*16+bx

    советую попробовать GUI API mod
    В любом случае, без модов не обойтись
     
    Sasha2dx нравится это.
  9. DJames

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

    Баллы:
    68
    Skype:
    xjameszzzx
    Имя в Minecraft:
    DJame5
    Есть ли такие умники которые пытались перекомпилить библиотеки Bukkit?
     
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Зачем?
     
    ВремяПриключений нравится это.
  11. Den-Xs

    Den-Xs Старожил Пользователь

    Баллы:
    103
    Skype:
    denis_314
    Есть )))
     
  12. DJames

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

    Баллы:
    68
    Skype:
    xjameszzzx
    Имя в Minecraft:
    DJame5
    Жить будет гораздо проще.
    И как?
     
  13. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Спрошу по-другому. Что тебе там нужно?
     
    Пароль123456789 нравится это.
  14. Den-Xs

    Den-Xs Старожил Пользователь

    Баллы:
    103
    Skype:
    denis_314
    Скачал исходники с гитхаба, изменил, откомпилировал
     
    DJames нравится это.
  15. DJames

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

    Баллы:
    68
    Skype:
    xjameszzzx
    Имя в Minecraft:
    DJame5
    Чудно, круто, класс!
    По мускулу вопрос, можно ли прогнать ResultSet через какой форИч что-бы получить все столбцы?

    и

    Код:
    private String connmsql(String query, Boolean execut){
                  String res="";
                  Connection connection;
                    try {
                        // Название драйвера
                        String driverName = "com.mysql.jdbc.Driver";
     
                        Class.forName(driverName);
     
                        // Create a connection to the database
                        String serverName = "localhost";
                        String mydatabase = "donateshop";
                        String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
                        String username = "root";
                        String password = "root";
     
                        connection = DriverManager.getConnection(url, username, password);
                   
                        Statement stmt = connection.createStatement();
                        if(execut){
                            ResultSet rs = stmt.executeQuery(query);
                            String dbtime;
                            while (rs.next()) {
                                res = rs.getString(1);
                                System.out.println(res);
                            }
                        }
                        else
                            stmt.executeUpdate(query);
     
                        connection.close();
                    } // end try
                    catch (ClassNotFoundException e) {
                        e.printStackTrace();
                        // Could not find the database driver
                    } catch (SQLException e) {
                        e.printStackTrace();
                        // Could not connect to the database
                    }
                  return res;
    private List<Integer> getBItems(String server){
                  List<Integer> items=new ArrayList<Integer>();
                  Connection connection;
                  try {
                        // Название драйвера
                        String driverName = "com.mysql.jdbc.Driver";
     
                        Class.forName(driverName);
     
                        // Create a connection to the database
                        String serverName = "localhost";
                        String mydatabase = "donateshop";
                        String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
                        String username = "root";
                        String password = "root";
     
                        connection = DriverManager.getConnection(url, username, password);
                     
                        Statement stmt = connection.createStatement();
                        ResultSet rs = stmt.executeQuery("SELECT * from `donateshopitem` where `server` = '"+server+"';");
                        String res;
                        while (rs.next()) {
                            items.add(rs.getInt(1));
                        }
     
                        connection.close();
                    } // end try
                    catch (ClassNotFoundException e) {
                        e.printStackTrace();
                        // Could not find the database driver
                    } catch (SQLException e) {
                        e.printStackTrace();
                        // Could not connect to the database
                    }
                  return items;
              }
              }    
    помогите составить этот метод так что-бы получился 1, а не 2
     
  16. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Делай rs.getInt("Название колонки")
     
  17. ptnk

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

    Баллы:
    173
    А почему бы для начала не ознакомиться с документацией по данному классу, посмотреть примеры в интернете?
     
  18. DJames

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

    Баллы:
    68
    Skype:
    xjameszzzx
    Имя в Minecraft:
    DJame5
    Не решает проблему.
    Ничего полезного не нашёл, в документации тоже.

    У меня нарисовался 3й такой метод :(.
    Мне нужен универсальный метод который будет обращаться к базе "и отвечать на все вопросы" =)

    @Den_Abr, если добавить свич и работать в зависимости от входных параметров то пойдёт, но это не решает проблему с возвращаемого типа.
     
  19. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Код:
                ResultSet result = ps2.executeQuery();
                while (result.next()) {
                    String itemname = result.getString(config.itemname);
                    String item = result.getString(config.item);
                    String enchantments = result.getString(config.enchantments);
                    String lore = result.getString(config.Lore);
                    int amount = result.getInt(config.amount);
                    int id = result.getInt("id");
                }
    Вот например мой код для плагина выдачи вещей из бд. Что тебе нужно, я не пойму
     
  20. DJames

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

    Баллы:
    68
    Skype:
    xjameszzzx
    Имя в Minecraft:
    DJame5
    У меня такой есть)
    Я хочу создать один для всех запросов к БД, два потолок.
    Метода.
     
    zuma2 нравится это.

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