mirror of
https://github.com/Leahnaya/UBFunkeysServer.git
synced 2026-04-25 15:46:54 -05:00
Added Cleaning Stations to the Funkey Trunk
This commit is contained in:
parent
2bf17634f2
commit
9c735c7358
|
|
@ -153,6 +153,9 @@ public class ArkOneController implements TcpHandler {
|
||||||
case "gml":
|
case "gml":
|
||||||
responses.add(trunkPlugin.GetMoodsList());
|
responses.add(trunkPlugin.GetMoodsList());
|
||||||
break;
|
break;
|
||||||
|
case "gcl":
|
||||||
|
responses.add(trunkPlugin.GetCleaningsList());
|
||||||
|
break;
|
||||||
case "gutc":
|
case "gutc":
|
||||||
responses.add(trunkPlugin.GetUserTransactionsCount(connection));
|
responses.add(trunkPlugin.GetUserTransactionsCount(connection));
|
||||||
break;
|
break;
|
||||||
|
|
@ -171,6 +174,9 @@ public class ArkOneController implements TcpHandler {
|
||||||
case "bm":
|
case "bm":
|
||||||
responses.add(trunkPlugin.BuyMood(commandInfo, connection));
|
responses.add(trunkPlugin.BuyMood(commandInfo, connection));
|
||||||
break;
|
break;
|
||||||
|
case "bc":
|
||||||
|
responses.add(trunkPlugin.BuyCleaning(commandInfo, connection));
|
||||||
|
break;
|
||||||
|
|
||||||
// Catch Unhandled Commands
|
// Catch Unhandled Commands
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,7 @@ package com.icedberries.UBFunkeysServer.ArkOne.Plugins;
|
||||||
|
|
||||||
import com.icedberries.UBFunkeysServer.ArkOne.ArkOneParser;
|
import com.icedberries.UBFunkeysServer.ArkOne.ArkOneParser;
|
||||||
import com.icedberries.UBFunkeysServer.DatabaseSetup.TrunkData;
|
import com.icedberries.UBFunkeysServer.DatabaseSetup.TrunkData;
|
||||||
import com.icedberries.UBFunkeysServer.domain.Familiar;
|
import com.icedberries.UBFunkeysServer.domain.*;
|
||||||
import com.icedberries.UBFunkeysServer.domain.Jammer;
|
|
||||||
import com.icedberries.UBFunkeysServer.domain.Mood;
|
|
||||||
import com.icedberries.UBFunkeysServer.domain.User;
|
|
||||||
import com.icedberries.UBFunkeysServer.service.*;
|
import com.icedberries.UBFunkeysServer.service.*;
|
||||||
import javagrinko.spring.tcp.Connection;
|
import javagrinko.spring.tcp.Connection;
|
||||||
import javagrinko.spring.tcp.Server;
|
import javagrinko.spring.tcp.Server;
|
||||||
|
|
@ -37,7 +34,8 @@ public class TrunkPlugin {
|
||||||
private enum PurchaseType {
|
private enum PurchaseType {
|
||||||
FAMILIAR,
|
FAMILIAR,
|
||||||
JAMMER,
|
JAMMER,
|
||||||
MOOD
|
MOOD,
|
||||||
|
CLEANING
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -55,6 +53,9 @@ public class TrunkPlugin {
|
||||||
@Autowired
|
@Autowired
|
||||||
MoodService moodService;
|
MoodService moodService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
CleaningService cleaningService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
UserService userService;
|
UserService userService;
|
||||||
|
|
||||||
|
|
@ -132,7 +133,6 @@ public class TrunkPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String GetFamiliarsList() {
|
public String GetFamiliarsList() {
|
||||||
|
|
||||||
// Get all the familiars
|
// Get all the familiars
|
||||||
List<Familiar> familiars = familiarService.findAll();
|
List<Familiar> familiars = familiarService.findAll();
|
||||||
|
|
||||||
|
|
@ -155,7 +155,6 @@ public class TrunkPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String GetJammersList() {
|
public String GetJammersList() {
|
||||||
|
|
||||||
// Get all the jammers
|
// Get all the jammers
|
||||||
List<Jammer> jammers = jammerService.findAll();
|
List<Jammer> jammers = jammerService.findAll();
|
||||||
|
|
||||||
|
|
@ -177,7 +176,6 @@ public class TrunkPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String GetMoodsList() {
|
public String GetMoodsList() {
|
||||||
|
|
||||||
// Get all the moods
|
// Get all the moods
|
||||||
List<Mood> moods = moodService.findAll();
|
List<Mood> moods = moodService.findAll();
|
||||||
|
|
||||||
|
|
@ -198,6 +196,27 @@ public class TrunkPlugin {
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String GetCleaningsList() {
|
||||||
|
// Get all the cleaning stations
|
||||||
|
List<Cleaning> cleanings = cleaningService.findAll();
|
||||||
|
|
||||||
|
// Start to build the response
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
stringBuilder.append("<h10_0><gcl>");
|
||||||
|
|
||||||
|
// Iterate over the items in the moods list to add them to the response
|
||||||
|
for (Cleaning cleaning : cleanings) {
|
||||||
|
stringBuilder.append("<c rid=\"" + cleaning.getRid() + "\" id=\"" + cleaning.getId() + "\" c=\""
|
||||||
|
+ cleaning.getCost() + "\" q=\"1\" d=\"\" />");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add closing tags
|
||||||
|
stringBuilder.append("</gcl></h10_0>");
|
||||||
|
|
||||||
|
// Return the list
|
||||||
|
return stringBuilder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
public String GetUserTransactionsCount(Connection connection) {
|
public String GetUserTransactionsCount(Connection connection) {
|
||||||
User user = server.getConnectedUsers().get(connection.getClientIdentifier());
|
User user = server.getConnectedUsers().get(connection.getClientIdentifier());
|
||||||
|
|
||||||
|
|
@ -282,6 +301,14 @@ public class TrunkPlugin {
|
||||||
return "<h10_0><bm id=\"" + element.getAttribute("id") + "\" b=\"" + LOOT_BALANCE + "\" /></h10_0>";
|
return "<h10_0><bm id=\"" + element.getAttribute("id") + "\" b=\"" + LOOT_BALANCE + "\" /></h10_0>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String BuyCleaning(Element element, Connection connection) {
|
||||||
|
// Save this transaction to the DB
|
||||||
|
PostTransaction(connection, PurchaseType.CLEANING, Integer.valueOf(element.getAttribute("id")));
|
||||||
|
|
||||||
|
// We always return LOOT_BALANCE so players are never charged for these items
|
||||||
|
return "<h10_0><bc id=\"" + element.getAttribute("id") + "\" b=\"" + LOOT_BALANCE + "\" /></h10_0>";
|
||||||
|
}
|
||||||
|
|
||||||
public void PostTransaction(Connection connection, PurchaseType purchaseType, Integer itemId) {
|
public void PostTransaction(Connection connection, PurchaseType purchaseType, Integer itemId) {
|
||||||
User user = server.getConnectedUsers().get(connection.getClientIdentifier());
|
User user = server.getConnectedUsers().get(connection.getClientIdentifier());
|
||||||
|
|
||||||
|
|
@ -302,6 +329,9 @@ public class TrunkPlugin {
|
||||||
case MOOD:
|
case MOOD:
|
||||||
cost = moodService.getCostById(itemId);
|
cost = moodService.getCostById(itemId);
|
||||||
break;
|
break;
|
||||||
|
case CLEANING:
|
||||||
|
cost = cleaningService.getCostById(itemId);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the rid of the item
|
// Get the rid of the item
|
||||||
|
|
@ -316,6 +346,9 @@ public class TrunkPlugin {
|
||||||
case MOOD:
|
case MOOD:
|
||||||
rid = moodService.getRidById(itemId);
|
rid = moodService.getRidById(itemId);
|
||||||
break;
|
break;
|
||||||
|
case CLEANING:
|
||||||
|
rid = cleaningService.getRidById(itemId);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a transaction xml tag
|
// Create a transaction xml tag
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
package com.icedberries.UBFunkeysServer.DatabaseSetup;
|
package com.icedberries.UBFunkeysServer.DatabaseSetup;
|
||||||
|
|
||||||
|
import com.icedberries.UBFunkeysServer.domain.Cleaning;
|
||||||
import com.icedberries.UBFunkeysServer.domain.Familiar;
|
import com.icedberries.UBFunkeysServer.domain.Familiar;
|
||||||
import com.icedberries.UBFunkeysServer.domain.Jammer;
|
import com.icedberries.UBFunkeysServer.domain.Jammer;
|
||||||
import com.icedberries.UBFunkeysServer.domain.Mood;
|
import com.icedberries.UBFunkeysServer.domain.Mood;
|
||||||
|
import com.icedberries.UBFunkeysServer.service.CleaningService;
|
||||||
import com.icedberries.UBFunkeysServer.service.FamiliarService;
|
import com.icedberries.UBFunkeysServer.service.FamiliarService;
|
||||||
import com.icedberries.UBFunkeysServer.service.JammerService;
|
import com.icedberries.UBFunkeysServer.service.JammerService;
|
||||||
import com.icedberries.UBFunkeysServer.service.MoodService;
|
import com.icedberries.UBFunkeysServer.service.MoodService;
|
||||||
|
|
@ -26,6 +28,9 @@ public class TrunkData {
|
||||||
@Autowired
|
@Autowired
|
||||||
MoodService moodService;
|
MoodService moodService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
CleaningService cleaningService;
|
||||||
|
|
||||||
// Familiars
|
// Familiars
|
||||||
private final List<String> familiarIds = Arrays.asList("80036a", "80035a", "80034a", "80033a", "80032a", "80031a", "80030a",
|
private final List<String> familiarIds = Arrays.asList("80036a", "80035a", "80034a", "80033a", "80032a", "80031a", "80030a",
|
||||||
"80029a", "80028a", "80027a", "80026a", "80025a", "80017a", "80016a", "80015a", "80007a", "80006a",
|
"80029a", "80028a", "80027a", "80026a", "80025a", "80017a", "80016a", "80015a", "80007a", "80006a",
|
||||||
|
|
@ -44,6 +49,10 @@ public class TrunkData {
|
||||||
"80022a", "80021a", "80020a", "80019a", "80018a", "80013a", "80012a", "80011a", "80010a", "80009a", "80008a");
|
"80022a", "80021a", "80020a", "80019a", "80018a", "80013a", "80012a", "80011a", "80010a", "80009a", "80008a");
|
||||||
private final Integer MOOD_COST = 100;
|
private final Integer MOOD_COST = 100;
|
||||||
|
|
||||||
|
// Cleanings
|
||||||
|
private final List<String> cleaningIds = Arrays.asList("70021a");
|
||||||
|
private final Integer CLEANING_COST = 100;
|
||||||
|
|
||||||
@EventListener(ApplicationReadyEvent.class)
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
public void insertFamiliars() {
|
public void insertFamiliars() {
|
||||||
// Iterate over the familiar ids
|
// Iterate over the familiar ids
|
||||||
|
|
@ -124,4 +133,30 @@ public class TrunkData {
|
||||||
idNum++;
|
idNum++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
|
public void insertCleanings() {
|
||||||
|
// Iterate over the cleaning ids
|
||||||
|
int idNum = 0;
|
||||||
|
for (String id : cleaningIds) {
|
||||||
|
// Attempt to get from the DB
|
||||||
|
Cleaning cleaning = cleaningService.findByRid(id).orElse(null);
|
||||||
|
|
||||||
|
// Only insert if the data is null
|
||||||
|
if (cleaning == null) {
|
||||||
|
// Build a new mood to insert
|
||||||
|
Cleaning newCleaning = Cleaning.builder()
|
||||||
|
.id(idNum)
|
||||||
|
.rid(id)
|
||||||
|
.cost(MOOD_COST)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// Save it to the db
|
||||||
|
cleaningService.save(newCleaning);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Increment id
|
||||||
|
idNum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.icedberries.UBFunkeysServer.domain;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "Cleanings")
|
||||||
|
public class Cleaning {
|
||||||
|
|
||||||
|
// DB ID
|
||||||
|
@Id
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
// Item ID
|
||||||
|
private String rid;
|
||||||
|
|
||||||
|
private Integer cost;
|
||||||
|
}
|
||||||
|
|
@ -23,6 +23,4 @@ public class Mood {
|
||||||
private String rid;
|
private String rid;
|
||||||
|
|
||||||
private Integer cost;
|
private Integer cost;
|
||||||
|
|
||||||
//private Integer qty;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.icedberries.UBFunkeysServer.repository;
|
||||||
|
|
||||||
|
import com.icedberries.UBFunkeysServer.domain.Cleaning;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface CleaningRepository extends CrudRepository<Cleaning, Integer> {
|
||||||
|
|
||||||
|
List<Cleaning> findAll();
|
||||||
|
|
||||||
|
@Query("select cleaning from Cleaning cleaning where cleaning.rid = :rid")
|
||||||
|
Optional<Cleaning> findByRid(@Param("rid") String rid);
|
||||||
|
|
||||||
|
@Query("select cleaning.cost from Cleaning cleaning where cleaning.id = :id")
|
||||||
|
Integer getCostById(@Param("id") Integer id);
|
||||||
|
|
||||||
|
@Query("select cleaning.rid from Cleaning cleaning where cleaning.id = :id")
|
||||||
|
String getRidById(@Param("id") Integer id);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.icedberries.UBFunkeysServer.service;
|
||||||
|
|
||||||
|
import com.icedberries.UBFunkeysServer.domain.Cleaning;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public interface CleaningService {
|
||||||
|
|
||||||
|
List<Cleaning> findAll();
|
||||||
|
|
||||||
|
Cleaning save(Cleaning cleaning);
|
||||||
|
|
||||||
|
Optional<Cleaning> findByRid(String rid);
|
||||||
|
|
||||||
|
Integer getCostById(Integer id);
|
||||||
|
|
||||||
|
String getRidById(Integer id);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.icedberries.UBFunkeysServer.service.impl;
|
||||||
|
|
||||||
|
import com.icedberries.UBFunkeysServer.domain.Cleaning;
|
||||||
|
import com.icedberries.UBFunkeysServer.repository.CleaningRepository;
|
||||||
|
import com.icedberries.UBFunkeysServer.service.CleaningService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class CleaningServiceImpl implements CleaningService {
|
||||||
|
|
||||||
|
private final CleaningRepository cleaningRepository;
|
||||||
|
|
||||||
|
public List<Cleaning> findAll() {
|
||||||
|
return cleaningRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Cleaning save(Cleaning cleaning) {
|
||||||
|
return cleaningRepository.save(cleaning);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<Cleaning> findByRid(String rid) {
|
||||||
|
return cleaningRepository.findByRid(rid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getCostById(Integer id) {
|
||||||
|
return cleaningRepository.getCostById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRidById(Integer id) {
|
||||||
|
return cleaningRepository.getRidById(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user