Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Agzam4 authored Jan 17, 2023
1 parent b55e493 commit a0258fa
Show file tree
Hide file tree
Showing 5 changed files with 231 additions and 38 deletions.
2 changes: 1 addition & 1 deletion plugin.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "Agzam's plugin v1.7",
"name": "Agzam's plugin v1.7.4",
"author": "Agzam4",
"main": "example.ExamplePlugin",
"description": "New command, core protection from thorium reactors and more",
Expand Down
19 changes: 18 additions & 1 deletion src/example/DataCollecter.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import mindustry.gen.Groups;
import mindustry.gen.Player;
import mindustry.io.JsonIO;
import mindustry.net.Administration.Config;

public class DataCollecter {

Expand All @@ -32,8 +33,9 @@ public class DataCollecter {
private String mapName = "Loading...";
private int waveNumber = 0;
private int messagesCount = 0;

private String[][] locations = new String[24][];
private String[][] playerData = new String[30][5];

public void init() {

Expand Down Expand Up @@ -74,6 +76,19 @@ private void collecData() {
dayMaxOnlineCount = 0;
}


for (int i = 0; i < Math.min(Groups.player.size(), playerData.length); i++) {
Player player = Groups.player.index(i);
// playerData

playerData[i][0] = player.coloredName();
playerData[i][1] = player.usid();
playerData[i][2] = player.uuid();
playerData[i][3] = player.ip();

}
//

try {
int hours = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if(lastHours != hours) {
Expand All @@ -100,6 +115,8 @@ public void save() {
createJsonValue(json, "messagesCount", messagesCount);
createJsonValue(json, "mapName", mapName);
createJsonValue(json, "locations", locations);
// createJsonValue(json, "playerData", playerData);

json.append('}');

Fi fi = new Fi(getPathToFile());
Expand Down
12 changes: 9 additions & 3 deletions src/example/ExamplePlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,15 @@ public class ExamplePlugin extends Plugin{
SkipmapVoteSession[] currentlyMapSkipping = {null};
//


MyMenu menu;
// TODO: bans command

//called when game initializes
@Override
public void init() {

menu = new MyMenu();
eventsManager = new ServerEventsManager();
eventsManager.init();

Expand Down Expand Up @@ -151,8 +154,10 @@ public void init() {
adminCommands.add("unit");
adminCommands.add("bans");
adminCommands.add("unban");
adminCommands.add("m");

Events.run(Trigger.update, () -> {
menu.update();
eventsManager.update();
});

Expand Down Expand Up @@ -434,7 +439,9 @@ public void registerClientCommands(CommandHandler handler){
}
player.sendMessage(result.toString());
});


menu.registerCommand(handler);

/**
* List of server maps
*/
Expand Down Expand Up @@ -736,7 +743,7 @@ public void registerClientCommands(CommandHandler handler){

handler.<Player>register("plugininfo", "info about pluging", (arg, player) -> {
player.sendMessage(""
+ "[green] Agzam's plugin v1.7\n"
+ "[green] Agzam's plugin v1.7.4\n"
+ "[gray]========================================================\n"
+ "[white] Added [royal]skip map[white] commands\n"
+ "[white] Added protection from [violet]thorium reactors[white]\n"
Expand Down Expand Up @@ -1283,7 +1290,6 @@ public void registerClientCommands(CommandHandler handler){
player.unit(u);
}
}
// Events.fire(new UnitCreateEvent(u, null, player.unit()));
player.sendMessage("Готово!");

if(!net.client()){
Expand Down
189 changes: 189 additions & 0 deletions src/example/MyMenu.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
package example;

import java.awt.Menu;
import java.util.ArrayList;

import arc.Core;
import arc.Events;
import arc.struct.Seq;
import arc.util.CommandHandler;
import arc.util.Log;
import arc.util.Strings;
import mindustry.game.Team;
import mindustry.content.StatusEffects;
import mindustry.game.EventType.MenuOptionChooseEvent;
import mindustry.gen.Call;
import mindustry.gen.Groups;
import mindustry.gen.Player;
import mindustry.maps.Map;
import mindustry.net.Administration.Config;
import mindustry.type.StatusEffect;

import static mindustry.Vars.*;

public class MyMenu {

enum MenuOption {
OpenMapManager,
AdminPlayerManager,
AdminPlayerConfig,
AdminPlayerConfigAction,
Other
}

ArrayList<Menu> menus;

public MyMenu() {
menus = new ArrayList<>();
Events.on(MenuOptionChooseEvent.class, e -> {
Log.info(e.menuId + ": " + e.option);

Menu menu = null;
for (int i = 0; i < menus.size(); i++) {
menu = menus.get(i);
if(menu.id == e.menuId) {
menus.remove(menu);
break;
}
}

if(e.option < 0) return;

if(menu != null) {
if(e.option < menu.menuOptions.length) {
Log.info("Option: " + menu.menuOptions[e.option].name());
onButtonPressed(menu, menu.menuOptions[e.option].ordinal(), e.option);
}
}
});
}


public void update() {
}

public void onButtonPressed(Menu menu, int optionID, int clickedId) {

if(!menu.player.admin()) return;

if(optionID == MenuOption.AdminPlayerManager.ordinal()) {
String players[][] = new String[Groups.player.size()][];
MenuOption[] menuOption = new MenuOption[Groups.player.size()];
for (int i = 0; i < Groups.player.size(); i++) {
menuOption[i] = MenuOption.AdminPlayerConfig;
Player player = Groups.player.index(i);
if(player == null) continue;
if(i < players.length) {
players[i] = new String[] {player.coloredName()};
}
}
menu(menu.player, "Управление игроками", "Выберите игрока", players, menuOption);
}

if(optionID == MenuOption.AdminPlayerConfig.ordinal()) {
String playerName = null;

int id = 0;
for (int i = 0; i < menu.options.length; i++) {
for (int j = 0; j < menu.options[i].length; j++) {
if(id == clickedId) {
playerName = menu.options[i][j];
}
id++;
}
}

String players[] = new String[Groups.player.size()];

for (int i = 0; i < Groups.player.size(); i++) {
Player player = Groups.player.index(i);
if(player == null) continue;
if(i < players.length) {
players[i] = player.coloredName();
}
}
if(playerName == null) return;

String[] teams = new String[Team.baseTeams.length];
MenuOption[] menuOptions = new MenuOption[Team.baseTeams.length+2];
for (int i = 0; i < teams.length; i++) {

char ch = ' ';

if(Team.baseTeams[i] == Team.derelict) ch = '\uf77e';
if(Team.baseTeams[i] == Team.sharded) ch = '\uf77c';
if(Team.baseTeams[i] == Team.malis) ch = '\uf6a9';
if(Team.baseTeams[i] == Team.crux) ch = '\uf7a9';

if(ch == ' ') {
teams[i] = "[#" + Team.baseTeams[i].color + "]\ue80e";
} else {
teams[i] = ch + "";
}
}

for (int i = 0; i < menuOptions.length; i++) {
menuOptions[i] = MenuOption.AdminPlayerConfigAction;
}


menu(menu.player, "Управление игроком", playerName, new String[][] {teams, {"[green]\ue80f Вылечить", "[royal]\ue86b Неуязвимость"}}, menuOptions).payload = playerName;
}
if(optionID == MenuOption.AdminPlayerConfigAction.ordinal()) {
Log.info(menu.payload);
if(menu.payload == null) return;
Player targetPlayer = Groups.player.find(p -> Strings.stripColors(p.name()).equalsIgnoreCase(Strings.stripColors(menu.payload)));
if(targetPlayer == null) return;


int teamsCount = Team.baseTeams.length;
if(clickedId < teamsCount) {
Team team = Team.baseTeams[clickedId];
targetPlayer.team(team);
}
if(clickedId == teamsCount) {
targetPlayer.unit().heal();
}
if(clickedId == teamsCount+1) {
targetPlayer.unit().apply(StatusEffects.invincible, Float.MAX_VALUE);
}
}
}

public void registerCommand(CommandHandler handler) {
handler.<Player>register("m", "", "Открыть меню", (args, player) -> {
if(player.admin()) {
menu(player, Config.serverName.get().toString(), "", new String[][] {{"Управление игроками"}}, new MenuOption[] {MenuOption.AdminPlayerManager});
} else {
}
});
}

int nextMenuId = 0;
private Menu menu(Player player, String title, String text, String[][] options, MenuOption[] menuOptions) {
Menu menu = new Menu(player, nextMenuId, options, menuOptions);
menus.add(menu);
Call.menu(player.con(), nextMenuId, title, text, options);
nextMenuId++;
return menu;
}


class Menu {

public String payload;
String[][] options;
MenuOption[] menuOptions;
Player player;
int id;

Menu(Player player, int id, String[][] options, MenuOption[] menuOptions) {
this.menuOptions = menuOptions;
this.options = options;
this.player = player;
this.id = id;
}

}

}
Loading

0 comments on commit a0258fa

Please sign in to comment.