Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Вопрос по "The constructor is deprecated" (https://forum.zone-game.info/showthread.php?t=36234)

Main 24.08.2014 13:39

Вопрос по "The constructor is deprecated"
 
Все добрый день.

Необходимо добавить новое системное сообщение в игре. (systemmsg-e.dat)
Новое - не существующие!
У меня нету исходников, если бы они были - я не создавал бы тему!

Обычным способом:
Код:

SystemMessage message = new SystemMessage(sys_msg);
и
Код:

player.sendPacket(message.addNumber(time));
Всё прекрасно работает.

Но в ГС очень мозолит глаза варнинг с:
Код:

SystemMessage message = new SystemMessage(sys_msg);
The constructor SystemMessage(int) is deprecated

В гугле всё про Date и Calendar.
Но для меседжа я не нашел отдельного класса...

Возможно кто-то знает чем можно заменить new, чтоб не было варнинга?

KilRoy 24.08.2014 14:00

Re: Вопрос по "The constructor is deprecated"
 
Возможно :) Либо удалить @Deprecated аннотацию с метода, либо использовать конструкцию такого типа(возможно, т.к не знаю что за сурс вообще, и зачем объявили устаревшей данный конструктор):
player.sendPacket(new SystemMessage(SystemMessage.LOLOLO).addNumber(time));

Main 24.08.2014 14:04

Re: Вопрос по "The constructor is deprecated"
 
Цитата:

Сообщение от KilRoy (Сообщение 372851)
Возможно :) Либо удалить @Deprecated аннотацию с метода, либо использовать конструкцию такого типа(возможно, т.к не знаю что за сурс вообще, и зачем объявили устаревшей данный конструктор):
player.sendPacket(new SystemMessage(SystemMessage.LOLOLO).addNumber(time));

Тут оно существующий возьмёт, а нужно новый добавить, который я внес в systemmsg-e.dat (у меня нету исходников чтоб добавить туда)

Сурс на основе L2RT, хотя все SystemMessage похожи как две капли воды.

KilRoy 24.08.2014 14:10

Re: Вопрос по "The constructor is deprecated"
 
Ну сами думаем, как мы можем что-то делать, не имея сурсов :)?
Можно конечно добавить, без проблем и в готовый класс, почитав всего лишь про ClassFileTransformer и Instrumentation.

Main 24.08.2014 14:12

Re: Вопрос по "The constructor is deprecated"
 
Цитата:

Сообщение от KilRoy (Сообщение 372853)
Ну сами думаем, как мы можем что-то делать, не имея сурсов :)?
Можно конечно добавить, без проблем и в готовый класс, почитав всего лишь про ClassFileTransformer и Instrumentation.

http://svn.l2jserver.com/trunk/L2J_S...emMessage.java

Декомпил:
Код:

// Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov  Date: 24.08.2014 15:15:28
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3) debugmode
// Source File Name:  SystemMessage.java
// Class Version:      50.0

package net.sf.l2j.gameserver.network.serverpackets;

import javolution.util.FastTable;
import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.network.SystemMessageId;

// Referenced classes of package net.sf.l2j.gameserver.network.serverpackets:
//            L2GameServerPacket

// flag ACC_SUPER is set
public class SystemMessage extends L2GameServerPacket
{
    // Constants:          144
    // Interfaces:        0
    // Fields:            10
    // Methods:            14
    // Class Attributes:  1


    // Decompiling method: id  Signature: (Lnet/sf/l2j/gameserver/network/SystemMessageId;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 9 bytes, Code offset: 2348
    // Local Variable Table found: 1 entries
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name messageId Type Lnet/sf/l2j/gameserver/network/SystemMessageId; At 0 9 Range 0 8 Init 0 fixed
    // RetValue  1 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 9 Range 0 8 Init 0 fixed
    public static SystemMessage id(SystemMessageId messageId)
    {
        return new SystemMessage(messageId);
    }

    // Decompiling method: <init>  Signature: (Lnet/sf/l2j/gameserver/network/SystemMessageId;)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 40 bytes, Code offset: 2413
    // Local Variable Table found: 2 entries
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 40 Range 0 39 Init 0 fixed
    // Parameter  1 added: Name messageId Type Lnet/sf/l2j/gameserver/network/SystemMessageId; At 0 40 Range 0 39 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type V At 0 40 Range 0 39 Init 0 fixed
    public SystemMessage(SystemMessageId messageId)
    {
        /* super(); */
        _types = new FastTable();
        _values = new FastTable();
        _skillLvL = 1;
        _messageId = messageId.getId();
        /* return; */
    }

    // Decompiling method: <init>  Signature: (I)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 37 bytes, Code offset: 2539
    // Local Variable Table found: 2 entries
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 37 Range 0 36 Init 0 fixed
    // Parameter  1 added: Name messageId Type I At 0 37 Range 0 36 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type V At 0 37 Range 0 36 Init 0 fixed
    /**
    * @deprecated Method SystemMessage is deprecated
    */

    @Deprecated
    public SystemMessage(int messageId)
    {
        /* super(); */
        _types = new FastTable();
        _values = new FastTable();
        _skillLvL = 1;
        _messageId = messageId;
        /* return; */
    }

    // Decompiling method: sendString  Signature: (Ljava/lang/String;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 2680
    // Local Variable Table found: 1 entries
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name msg Type Ljava/lang/String; At 0 11 Range 0 10 Init 0 fixed
    // RetValue  1 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 11 Range 0 10 Init 0 fixed
    public static SystemMessage sendString(String msg)
    {
        return id(SystemMessageId.S1_S2).addString(msg);
    }

    // Decompiling method: addString  Signature: (Ljava/lang/String;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 23 bytes, Code offset: 2747
    // Local Variable Table found: 2 entries
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 23 Range 0 22 Init 0 fixed
    // Parameter  1 added: Name text Type Ljava/lang/String; At 0 23 Range 0 22 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 23 Range 0 22 Init 0 fixed
    public SystemMessage addString(String text)
    {
        _types.add(Integer.valueOf(0));
        _values.add(text);
        return this;
    }

    // Decompiling method: addNumber  Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 26 bytes, Code offset: 2844
    // Local Variable Table found: 2 entries
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
    // Parameter  1 added: Name number Type I At 0 26 Range 0 25 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
    public SystemMessage addNumber(int number)
    {
        _types.add(Integer.valueOf(1));
        _values.add(Integer.valueOf(number));
        return this;
    }

    // Decompiling method: addNpcName  Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 29 bytes, Code offset: 2944
    // Local Variable Table found: 2 entries
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name id Type I At 0 29 Range 0 28 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 29 Range 0 28 Init 0 fixed
    public SystemMessage addNpcName(int id)
    {
        _types.add(Integer.valueOf(2));
        _values.add(Integer.valueOf(0xf4240 + id));
        return this;
    }

    // Decompiling method: addItemName  Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 26 bytes, Code offset: 3047
    // Local Variable Table found: 2 entries
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
    // Parameter  1 added: Name id Type I At 0 26 Range 0 25 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
    public SystemMessage addItemName(int id)
    {
        _types.add(Integer.valueOf(3));
        _values.add(Integer.valueOf(id));
        return this;
    }

    // Decompiling method: addZoneName  Signature: (III)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 4, #locals: 5, #params: 4
    // Code length: 42 bytes, Code offset: 3147
    // Local Variable Table found: 5 entries
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 42 Range 0 41 Init 0 fixed
    // Parameter  1 added: Name x Type I At 0 42 Range 0 41 Init 0 fixed
    // Parameter  2 added: Name y Type I At 0 42 Range 0 41 Init 0 fixed
    // Parameter  3 added: Name z Type I At 0 42 Range 0 41 Init 0 fixed
    // RetValue  5 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 42 Range 0 41 Init 0 fixed
    // LocalVar  4 added: Name coord Type [I At 28 8 Range 28 35 Init 28 fixed
    public SystemMessage addZoneName(int x, int y, int z)
    {
        _types.add(Integer.valueOf(7));
        int coord[] = {
            x, y, z
        };
        _values.add(coord);
        return this;
    }

    // Decompiling method: addSkillName  Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 3297
    // Local Variable Table found: 2 entries
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name id Type I At 0 7 Range 0 6 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 7 Range 0 6 Init 0 fixed
    public SystemMessage addSkillName(int id)
    {
        return addSkillName(id, 1);
    }

    // Decompiling method: addSkillName  Signature: (Lnet/sf/l2j/gameserver/model/L2Skill;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 10 bytes, Code offset: 3370
    // Local Variable Table found: 2 entries
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name skill Type Lnet/sf/l2j/gameserver/model/L2Skill; At 0 10 Range 0 9 Init 0 fixed
    // RetValue  2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 10 Range 0 9 Init 0 fixed
    public SystemMessage addSkillName(L2Skill skill)
    {
        return addSkillName(skill.getId(), 1);
    }

    // Decompiling method: addSkillName  Signature: (II)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 31 bytes, Code offset: 3446
    // Local Variable Table found: 3 entries
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 31 Range 0 30 Init 0 fixed
    // Parameter  1 added: Name id Type I At 0 31 Range 0 30 Init 0 fixed
    // Parameter  2 added: Name lvl Type I At 0 31 Range 0 30 Init 0 fixed
    // RetValue  3 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 31 Range 0 30 Init 0 fixed
    public SystemMessage addSkillName(int id, int lvl)
    {
        _types.add(Integer.valueOf(4));
        _values.add(Integer.valueOf(id));
        _skillLvL = lvl;
        return this;
    }

    // Decompiling method: writeImpl  Signature: ()V
    // Max stack: 3, #locals: 6, #params: 1
    // Code length: 256 bytes, Code offset: 3565
    // Local Variable Table found: 8 entries
    // Line Number Table found: 25 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 256 Range 0 255 Init 0 fixed
    // RetValue  6 added: Name <returnValue> Type V At 0 256 Range 0 255 Init 0 fixed
    // LocalVar  1 added: Name i Type I At 26 226 Range 26 251 Init 26 fixed
    // LocalVar  2 added: Name t Type I At 52 7 Range 52 58 Init 52 fixed
    // LocalVar  3 added: Name t1 Type I At 136 3 Range 136 138 Init 136 fixed
    // LocalVar  3 added: Name t1 Type I At 159 3 Range 159 161 Init 159 fixed
    // LocalVar  3 added: Name t1 Type I At 192 39 Range 192 230 Init 192 fixed
    // LocalVar  4 added: Name t2 Type I At 209 28 Range 209 236 Init 209 fixed
    // LocalVar  5 added: Name t3 Type I At 227 16 Range 227 242 Init 227 fixed
    protected final void writeImpl()
    {
        writeC(100);
        writeD(_messageId);
        writeD(_types.size());
        for(int i = 0; i < _types.size(); i++)
        {
            int t = ((Integer)_types.get(i)).intValue();
            writeD(t);
            switch(t)
            {
            case 0: // '\0'
            {
                writeS((String)_values.get(i));
                break;
            }

            case 1: // '\001'
            case 2: // '\002'
            case 3: // '\003'
            {
                int t1 = ((Integer)_values.get(i)).intValue();
                writeD(t1);
                break;
            }

            case 4: // '\004'
            {
                int t1 = ((Integer)_values.get(i)).intValue();
                writeD(t1);
                writeD(_skillLvL);
                break;
            }

            case 7: // '\007'
            {
                int t1 = ((int[])(int[])_values.get(i))[0];
                int t2 = ((int[])(int[])_values.get(i))[1];
                int t3 = ((int[])(int[])_values.get(i))[2];
                writeD(t1);
                writeD(t2);
                writeD(t3);
                break;
            }
            }
        }

        /* return; */
    }

    // Decompiling method: getMessageID  Signature: ()I
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 4068
    // Local Variable Table found: 1 entries
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 5 Range 0 4 Init 0 fixed
    // RetValue  1 added: Name <returnValue> Type I At 0 5 Range 0 4 Init 0 fixed
    public int getMessageID()
    {
        return _messageId;
    }

    private static final int TYPE_ZONE_NAME = 7;
    private static final int TYPE_SKILL_NAME = 4;
    private static final int TYPE_ITEM_NAME = 3;
    private static final int TYPE_NPC_NAME = 2;
    private static final int TYPE_NUMBER = 1;
    private static final int TYPE_TEXT = 0;
    private int _messageId;
    private FastTable _types;
    private FastTable _values;
    private int _skillLvL;
}


KilRoy 24.08.2014 14:16

Re: Вопрос по "The constructor is deprecated"
 
http://svn.l2jserver.com/trunk/L2J_S...MessageId.java

Main 24.08.2014 14:19

Re: Вопрос по "The constructor is deprecated"
 
Цитата:

Сообщение от KilRoy (Сообщение 372855)

????

Еще раз повторяю: мне нужно добавить НОВЫЙ ID, не взять СУЩЕСТВУЮЩИЙ.

n3k0nation 24.08.2014 14:44

Re: Вопрос по "The constructor is deprecated"
 
Цитата:

Сообщение от Main (Сообщение 372856)
????

Еще раз повторяю: мне нужно добавить НОВЫЙ ID, не взять СУЩЕСТВУЮЩИЙ.

Так в чем проблема? Добавляйте туда, исходник почти такой же Вам скинули. Или мы за Вас должны это делать? - Это не тот форум, если Вы думаете так.

Main 24.08.2014 14:46

Re: Вопрос по "The constructor is deprecated"
 
Цитата:

Сообщение от Pointer*Rage (Сообщение 372857)
Так в чем проблема? Добавляйте туда, исходник почти такой же Вам скинули. Или мы за Вас должны это делать? - Это не тот форум, если Вы думаете так.

:facepalm:

Нету исходника, ну я же выше написал всё.

Mifesto 24.08.2014 15:06

Re: Вопрос по "The constructor is deprecated"
 
Цитата:

Сообщение от Main (Сообщение 372858)
:facepalm:

Нету исходника, ну я же выше написал всё.


а кто мешает скомпилить всего один файл? Это вполне возможно, просто в либы нужно поместить ядро, а потом через архиватор(winrar\7zip) заменить файл класс.


Текущее время: 15:21. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot