Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [ADMN] ExpiringPrivilege v1.1 by MOR_IV - Временная Привилегия [?-1.6.4-?]

MOR_IV

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
MOR_IV
ExpiringPrivilege - Временная Привилегия
Переделанный мною плагин.
Автор не я - ссылка на тему автора:

http://www.rubukkit.org/threads/admin-expiringprivilege-v1-0-vremennaja-privilegija-1-7-5-r0-1.74374/

​
Версия: v1.1 by MOR_IV
Отличия от автора:
- Сделан упор на mysql
- Плагину не обязательное управление через игру/консоль.
- Полностью переделана система выдачи / аннулирования привилегий.
- Переделана структура базы mysql.
- Изменен конфиг файл.



Данный плагин даёт возможность добавлять игрока в указанную группу плагина PermissionsEX на указанное количество дней. После истечения дней, игрок автоматически удаляется из группы.

Особенности:
  • Временная привилегия.
  • Распределение привилегий по приоритету.
Требования:
  • MySQL - база данных
  • Плагин - PermissionsEX
Настройка конфигурационного файла:
  • DBHost: localhost - адрес для подключения к базе данных.
  • DBPort: 3306 - порт для подключения к базе данных.
  • DBName: minecraft - название базы данных.
  • DBUser: simpleUser - пользователь базы данных.
  • DBPass: hardPassword - пароль пользователя.
  • databaseTable: lprivilege - таблица БД.
  • playerColumn: user - колонка пользователя.
  • premGOLD: gold - название привилегии / колонка времени привилегии.
  • premDIAMOND: diamond - название привилегии / колонка времени привилегии.
  • premPLATINUM: platinum - название привилегии / колонка времени привилегии.
  • premPREMIUM: premium - название привилегии / колонка времени привилегии.
  • enableTimer: true - вкл/выкл пересчет пользователей каждые:
  • timer: 72000 - время пересчета пользователей (72000 = 1 час).
  • PexReload: false - перезагрузка PermissionsEX каждые "timer" (/pex reload).


Права/Команды:
  • expiringprivilege.add - использование команды /ep add <игрок> <премиум> <дни> - добавление игрока в список "Временная Привилегия". (пример /ep add user gold 30)
  • expiringprivilege.remove - использование команды /ep remove <игрок> - удаление игрока из списка "Временная Привилегия".
  • expiringprivilege.check - использование команды /ep check <игрок> - перепроверка игрока "вне очереди".
  • expiringprivilege.info- использование команды /ep info <игрок> - выводит список оставшихся дней временной привилегии.


Как пользоваться:

  • Плагин работает по приоритету. Если есть все аккаунты по дням, он берет Premium и расходует его, если нет, то Platinum , если нет Diamond и т.д.
  • Если все колонки пользователя в mysql = 0, то строка удаляется.
  • Работает через pex user group.
  • ВАЖНО:Для добавления привилегий через сайт, при каждом изменении таблицы mysql ставим значение "lastCheck" = 0, это дает плагину возможность подумать, убрать пользователя со старой группы и записать в новую.

​
Лог изменений:
v1.1 [1.6.4 - ?] 09.10.2014 г.

  • Тестовая версия 2.
  • переделана команда /ep add
  • добавлена возможность дать дни человеку у которого они уже есть
  • добавлена четвертая привилегия "premium"
  • добавлена команда /ep info <ник>
  • фикс багов. В частности с созданием таблицы плагина
при переходе с v1.0 желательно удалить конфиг файл или добавить в него "premPREMIUM: premium" В mysql удалить таблицу плагина.

v1.0 [1.6.4 - ?] 05.10.2014 г.
  • Тестовая версия.
  • Релиз.

​
 
Последнее редактирование:
я уже незнаю что и придумать для временных админок,хотелось бы автоматизировать
 
я уже незнаю что и придумать для временных админок,хотелось бы автоматизировать
Я взял webmcr + shop к нему аддоном. Переписал это все дело под 3 валюты и ещё и под выдачу премиум. На сервер поставил плагин EP и все.
 
писать все данные в файл,как это делает большинство плагинов, и вот тебе работа без MySql.
на 1.7.10 работает?
 
писать все данные в файл,как это делает большинство плагинов, и вот тебе работа без MySql.
на 1.7.10 работает?

Я потом сделаю возможность работы через фаил. На 1.7.10 должно по идее. Проверьте - отпишитесь.
 
странно, но конфиг не тот что написан в шапке......
Вот этого нет в конфиге:
  • databaseTable: lprivilege - таблица БД.
  • playerColumn: user - колонка пользователя.
  • premGOLD: gold - название привилегии / колонка времени привилегии.
  • premDIAMOND: diamond - название привилегии / колонка времени привилегии.
  • premPLATINUM: platinum - название привилегии / колонка времени привилегии.
  • enableTimer: true - вкл/выкл пересчет пользователей каждые:
  • timer: 72000 - время пересчета пользователей (72000 = 1 час).
  • PexReload: false - перезагрузка PermissionsEX каждые "timer" (/pex reload).
 
Эм.. Видимо не тот фаил дал
странно, но конфиг не тот что написан в шапке......
Вот этого нет в конфиге:
  • databaseTable: lprivilege - таблица БД.
  • playerColumn: user - колонка пользователя.
  • premGOLD: gold - название привилегии / колонка времени привилегии.
  • premDIAMOND: diamond - название привилегии / колонка времени привилегии.
  • premPLATINUM: platinum - название привилегии / колонка времени привилегии.
  • enableTimer: true - вкл/выкл пересчет пользователей каждые:
  • timer: 72000 - время пересчета пользователей (72000 = 1 час).
  • PexReload: false - перезагрузка PermissionsEX каждые "timer" (/pex reload).

Точно. Дал не ту ссыль. Сори. Поправил.
 
Вопрос, например игрок получил право не важно какое на 30 дней и заканчивается к примеру 31 октября. При повторном написании команды на выдачу права, добавляются 30 дней к действующему сроку(т.е право отключится 30 ноября) или стирает старый срок и добавляет новый(т.е право отключится 4 ноября)? Вот как-то так.
 
не подключается к бд.


Код:
2014-10-14 10:22:04 [INFO] [ExpiringPrivilege] Enabling ExpiringPrivilege v1.1
2014-10-14 10:22:04 [SEVERE] java.sql.SQLException: No suitable driver found for jdbc:mysql://172.17.62.101:3306/isp
2014-10-14 10:22:04 [SEVERE]     at java.sql.DriverManager.getConnection(Unknown Source)
2014-10-14 10:22:04 [SEVERE]     at java.sql.DriverManager.getConnection(Unknown Source)
2014-10-14 10:22:04 [SEVERE]     at ru.mor.iv.marick0073.ExpiringPrivilege.ExpiringPrivilege.openConnection(ExpiringPrivilege.java:297)
2014-10-14 10:22:04 [SEVERE]     at ru.mor.iv.marick0073.ExpiringPrivilege.ExpiringPrivilege.onEnable(ExpiringPrivilege.java:74)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:467)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugin(CraftServer.java:279)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.craftbukkit.v1_6_R3.CraftServer.enablePlugins(CraftServer.java:261)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.func_71243_i(MinecraftServer.java:522)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:486)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:429)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:225)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:637)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)
 
не подключается к бд.


Код:
2014-10-14 10:22:04 [INFO] [ExpiringPrivilege] Enabling ExpiringPrivilege v1.1
2014-10-14 10:22:04 [SEVERE] java.sql.SQLException: No suitable driver found for jdbc:mysql://172.17.62.101:3306/isp
2014-10-14 10:22:04 [SEVERE]     at java.sql.DriverManager.getConnection(Unknown Source)
2014-10-14 10:22:04 [SEVERE]     at java.sql.DriverManager.getConnection(Unknown Source)
2014-10-14 10:22:04 [SEVERE]     at ru.mor.iv.marick0073.ExpiringPrivilege.ExpiringPrivilege.openConnection(ExpiringPrivilege.java:297)
2014-10-14 10:22:04 [SEVERE]     at ru.mor.iv.marick0073.ExpiringPrivilege.ExpiringPrivilege.onEnable(ExpiringPrivilege.java:74)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:467)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugin(CraftServer.java:279)
2014-10-14 10:22:04 [SEVERE]     at org.bukkit.craftbukkit.v1_6_R3.CraftServer.enablePlugins(CraftServer.java:261)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.func_71243_i(MinecraftServer.java:522)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:486)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:429)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:225)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:637)
2014-10-14 10:22:04 [SEVERE]     at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)

Я подключаюсь в базе данных стандартным методом java.

Код:
import java.sql.Connection;
import java.sql.DriverManager;

public synchronized void openConnection()
  {
    try
    {
      this.databaseConnection = DriverManager.getConnection("jdbc:mysql://" + this.databaseHost + ":" + this.databasePort + "/" + this.databaseName, this.databaseUser, this.databasePassword);
      this.databaseConnection.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS " + this.databaseTable + " (" + this.playerColumn + " VARCHAR(40), " + this.premGOLD + " INT(3) DEFAULT '0', " + this.premDIAMOND + " INT(3) DEFAULT '0', " + this.premPLATINUM + " INT(3) DEFAULT '0', " + this.premPREMIUM + " INT(3) DEFAULT '0', " + this.playerLastCheckColumn + " INT(10) DEFAULT '0')");
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

А твой код говорит: at java.sql.DriverManager.getConnection(Unknown Source). То есть "Нет драйвера".
Копай свою java.
А и да. Мой плагин подключается так же как и у marick0073. Проверь от marick0073. Скорей всего та же ошибка будет.
 
Я подключаюсь в базе данных стандартным методом java.

Код:
import java.sql.Connection;
import java.sql.DriverManager;

public synchronized void openConnection()
  {
    try
    {
      this.databaseConnection = DriverManager.getConnection("jdbc:mysql://" + this.databaseHost + ":" + this.databasePort + "/" + this.databaseName, this.databaseUser, this.databasePassword);
      this.databaseConnection.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS " + this.databaseTable + " (" + this.playerColumn + " VARCHAR(40), " + this.premGOLD + " INT(3) DEFAULT '0', " + this.premDIAMOND + " INT(3) DEFAULT '0', " + this.premPLATINUM + " INT(3) DEFAULT '0', " + this.premPREMIUM + " INT(3) DEFAULT '0', " + this.playerLastCheckColumn + " INT(10) DEFAULT '0')");
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

А твой код говорит: at java.sql.DriverManager.getConnection(Unknown Source). То есть "Нет драйвера".
Копай свою java.
А и да. Мой плагин подключается так же как и у marick0073. Проверь от marick0073. Скорей всего та же ошибка будет.

и так та же ошибка, писал в теме...

что мне нужно сделать? Java7 стоит
 
У тебя в сервере должны лежать драйвера:
lib/mysql.jar
lib/mysql-connector-java-bin.jar
libraries/mysql/mysql-connector-java/*.*.**/mysql-connector-java-*.*.**.jar

Есть такие?
Еще как вариант - с лупой проверить данные подключения.
удалить из "DBName" - "databaseTable"
 

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

Назад
Верх