mirror of
https://github.com/Leahnaya/UBFunkeysServer.git
synced 2026-03-25 03:04:30 -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":
|
||||
responses.add(trunkPlugin.GetMoodsList());
|
||||
break;
|
||||
case "gcl":
|
||||
responses.add(trunkPlugin.GetCleaningsList());
|
||||
break;
|
||||
case "gutc":
|
||||
responses.add(trunkPlugin.GetUserTransactionsCount(connection));
|
||||
break;
|
||||
|
|
@ -171,6 +174,9 @@ public class ArkOneController implements TcpHandler {
|
|||
case "bm":
|
||||
responses.add(trunkPlugin.BuyMood(commandInfo, connection));
|
||||
break;
|
||||
case "bc":
|
||||
responses.add(trunkPlugin.BuyCleaning(commandInfo, connection));
|
||||
break;
|
||||
|
||||
// Catch Unhandled Commands
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ package com.icedberries.UBFunkeysServer.ArkOne.Plugins;
|
|||
|
||||
import com.icedberries.UBFunkeysServer.ArkOne.ArkOneParser;
|
||||
import com.icedberries.UBFunkeysServer.DatabaseSetup.TrunkData;
|
||||
import com.icedberries.UBFunkeysServer.domain.Familiar;
|
||||
import com.icedberries.UBFunkeysServer.domain.Jammer;
|
||||
import com.icedberries.UBFunkeysServer.domain.Mood;
|
||||
import com.icedberries.UBFunkeysServer.domain.User;
|
||||
import com.icedberries.UBFunkeysServer.domain.*;
|
||||
import com.icedberries.UBFunkeysServer.service.*;
|
||||
import javagrinko.spring.tcp.Connection;
|
||||
import javagrinko.spring.tcp.Server;
|
||||
|
|
@ -37,7 +34,8 @@ public class TrunkPlugin {
|
|||
private enum PurchaseType {
|
||||
FAMILIAR,
|
||||
JAMMER,
|
||||
MOOD
|
||||
MOOD,
|
||||
CLEANING
|
||||
}
|
||||
|
||||
@Autowired
|
||||
|
|
@ -55,6 +53,9 @@ public class TrunkPlugin {
|
|||
@Autowired
|
||||
MoodService moodService;
|
||||
|
||||
@Autowired
|
||||
CleaningService cleaningService;
|
||||
|
||||
@Autowired
|
||||
UserService userService;
|
||||
|
||||
|
|
@ -132,7 +133,6 @@ public class TrunkPlugin {
|
|||
}
|
||||
|
||||
public String GetFamiliarsList() {
|
||||
|
||||
// Get all the familiars
|
||||
List<Familiar> familiars = familiarService.findAll();
|
||||
|
||||
|
|
@ -155,7 +155,6 @@ public class TrunkPlugin {
|
|||
}
|
||||
|
||||
public String GetJammersList() {
|
||||
|
||||
// Get all the jammers
|
||||
List<Jammer> jammers = jammerService.findAll();
|
||||
|
||||
|
|
@ -177,7 +176,6 @@ public class TrunkPlugin {
|
|||
}
|
||||
|
||||
public String GetMoodsList() {
|
||||
|
||||
// Get all the moods
|
||||
List<Mood> moods = moodService.findAll();
|
||||
|
||||
|
|
@ -198,6 +196,27 @@ public class TrunkPlugin {
|
|||
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) {
|
||||
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>";
|
||||
}
|
||||
|
||||
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) {
|
||||
User user = server.getConnectedUsers().get(connection.getClientIdentifier());
|
||||
|
||||
|
|
@ -302,6 +329,9 @@ public class TrunkPlugin {
|
|||
case MOOD:
|
||||
cost = moodService.getCostById(itemId);
|
||||
break;
|
||||
case CLEANING:
|
||||
cost = cleaningService.getCostById(itemId);
|
||||
break;
|
||||
}
|
||||
|
||||
// Get the rid of the item
|
||||
|
|
@ -316,6 +346,9 @@ public class TrunkPlugin {
|
|||
case MOOD:
|
||||
rid = moodService.getRidById(itemId);
|
||||
break;
|
||||
case CLEANING:
|
||||
rid = cleaningService.getRidById(itemId);
|
||||
break;
|
||||
}
|
||||
|
||||
// Create a transaction xml tag
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package com.icedberries.UBFunkeysServer.DatabaseSetup;
|
||||
|
||||
import com.icedberries.UBFunkeysServer.domain.Cleaning;
|
||||
import com.icedberries.UBFunkeysServer.domain.Familiar;
|
||||
import com.icedberries.UBFunkeysServer.domain.Jammer;
|
||||
import com.icedberries.UBFunkeysServer.domain.Mood;
|
||||
import com.icedberries.UBFunkeysServer.service.CleaningService;
|
||||
import com.icedberries.UBFunkeysServer.service.FamiliarService;
|
||||
import com.icedberries.UBFunkeysServer.service.JammerService;
|
||||
import com.icedberries.UBFunkeysServer.service.MoodService;
|
||||
|
|
@ -26,6 +28,9 @@ public class TrunkData {
|
|||
@Autowired
|
||||
MoodService moodService;
|
||||
|
||||
@Autowired
|
||||
CleaningService cleaningService;
|
||||
|
||||
// Familiars
|
||||
private final List<String> familiarIds = Arrays.asList("80036a", "80035a", "80034a", "80033a", "80032a", "80031a", "80030a",
|
||||
"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");
|
||||
private final Integer MOOD_COST = 100;
|
||||
|
||||
// Cleanings
|
||||
private final List<String> cleaningIds = Arrays.asList("70021a");
|
||||
private final Integer CLEANING_COST = 100;
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
public void insertFamiliars() {
|
||||
// Iterate over the familiar ids
|
||||
|
|
@ -124,4 +133,30 @@ public class TrunkData {
|
|||
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 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