Advertisement
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

PocketMine-MP - Разработка

Comments in 'Pyccĸий' started by IronPony, May 11, 2014.

  1. must_
    Offline

    must_ Active Member

    Joined:
    Aug 23, 2013
    Posts:
    139
    Minecraft User:
    must
    Тоесть я хотел сказать что щас некоторые выкладывают плагины под старое апи,но щас все уже изменилось.
  2. vanya
    Offline

    vanya New Member

    Joined:
    May 12, 2014
    Posts:
    16
    Minecraft User:
    vanzar
    Ха у меня вопрос как может быть нашествие школоты ,когда у них нет кошельков и никто почти несмотрит эти стати
  3. must_
    Offline

    must_ Active Member

    Joined:
    Aug 23, 2013
    Posts:
    139
    Minecraft User:
    must
    Бывают и прошарянные школо задроты. им отчасти 13-14 лет и они считают что прочитав коротенькую статью считают себя богами.
    Обитают в различных пабликах и играх. типо майнкрафт или доты. часто встераются богачи 10 лет которым купили ps4
  4. mamayadesu
    Offline

    mamayadesu Active Member Plugin Developer

    Joined:
    Sep 19, 2013
    Posts:
    146
    Plugins:
    4
    Minecraft User:
    mamayadesu
    Есть ли инструкция как портировать плагин под версию PocketMine 1.4? Создал plugin.yml, поместил свой плагин, то есть главный класс в /plugins/название_плагина/src/ и прописал путь до класса в plugin.yml, скачал один плагин, посмотрел как главный класс плагина должен начинаться, попробовал прописать то же в своём плагине, запустил - краш сервера.
  5. must_
    Offline

    must_ Active Member

    Joined:
    Aug 23, 2013
    Posts:
    139
    Minecraft User:
    must
    если знаешь english wery well so тебе по ссылке по той ссылке https://github.com/PocketMine/Documentation/wiki/Plugin-Tutorial
  6. vanya
    Offline

    vanya New Member

    Joined:
    May 12, 2014
    Posts:
    16
    Minecraft User:
    vanzar
    Кто поможет мне мой плагин на 0.9x перезаписть??
  7. Kail1211
    Offline

    Kail1211 New Member

    Joined:
    Aug 28, 2014
    Posts:
    1
    Minecraft User:
    Kail1211
    люди такой вопрос,разрабы. поленились или еще не сделали нормальную генерацию мира в 0.9.1.просто летаю по миру и вижу один и тот же пейзаж уже просто за**ало!
  8. xpyctum
    Offline

    xpyctum Active Member Plugin Developer

    Joined:
    Jan 13, 2014
    Posts:
    292
    Plugins:
    4
    Minecraft User:
    tylerdisney
    Код плагина в студию.
    Спасибо, кэп. Читайте изменения.
    Портировать любой плагин легко. Главное - понять что да как.
    Ты очень глубокого ошибаешься насчет кошельков..
  9. vanya03
    Offline

    vanya03 New Member

    Joined:
    Sep 7, 2014
    Posts:
    13
    Я vanya просто пароль забыл , приведи хоть один кошелек бе указания паспортных данных
  10. must_
    Offline

    must_ Active Member

    Joined:
    Aug 23, 2013
    Posts:
    139
    Minecraft User:
    must
    хочу вас поправить. школота бывает даже старше 13 лет. только умные школо люди могупорыскать на киви или в вебмани
  11. mamayadesu
    Offline

    mamayadesu Active Member Plugin Developer

    Joined:
    Sep 19, 2013
    Posts:
    146
    Plugins:
    4
    Minecraft User:
    mamayadesu
    Конечно, если смотреть со стороны 1.4 Alpha, то это говнокод который вообще не будет работать, но я сразу пишу это была всего лишь попытка.
    PHP:
    namespace dsquareschat;

    use 
    pocketmine\command\Command;
    use 
    pocketmine\command\CommandSender;
    use 
    pocketmine\plugin\PluginBase;
    use 
    pocketmine\utils\TextFormat;
    use 
    pocketmine\Player;
    use 
    pocketmine\Server;
    use 
    pocketmine\event\player\PlayerDeathEvent;
    use 
    pocketmine\event\Listener;
    use 
    pocketmine\level\Position;
    use 
    pocketmine\level\Level;
    use 
    pocketmine\event\TimingsHandler;
    use 
    pocketmine\command\CommandExecutor;
    use 
    pocketmine\command\CommandReader;
    use 
    pocketmine\command\PluginCommand;
    use 
    pocketmine\command\SimpleCommandMap;
    use 
    pocketmine\command\FormattedCommandAlias;
    use 
    pocketmine\event\player\PlayerChatEvent;

    class 
    dsquareschat extends PluginBase implements Listener{
    private 
    $api$server$config$path$players$pconfig;
    public function 
    __construct(ServerAPI $api$server =false){
    $this->api =$api;
    $this->server =ServerAPI::request();
    }
    public function 
    init(){
    if(!
    file_exists(DATA_PATH.'plugins/PermissionPlus/config.yml')){
    console('[ERROR] [D-Squares] PermissionPlus config not found');
    return 
    false;
    }
    $this->api->addHandler('player.chat', array($this'playerchat'));
    $this->api->addHandler('player.join', array($this'playerjoin'));
    $this->api->addHandler('player.quit', array($this'playerquit'));
    $this->api->addHandler('console.command.tell', array($this'commandtell'), 2);
    $this->api->console->register("cc""Chat control commands", array($this"cccommand"));
    $this->api->console->register("r""Quickly reply the last player messaged you", array($this"tellcommands"));
    $this->path =$this->api->plugin->configPath($this);
    $this->config =new Config($this->path."config.yml"CONFIG_YAML, array( 'ChatIntervalProtection' => array( 'Enabled' => false'IntervalTime' => 10, ),'PlayerCanMuteChat' => array( 'Enabled' => false'MutesBroadcastMsg' => false, ),));
    $this->config =$this->api->plugin->readYAML($this->path ."config.yml");
    $this->reload();
    if(
    $this->config['PlayerCanMuteChat']['Enabled'] == true){
    $this->api->console->register("mute""Hide the chat", array($this"mute"));
    $this->api->console->register("unmute""Display the chat again", array($this"mute"));
    $this->api->ban->cmdWhitelist("mute");
    $this->api->ban->cmdWhitelist("unmute");
    }
    if(
    $this->config['PlayerCanMuteChat']['MutesBroadcastMsg'] == true){
    $this->api->addHandler('server.chat', array($this'serverchat'), 2);
    }
    $this->bannedplayers =new Config($this->path."bannedplayers.txt"CONFIG_LIST);
    $this->bannedplayers =$this->api->plugin->readYAML($this->path ."bannedplayers.txt");
    $this->players =array();
    $this->muted =false;
    }

    public function 
    tellcommands($cmd$args$issuer){
    if(!
    $issuer instanceof Player){
    $output ='Run this command ingame';
    return 
    $output;
    }
    $username =$issuer->username;
    switch(
    $cmd){
    case 
    'tell':if(!isset($args[0])){
    if(
    $this->players[$username]['tell'] === false){
    $output ='Usage /tell <player> <msg>';
    }
    else{
    $this->players[$username]['tell'] =false;
    $output ='you ended the personal conversation with '.$this->players[$username]['tell'];
    }
    break;
    }
    $name =$args[0];
    if(!isset(
    $args[1])){
    if(!isset(
    $this->players[$name])){
    $output =$name." doesn't exist";
    break;
    }
    $this->players[$username]['tell'] =$name;
    $output ='You started a personal conversation with '.$name."
    "
    ;
    $output .= 'Use /tell to stop the converstation';
    break;
    }
    if(!isset(
    $this->players[$name])){
    if(
    $this->players[$username]['tell'] != false){
    $this->players[$username]['tell'] =false;
    $output =$name." isn't online anymore, personal converstation stopped";
    }
    else{
    $output =$name." isn't online";
    }
    break;
    }
    $msg =(string)implode(' ',array_slice($args1));
    $this->api->chat->sendTo(false'<'.$username.' -> you> '.$msg$name);
    $this->api->chat->sendTo(false'<you -> '.$name.'> '.$msg$username);
    console('[chat] <'.$username.' -> '.$name.'> '.$msg);
    $this->players[$name]['lastpmsg'] =$username;
    return;
    break;
    case 
    'r':if($this->players[$username]['lastpmsg'] == false){
    $output ='No player sent you a message';
    break;
    }
    $name =$this->players[$username]['lastpmsg'];
    if(!isset(
    $args[0])){
    $this->players[$username]['tell'] =$name;
    $output ='You started a personal conversation with '.$name."
    "
    ;
    $output .= 'Use /tell to stop the converstation';
    break;
    }
    if(!isset(
    $this->players[$name])){
    $output =$name." isn't online anymore";
    break;
    }
    $msg =(string)implode(' ',$args);
    $this->api->chat->sendTo(false'<'.$username.' -> you> '.$msg$name);
    $this->api->chat->sendTo(false'<you -> '.$name.'> '.$msg$username);
    console('[chat] <'.$username.' -> '.$name.'> '.$msg);
    $this->players[$name]['lastpmsg'] =$username;
    return;
    break;
    }
    $issuer->sendChat($output);
    return;
    }
    public function 
    commandtell($data){
    if((
    $data['cmd'] === 'tell') || ($data['cmd'] === 'r')){
    $this->tellcommands($data['cmd'], $data['parameters'], $data['issuer']);
    return 
    true;
    }
    }
    public function 
    mute($cmd$args$issuer){
    if(!
    $issuer instanceof Player){
    $output ='Run this command ingame';
    return 
    $output;
    }
    $username =$issuer->username;
    switch(
    $cmd){
    case 
    'mute':$this->players[$username]['mute'] =1;
    $this->api->chat->sendTo(false"[D-Squares] You hide the chat"$username);
    break;
    case 
    'unmute':$this->players[$username]['mute'] =0;
    $this->api->chat->sendTo(false"[D-Squares] Show the chat again"$username);
    break;
    }
    }
    public function 
    cccommand($cmd$args$issuer){
    $username =$issuer->username;
    switch (
    $args[0]) {
    case 
    'ban': case 'unban':if (!isset($args[1])) {
    $output ='[D-Squares] Usage: /cc <ban|unban> <player>';
    break;
    }
    $name =strtolower ($args[1]);
    if (
    in_array($this->bannedplayers$name)) {
    $output ="[D-Squares] Player already in the chatbanlist";
    break;
    }
    switch (
    $args[0]) {
    case 
    'ban'$this->bannedplayers[] =$name;
    $output ='[D-Squares] '.$name." can't chat anymore";
    break 
    1;
    case 
    'unban':$key =array_search($name$this->bannedplayers);
    unset(
    $this->bannedplayers[$key]);
    $output ='[D-Squares] '.$name.' can chat again';
    break 
    1;
    }
    $this->api->plugin->writeYAML($this->path ."bannedplayers.txt"$this->bannedplayers);
    break;
    case 
    'reload':$this->reload();
    $output ='[D-Squares] Reloaded';
    break;
    case 
    'prefix': case 'suffix':if (!isset($args[1]) || !isset($args[2])) {
    $output ='[D-Squares] Usage: /cc <prefix|suffix> <group> <text>';
    return 
    $output;
    }
    $group =strtoupper($args[1]);
    if(!isset(
    $this->config['groups'][$group])){
    $output ="[D-Squares] The group doesn't exist";
    return 
    $output;
    }
    $text =(string)implode(array_slice($args2));
    if(
    $args[0] === 'prefix'){
    $this->config['groups'][$group]['prefix'] =$text;
    $output ='[D-Squares] The prefix of '.$group.' is changed to '.$text;
    }
    else{
    $this->config['groups'][$group]['suffix'] =$text;
    $output ='[D-Squares] The suffix of '.$group.' is changed to '.$text;
    }
    $this->api->plugin->writeYAML($this->path.'config.yml'$this->config);
    return 
    $output;
    break;
    case 
    'clear':for($i =0;
    $i <= 20;
    $i++){
    $this->api->chat->broadcast(" ");
    }
    $output ='[D-Squares] Chat cleared!';
    break;
    case 
    'mute':$this->muted =true;
    $output ='[D-Squares] nobody can chat now';
    break;
    case 
    'unmute':$this->muted =false;
    $output ='[D-Squares] unmuted the chat';
    break;
    default:
    $output ="===[D-Squares chat]===
    "
    ;
    $output .= "/cc ban - Stop a player from chatting
    "
    ;
    $output .= "/cc unban - Let a player chat again
    "
    ;
    $output .= "/cc <prefix|suffix> <group> <text> - Change the prefix/suffix of a group
    "
    ;
    $output .= "/cc reload - Reload the config file
    "
    ;
    break;
    }
    return 
    $output;
    }
    public function 
    serverchat($data){
    $timechat =date("(H:i:s)");
    $message =$data['message'];
    $players =$this->api->player->getAll();
    foreach(
    $players as $player){
    $username =$player->username;
    if(
    $this->players[$username]['mute'] === 0){
    $this->api->chat->sendTo(false$message$username);
    }
    }
    return 
    false;
    }
    public function 
    playerchat($data$player){
    $username =$data['player']->username;
    if(
    $username == 'console') return true;
    if(
    in_array($username$this->bannedplayers) || $this->muted){
    $this->api->chat->sendTo(false'You are not allowed to chat!'$username);
    return 
    false;
    }
    $message =$data['message'];
    if(
    $this->players[$username]['tell'] != false){
    $name =$this->players[$username]['tell'];
    if(!isset(
    $this->players[$name])){
    $this->players[$username]['tell'] =false;
    $this->api->chat->sendTo(false$name." isn't online anymore, personal converstation stopped"$username);
    return 
    false;
    }
    $this->api->chat->sendTo(false'<'.$username.' -> you> '.$message$name);
    $this->api->chat->sendTo(false'<you -> '.$name.'> '.$message$username);
    console('[chat] <'.$username.' -> '.$name.'> '.$message);
    $this->players[$name]['lastpmsg'] =$username;
    return 
    false;
    }
    if(((
    $this->config['ChatIntervalProtection']['Enabled'] == true) && (time() -$this->players[$username]['lastmsg']) <(int)$this->config['ChatIntervalProtection']['IntervalTime']) && ($this->pconfig['player'][$username] != 'ADMIN')){
    $this->api->chat->sendTo(false"Don't send more than one msg in ".$this->config['ChatIntervalProtection']['IntervalTime'].' seconds'$username);
    return 
    false;
    }


    ################################################################### Chat ###################################################################
    $unixtime time();
    $this->players[$username]['lastmsg'] =time();
    $this->players['timechat'] =date("(H:i:s "$unixtime);
    $this->players['timezone'] =$output "MSK) ";
    $this->reload();
    $group =$this->pconfig['player'][$username];
    $message =(string)($this->players['timechat'].$this->players['timezone'].$player->getHealth().$this->config['groups'][$group]['prefix'] .$username.$this->config['groups'][$group]['suffix'] .$message);
    $players =$this->api->player->getAll();
    console('[CHAT] '.$message);
    foreach(
    $players as $player){
    $username =$player->username;
    if(
    $this->players[$username]['mute'] === 0){
    $this->api->chat->sendTo(false$message$username);
    }
    }
    return 
    false;
    }
    ############################################################################################################################################
    public function playerquit($data){
    $username =(string)$data->username;
    if(isset(
    $this->players[$username])){
    unset(
    $this->players[$username]);
    }
    }
    public function 
    playerjoin($data){
    $username =(string)$data->username;
    $this->players[$username] =array( 'lastmsg' => 0'mute' => 0'tell' => false'lastpmsg' => false, );
    }
    public function 
    reload(){
    $this->pconfig =$this->api->plugin->readYAML(DATA_PATH.'plugins/PermissionPlus/config.yml');
    $this->config =$this->api->plugin->readYAML($this->path ."config.yml");
    foreach(
    $this->pconfig['permission'] as $key => $val){
    if(!isset(
    $this->config['groups'][$key])){
    $this->config['groups'][$key]['prefix'] =(string)('['.ucfirst(strtolower($key)).'] <');
    $this->config['groups'][$key]['suffix'] =(string)('> ');
    }
    }
    $this->api->plugin->writeYAML($this->path.'config.yml'$this->config);
    }
    }
    ?>
  12. must_
    Offline

    must_ Active Member

    Joined:
    Aug 23, 2013
    Posts:
    139
    Minecraft User:
    must
    извиняюсь за ошибку
  13. WinniePooh
    Offline

    WinniePooh New Member

    Joined:
    Jun 12, 2014
    Posts:
    16
    Minecraft User:
    WinniePooh
    /src/pocketmine/entity/Living.php :: getLineOfSight
  14. vanya03
    Offline

    vanya03 New Member

    Joined:
    Sep 7, 2014
    Posts:
    13
    У меня вопрос , раньше на 12 было команды на запрос для консоли тип ...run("give xxx 5 1");
    Как это сделать на 1.4 я не понял
  15. Sergey_D
    Offline

    Sergey_D Active Member

    Joined:
    Jan 19, 2014
    Posts:
    75
    Minecraft User:
    CLILLZ
    Оно тебе надо?Мозгов на $player->getInventory()->addItem($item); не хватает?
  16. vanya03
    Offline

    vanya03 New Member

    Joined:
    Sep 7, 2014
    Posts:
    13
    Да, я хочу знать как отправлять на консоль команду
  17. vanya03
    Offline

    vanya03 New Member

    Joined:
    Sep 7, 2014
    Posts:
    13
    Я привел пример , может быть любой запрос типа , mute $sender
  18. Sergey_D
    Offline

    Sergey_D Active Member

    Joined:
    Jan 19, 2014
    Posts:
    75
    Minecraft User:
    CLILLZ
    Я не представляю какой от этого сейчас может быть толк
  19. xpyctum
    Offline

    xpyctum Active Member Plugin Developer

    Joined:
    Jan 13, 2014
    Posts:
    292
    Plugins:
    4
    Minecraft User:
    tylerdisney
    Это совместно старый апи и новый?
  20. Pasha_Robber
    Offline

    Pasha_Robber New Member

    Joined:
    Dec 10, 2014
    Posts:
    10
    Господа, а как можно проверить залогинился ли игрок?

Share This Page

Advertisement