Skip to content

Commit 2014d76

Browse files
committed
feat: add feedback command on tutorial
1 parent 8b756bb commit 2014d76

File tree

2 files changed

+105
-63
lines changed

2 files changed

+105
-63
lines changed

src/main/java/zadudoder/spmhelper/events/Commands.java

Lines changed: 84 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
import zadudoder.spmhelper.utils.SPmHelperApi;
1818
import zadudoder.spmhelper.utils.types.Service;
1919

20+
import java.net.http.HttpResponse;
21+
import java.util.concurrent.CompletableFuture;
22+
2023
public class Commands {
2124
private static final boolean hasToken = SPmHelperConfig.get().getAPI_TOKEN() != null && !SPmHelperConfig.get().getAPI_TOKEN().isEmpty();
2225

@@ -76,71 +79,71 @@ public static void registerCommands() {
7679
return 1;
7780
})
7881
.then(ClientCommandManager.literal("Палатка новичков")
79-
.executes(context -> {
80-
TutorialManager.startPNTutorial();
81-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startPNTutorialMessage"));
82-
return 1;
83-
}))
82+
.executes(context -> {
83+
TutorialManager.startPNTutorial();
84+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startPNTutorialMessage"));
85+
return 1;
86+
}))
8487
.then(ClientCommandManager.literal("ЦИК")
8588
.executes(context -> {
86-
TutorialManager.startCIKTutorial();
87-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startCIKTutorialMessage"));
88-
return 1;
89-
}))
90-
.then(ClientCommandManager.literal("Банк")
91-
.executes(context -> {
92-
TutorialManager.startBankTutorial();
93-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startBankTutorialMessage"));
94-
return 1;
95-
}))
96-
.then(ClientCommandManager.literal("Галерея")
97-
.executes(context -> {
98-
TutorialManager.startGalleryTutorial();
99-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startGalleryTutorialMessage"));
100-
return 1;
101-
}))
102-
.then(ClientCommandManager.literal("Суд")
103-
.executes(context -> {
104-
TutorialManager.startLawCourtTutorial();
105-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startLawTutorialMessage"));
106-
return 1;
107-
}))
108-
.then(ClientCommandManager.literal("Ад")
109-
.executes(context -> {
110-
TutorialManager.startGoToHell();
111-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startHellTutorialMessage"));
112-
return 1;
113-
}))
114-
.then(ClientCommandManager.literal("Энд")
115-
.executes(context -> {
116-
TutorialManager.StartEnd();
117-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startEndTutorialMessage"));
118-
return 1;
119-
}))
120-
.then(ClientCommandManager.literal("ФСБ")
121-
.executes(context -> {
122-
TutorialManager.goToFSB();
123-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startFSBTutorialMessage"));
124-
return 1;
125-
}))
126-
.then(ClientCommandManager.literal("Библиотека")
127-
.executes(context -> {
128-
TutorialManager.goToBiblioteka();
129-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startLibraryTutorialMessage"));
130-
return 1;
131-
}))
132-
.then(ClientCommandManager.literal("Детективы")
133-
.executes(context -> {
134-
TutorialManager.goToSpawn();
135-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startGoToSpawnTutorialMessage"));
136-
return 1;
137-
}))
138-
.then(ClientCommandManager.literal("Торговля")
139-
.executes(context -> {
140-
TutorialManager.startGoToEndAndTalkAboutTrade();
141-
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startGoToSpawnTutorialMessage"));
142-
return 1;
143-
})))
89+
TutorialManager.startCIKTutorial();
90+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startCIKTutorialMessage"));
91+
return 1;
92+
}))
93+
.then(ClientCommandManager.literal("Банк")
94+
.executes(context -> {
95+
TutorialManager.startBankTutorial();
96+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startBankTutorialMessage"));
97+
return 1;
98+
}))
99+
.then(ClientCommandManager.literal("Галерея")
100+
.executes(context -> {
101+
TutorialManager.startGalleryTutorial();
102+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startGalleryTutorialMessage"));
103+
return 1;
104+
}))
105+
.then(ClientCommandManager.literal("Суд")
106+
.executes(context -> {
107+
TutorialManager.startLawCourtTutorial();
108+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startLawTutorialMessage"));
109+
return 1;
110+
}))
111+
.then(ClientCommandManager.literal("Ад")
112+
.executes(context -> {
113+
TutorialManager.startGoToHell();
114+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startHellTutorialMessage"));
115+
return 1;
116+
}))
117+
.then(ClientCommandManager.literal("Энд")
118+
.executes(context -> {
119+
TutorialManager.StartEnd();
120+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startEndTutorialMessage"));
121+
return 1;
122+
}))
123+
.then(ClientCommandManager.literal("ФСБ")
124+
.executes(context -> {
125+
TutorialManager.goToFSB();
126+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startFSBTutorialMessage"));
127+
return 1;
128+
}))
129+
.then(ClientCommandManager.literal("Библиотека")
130+
.executes(context -> {
131+
TutorialManager.goToBiblioteka();
132+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startLibraryTutorialMessage"));
133+
return 1;
134+
}))
135+
.then(ClientCommandManager.literal("Детективы")
136+
.executes(context -> {
137+
TutorialManager.goToSpawn();
138+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startGoToSpawnTutorialMessage"));
139+
return 1;
140+
}))
141+
.then(ClientCommandManager.literal("Торговля")
142+
.executes(context -> {
143+
TutorialManager.startGoToEndAndTalkAboutTrade();
144+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.startGoToSpawnTutorialMessage"));
145+
return 1;
146+
})))
144147
.then(ClientCommandManager.literal("stop")
145148
.executes(context -> {
146149
if (TutorialManager.isEnabled) {
@@ -163,6 +166,24 @@ public static void registerCommands() {
163166

164167
return 1;
165168
}))
169+
.then(ClientCommandManager.literal("feedback")
170+
.then(ClientCommandManager.argument(Text.translatable("text.spmhelper.feedback").getString(), StringArgumentType.greedyString())
171+
.executes(context -> {
172+
String comment = StringArgumentType.getString(context, Text.translatable("text.spmhelper.feedback").getString());
173+
CompletableFuture<HttpResponse<String>> responseFuture = SPmHelperApi.sendFeedback(context.getSource().getPlayer().getName().getLiteralString(), comment);
174+
responseFuture.thenApply(response -> {
175+
if (response.statusCode() == 200) {
176+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.feedbackIsSended"));
177+
} else {
178+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.feedbackSendError"));
179+
}
180+
return 1;
181+
}).exceptionally(ex -> {
182+
context.getSource().sendFeedback(Text.translatable("text.spmhelper.feedbackSendError"));
183+
return 1;
184+
});
185+
return 1;
186+
})))
166187
);
167188

168189
var aliasMainCommand = ClientCommandManager.literal("spmh").redirect(mainCommand.build());

src/main/java/zadudoder/spmhelper/utils/SPmHelperApi.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
public class SPmHelperApi {
2121
private static final String API_BASE = "https://api.spmhelper.ru/api";
22+
private static final String FEEDBACK_API = "http://127.0.0.1:7000/api";
2223
private static final HttpClient httpClient = HttpClient.newBuilder()
2324
.version(HttpClient.Version.HTTP_2)
2425
.connectTimeout(Duration.ofSeconds(10))
@@ -120,4 +121,24 @@ public static int getAPIStatus() {
120121
//SPmHelper.LOGGER.debug("CallsScreen: "+String.valueOf(code));
121122
return code;
122123
}
124+
125+
public static CompletableFuture<HttpResponse<String>> sendFeedback(String name, String comment) {
126+
try {
127+
JsonObject json = new JsonObject();
128+
json.addProperty("name", name);
129+
json.addProperty("comment", comment);
130+
HttpRequest request = HttpRequest.newBuilder()
131+
.uri(URI.create(FEEDBACK_API + "/feedback/send"))
132+
.header("Content-Type", "application/json")
133+
.POST(HttpRequest.BodyPublishers.ofString(json.toString()))
134+
.build();
135+
136+
return httpClient.sendAsync(
137+
request,
138+
HttpResponse.BodyHandlers.ofString()
139+
);
140+
} catch (Exception ex) {
141+
return null;
142+
}
143+
}
123144
}

0 commit comments

Comments
 (0)