Вопрос VK-API Cannot cast

kainlight

Разработчик
Пользователь
Сообщения
137
Привет. Я ловлю такую ошибку при использовании VK-API. Я взял пример у разработчика на github, и он выдает ошибку ExceptionInInitializerError, также при использовании того же самого в своем плагине. Я взял код из исходного кода другого плагина, и тоже ничего не работает. Если вы работали с этим плагином api, то надеюсь на помощь.
Не понимаю где искать решение ошибки, как в других плагинов, так и у меня сделано также. В чем проблема никак найти не могу.


Код:
import com.ubivashka.vk.bukkit.BukkitVkApiPlugin;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin {

    public static Main instance;

    @Override
    public void onEnable() {
        instance = this;
        Bukkit.getPluginManager().registerEvents(new VkListener(), this);

    }

    @Override
    public void onDisable() {}
}

Код:
import com.ubivashka.vk.bukkit.BukkitVkApiPlugin;
import com.ubivashka.vk.bukkit.events.VKMessageEvent;
import com.vk.api.sdk.client.VkApiClient;
import com.vk.api.sdk.client.actors.GroupActor;
import com.vk.api.sdk.exceptions.ApiException;
import com.vk.api.sdk.exceptions.ClientException;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import java.util.Random;
public class VkListener implements Listener {
    private static final VkApiClient CLIENT = BukkitVkApiPlugin.getPlugin(BukkitVkApiPlugin.class).getVkApiProvider()
            .getVkApiClient();
    private static final GroupActor ACTOR = BukkitVkApiPlugin.getPlugin(BukkitVkApiPlugin.class).getVkApiProvider()
            .getActor();
    private static final Random RANDOM = new Random();
    @EventHandler
    public void onMessage(VKMessageEvent e) {
        try {
            if (e.getMessage().getText().startsWith(Main.getPlugin(Main.class).getConfig().getString("commands.stats"))) {
                CLIENT.messages().send(ACTOR).randomId(RANDOM.nextInt()).peerId(e.getPeer()).message("Все окей").execute();
            }
        } catch (ApiException | ClientException ex) {
            ex.printStackTrace();
        }
    }
}

Код:
    <properties>
        <java.version>8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <url>vk.com/kainlight</url>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <compilerArgs>
                        <arg>-proc:none</arg>
                    </compilerArgs>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
    <repositories>
        <repository>
            <id>papermc-repo</id>
            <url>https://repo.papermc.io/repository/maven-public/</url>
        </repository>
        <repository>
            <id>sonatype</id>
            <url>https://oss.sonatype.org/content/groups/public/</url>
        </repository>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>io.papermc.paper</groupId>
            <artifactId>paper-api</artifactId>
            <version>1.19.2-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.github.U61vashka.VK-API-Bukkit-Bungee</groupId>
            <artifactId>vk-api.bukkit</artifactId>
            <version>0.4.0</version>
        </dependency>
    </dependencies>
Код:
java.lang.ExceptionInInitializerError: null
    at ru.kainlight.lightvk.Main.onEnable(Main.java:19) ~[LightVK.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:542) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:565) ~[paper-1.19.2.jar:git-Paper-263]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:479) ~[paper-1.19.2.jar:git-Paper-263]
    at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.19.2.jar:git-Paper-263]
    at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422) ~[paper-1.19.2.jar:git-Paper-263]
    at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.2.jar:git-Paper-263]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1100) ~[paper-1.19.2.jar:git-Paper-263]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-263]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassCastException: Cannot cast ru.kainlight.lightvk.Main to com.ubivashka.vk.bukkit.BukkitVkApiPlugin
    at java.lang.Class.cast(Class.java:3889) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.getPlugin(JavaPlugin.java:408) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
    at ru.kainlight.lightvk.VkListener.<clinit>(VkListener.java:16) ~[LightVK.jar:?]
    ... 12 more
PLUGIN:
 
Решение
Настоятельно рекомендую не использовать подобную ерунду, тебе совершенно не нужны зависимости от других плагинов. Можно, к примеру, использовать

Конкретно по твоей ошибке - не нахожу, где именно ты пытаешься скастовать классы

offtop Вместо Random лучше использовать ThreadLocalRandom
И хватит вызывать статические методы из наследников, емаё
Настоятельно рекомендую не использовать подобную ерунду, тебе совершенно не нужны зависимости от других плагинов. Можно, к примеру, использовать

Конкретно по твоей ошибке - не нахожу, где именно ты пытаешься скастовать классы

offtop Вместо Random лучше использовать ThreadLocalRandom
И хватит вызывать статические методы из наследников, емаё
 
Настоятельно рекомендую не использовать подобную ерунду, тебе совершенно не нужны зависимости от других плагинов. Можно, к примеру, использовать

Конкретно по твоей ошибке - не нахожу, где именно ты пытаешься скастовать классы

offtop Вместо Random лучше использовать ThreadLocalRandom
И хватит вызывать статические методы из наследников, емаё
на гх пример от убивашки чекни, тоже самое делаю
Авто объединение сообщений:

Настоятельно рекомендую не использовать подобную ерунду, тебе совершенно не нужны зависимости от других плагинов. Можно, к примеру, использовать

Конкретно по твоей ошибке - не нахожу, где именно ты пытаешься скастовать классы

offtop Вместо Random лучше использовать ThreadLocalRandom
И хватит вызывать статические методы из наследников, емаё
Оке, чекну этот апи позже
 
getPlugin(BukkitVkApiPlugin.class)

А BukkitVkApiPlugin.class является главным классом плагина?

offtop Кто вообще тебе дал разработчика?
Как написано в вики и как делают другие, все работают. Я кажись нашел в чем проблема, как вк оживет (выдает internal error, уже отписал вк и они решают проблему), так проверю и скажу сработало ли.
Авто объединение сообщений:

Но вообще думаю взять апи предложенное выше, но вк лёг в этом плане
Авто объединение сообщений:

Настоятельно рекомендую не использовать подобную ерунду, тебе совершенно не нужны зависимости от других плагинов. Можно, к примеру, использовать

Конкретно по твоей ошибке - не нахожу, где именно ты пытаешься скастовать классы

offtop Вместо Random лучше использовать ThreadLocalRandom
И хватит вызывать статические методы из наследников, емаё
Слушай, кидая в onEnable startpolling, сервак зависает, консоль тоже. Есть варианты фикса? Разраб апишки не знает почему
 
Последнее редактирование:
Назад
Сверху Снизу