-
-
Save ooosokol/605eab15b856d46d7e45f27e89040b8d to your computer and use it in GitHub Desktop.
public class MegatronSokolServiceImpl implements MegatronSokolService { | |
private static final String secret; | |
private final AtomicLong counter; | |
public MegatronSokolServiceImpl(Long startValue, String secret) { | |
counter = new AtomicLong(startValue); | |
this.secret = secret; | |
} | |
@Override | |
public String getMegatronTestToken() { | |
return DigestUtils.md5Hex(DigestUtils.md5Hex(String.valueOf(counter.get()))); | |
} | |
private String getMegatronToken() { | |
return DigestUtils.md5Hex(DigestUtils.md5Hex(String.valueOf(counter.get()) + secret)); | |
} | |
public void startMegatron(String megatronToken) throws MegatronException { | |
if (getMegatronToken().equals(megatronToken)) { | |
LaserDeviceHelper.getInstance().run(LaserDeviceRequest.builder() | |
.setPower(LaserDeviceRequest.MAX_POWER) | |
.setDuration(LaserDeviceRequest.MAX_DURATION) | |
.build() | |
); | |
} else if (getMegatronTestToken().equals(megatronToken)) { | |
LaserDeviceHelper.getInstance().run(LaserDeviceRequest.builder() | |
.setPower(LaserDeviceRequest.MIN_POWER) | |
.setDuration(Duration.ofSeconds(10)) | |
.build() | |
); | |
} else { | |
throw new MegatronTockenInvalidException(megatronToken); | |
} | |
counter.getAndIncrement(); | |
PushNotificationService.getInstance().sendNewToken(getMegatronToken()); | |
} | |
} |
talyguryn
commented
Aug 12, 2020
PushNotificationService.getInstance().sendNewToken(getMegatronToken());
---->
PushNotificationService.getInstance().sendNewToken(getMegatronTestToken());
PushNotificationService.getInstance().sendNewToken(getMegatronToken());
---->
PushNotificationService.getInstance().sendNewToken(getMegatronTestToken());
У вас на руках есть реализация, чтобы так утверждать?
PushNotificationService.getInstance().sendNewToken(getMegatronToken());
---->
PushNotificationService.getInstance().sendNewToken(getMegatronTestToken());
Данная строка была добавлена для того чтобы мир игры был логичным. Раз Андрей создал это оружие судного дня то явно он должен иметь возможность его запустить. Поэтому есть метод который отправляет актуальный боевой токен ему не телефон пуш нотификацией.