I'm creating a Minecraft Java plugin and to make it work I need to import a few packages, but when I put the ; in the end the string becomes gray (In the source code they are indicated with * after the string) and therefore it doesn't detect the packets, how can I fix it? A thousand thanks
P.S: Below you will find all the source code if you need it to help me
Here the code of the program:
package com.bizarrealex.aether;
import com.bizarrealex.aether.event.BoardCreateEvent;
import com.bizarrealex.aether.scoreboard.Board;
import com.bizarrealex.aether.scoreboard.BoardAdapter;
import com.bizarrealex.aether.scoreboard.BoardEntry;
import lombok.Getter; *
import org.bukkit.Bukkit; *
import org.bukkit.ChatColor; *
import org.bukkit.entity.Player; *
import org.bukkit.event.EventHandler; *
import org.bukkit.event.EventPriority; *
import org.bukkit.event.Listener; *
import org.bukkit.event.player.PlayerJoinEvent; *
import org.bukkit.event.player.PlayerQuitEvent; *
import org.bukkit.plugin.java.JavaPlugin; *
import org.bukkit.scheduler.BukkitRunnable; *
import org.bukkit.scoreboard.DisplaySlot; *
import org.bukkit.scoreboard.Objective; *
import org.bukkit.scoreboard.Score; *
import org.bukkit.scoreboard.Scoreboard; *
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import static com.bizarrealex.aether.AetherOptions.defaultOptions;
/**
* TODO: Add documentation to methods, etc
* TODO: Fix inconsistent cooldown scores
* TODO: Finish other board formats
*/
public class Aether implements Listener {
@Getter
BoardAdapter adapter;
@Getter
private JavaPlugin plugin;
@Getter
private AetherOptions options;
public Aether(JavaPlugin plugin, BoardAdapter adapter, AetherOptions options) {
this.options = options;
this.plugin = plugin;
Bukkit.getPluginManager().registerEvents(this, plugin);
setAdapter(adapter);
run();
}
public Aether(JavaPlugin plugin, BoardAdapter adapter) {
this(plugin, adapter, defaultOptions());
}
public Aether(JavaPlugin plugin) {
this(plugin, null, defaultOptions());
}
private void run() {
new BukkitRunnable() {
@Override
public void run() {
if (adapter == null) return;
for (Player player : Bukkit.getOnlinePlayers()) {
Board board = Board.getByPlayer(player);
if (board != null) {
List<String> scores = adapter.getScoreboard(player, board, board.getCooldowns());
List<String> translatedScores = new ArrayList<>();
if (scores == null) {
if (!board.getEntries().isEmpty()) {
for (BoardEntry boardEntry : board.getEntries()) {
boardEntry.remove();
}
board.getEntries().clear();
}
continue;
}
for (String line : scores) {
translatedScores.add(ChatColor.translateAlternateColorCodes('&', line));
}
if (!options.scoreDirectionDown()) {
Collections.reverse(scores);
}
Scoreboard scoreboard = board.getScoreboard();
Objective objective = board.getObjective();
if (!(objective.getDisplayName().equals(adapter.getTitle(player)))) {
objective.setDisplayName(ChatColor.translateAlternateColorCodes('&', adapter.getTitle(player)));
}
outer:
for (int i = 0; i < scores.size(); i++) {
String text = scores.get(i);
int position;
if (options.scoreDirectionDown()) {
position = 15 - i;
} else {
position = i + 1;
}
Iterator<BoardEntry> iterator = new ArrayList<>(board.getEntries()).iterator();
while (iterator.hasNext()) {
BoardEntry boardEntry = iterator.next();
Score score = objective.getScore(boardEntry.getKey());
if (score != null && boardEntry.getText().equals(ChatColor.translateAlternateColorCodes('&', text))) {
if (score.getScore() == position) {
continue outer;
}
}
}
int positionToSearch = options.scoreDirectionDown() ? 15 - position : position - 1;
iterator = board.getEntries().iterator();
while (iterator.hasNext()) {
BoardEntry boardEntry = iterator.next();
int entryPosition = scoreboard.getObjective(DisplaySlot.SIDEBAR).getScore(boardEntry.getKey()).getScore();
if (!options.scoreDirectionDown()) {
if (entryPosition > scores.size()) {
iterator.remove();
boardEntry.remove();
}
}
}
BoardEntry entry = board.getByPosition(positionToSearch);
if (entry == null) {
new BoardEntry(board, text).send(position);
} else {
entry.setText(text).setup().send(position);
}
if (board.getEntries().size() > scores.size()) {
iterator = board.getEntries().iterator();
while (iterator.hasNext()) {
BoardEntry boardEntry = iterator.next();
if ((!translatedScores.contains(boardEntry.getText())) || Collections.frequency(board.getBoardEntriesFormatted(), boardEntry.getText()) > 1) {
iterator.remove();
boardEntry.remove();
}
}
}
}
adapter.onScoreboardCreate(player, scoreboard);
player.setScoreboard(scoreboard);
}
}
}
}.runTaskTimerAsynchronously(plugin, 20L, 2L);
}
public void setAdapter(BoardAdapter adapter) {
this.adapter = adapter;
for (Player player : Bukkit.getOnlinePlayers()) {
Board board = Board.getByPlayer(player);
if (board != null) {
Board.getBoards().remove(board);
}
Bukkit.getPluginManager().callEvent(new BoardCreateEvent(new Board(player, this, options), player));
}
}
@EventHandler
public void onPlayerJoinEvent(PlayerJoinEvent event) {
if (Board.getByPlayer(event.getPlayer()) == null) {
Bukkit.getPluginManager().callEvent(new BoardCreateEvent(new Board(event.getPlayer(), this, options), event.getPlayer()));
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerQuitEvent(PlayerQuitEvent event) {
Board board = Board.getByPlayer(event.getPlayer());
if (board != null) {
Board.getBoards().remove(board);
}
}
}
The output of the program if I build it:
7: java: package lombok does not exist
8: java: package org.bukkit does not exist
9: java: package org.bukkit does not exist
10: java: package org.bukkit.entity does not exist
11: java: package org.bukkit.event does not exist
12: java: package org.bukkit.event does not exist
13: java: package org.bukkit.event does not exist
14: java: package org.bukkit.event.player does not exist
15: java: package org.bukkit.event.player does not exist
16: java: package org.bukkit.plugin.java does not exist
17: java: package org.bukkit.scheduler does not exist
18: java: package org.bukkit.scoreboard does not exist
19: java: package org.bukkit.scoreboard does not exist
20: java: package org.bukkit.scoreboard does not exist
21: java: package org.bukkit.scoreboard does not exist
35: java: cannot find symbol
symbol: class Listener
40: java: cannot find symbol
symbol: class JavaPlugin
location: class com.bizarrealex.aether.Aether
44: java: cannot find symbol
symbol: class JavaPlugin
location: class com.bizarrealex.aether.Aether
54: java: cannot find symbol
symbol: class JavaPlugin
location: class com.bizarrealex.aether.Aether
58: java: cannot find symbol
symbol: class JavaPlugin
location: class com.bizarrealex.aether.Aether
183: java: cannot find symbol
symbol: class PlayerJoinEvent
location: class com.bizarrealex.aether.Aether
190: java: cannot find symbol
symbol: class PlayerQuitEvent
location: class com.bizarrealex.aether.Aether
I searched if the package was wrong but couldn't find anything and, after a guy told me to do this, i pointed the package in the pom.xml file like this
<dependencies>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>VERSION</version>
<scope>provided</scope>
</dependency>
the complete code is this:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>us.zonix.practice</groupId>
<artifactId>Practice</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>sk89q-repo</id>
<url>http://maven.sk89q.com/repo/</url>
</repository>
<repository>
<id>fawe-repo</id>
<url>http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/</url>
</repository>
</repositories>
<dependencies>
<dependencies>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>VERSION</version>
<scope>provided</scope>
</dependency>
<dependencies>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>LATEST</version>
<scope>compile</scope>
</dependency>
<dependencies>
<groupId>com.sk89q</groupId>
<artifactId>worldedit</artifactId>
<version>6.0.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependencies>
<groupId>com.boydti</groupId>
<artifactId>fawe-api</artifactId>
<version>latest</version>
<scope>provided</scope>
</dependency>
<dependencies>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.14.8</version>
<scope>provided</scope>
</dependency>
<dependencies>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<scope>compile</scope>
</dependency>
<dependencies>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>LATEST</version>
<scope>compile</scope>
</dependency>
<dependencies>
<groupId>pt.foxspigot.jar</groupId>
<artifactId>FoxSpigot</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/foxspigot-server.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugins>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugins>
<plugins>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugins>
</plugins>
</build>
</project>