Вопрос 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, сервак зависает, консоль тоже. Есть варианты фикса? Разраб апишки не знает почему
 
Последнее редактирование:
Назад
Сверху Снизу