develop-tetris #2

Closed
Pupsi wants to merge 0 commits from develop-tetris into develop
Collaborator
No description provided.
Pupsi added 25 commits 2024-11-05 17:15:01 +00:00
MineTec reviewed 2024-11-05 17:16:07 +00:00
build.gradle Outdated
@ -90,3 +90,3 @@
mustRunAfter shadowJar
commandLine 'scp', 'build/libs/Minigames-1.0-SNAPSHOT.jar', 'root@10.20.6.5:/root/minigames'
commandLine 'scp', 'build/libs/Minigames-1.0-SNAPSHOT.jar', '/home/lars/Documents/Minecraft Server/minigames'
Owner

revert

revert
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-05 17:16:27 +00:00
@ -28,3 +28,3 @@
protected CommandCondition isPrivileged() {
return (sender, commandString) -> sender.hasPermission("admin");
//TODO
Owner

raus

raus
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-05 17:34:41 +00:00
@ -0,0 +23,4 @@
import java.util.Random;
class Tetris extends StatelessGame {
private final Map<Player, TetrisGame> tetrisGames = new HashMap<>();
Owner

potentieller memory leak, WeakHashMap als implementierung verwenden

potentieller memory leak, WeakHashMap als implementierung verwenden
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-05 17:48:15 +00:00
@ -0,0 +53,4 @@
.forEach(Entity::remove);
if(this.hasCombat) {
this.tetrisGames.forEach((player, tetrisGame) -> tetrisGame.updateOtherTetrisGames(this.tetrisGames.values().stream().toList()));
Owner

this.tetrisGames.values().stream().toList()

zu

List.of(....values())

this.tetrisGames.values().stream().toList() zu List.of(....values())
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-05 19:05:47 +00:00
@ -101,3 +101,3 @@
}
private void countdownUnload() {
protected void countdownUnload() {
Owner

wieder private machen

wieder private machen
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:45:53 +00:00
@ -0,0 +75,4 @@
}
@Override
protected void onPlayerMove(@NotNull PlayerMoveEvent event) {
Owner

wird das event nirgends gecancelt? Im fehlerfall wird returnt und der Spieler kann frei rumlaufen?

wird das event nirgends gecancelt? Im fehlerfall wird returnt und der Spieler kann frei rumlaufen?
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:46:45 +00:00
@ -0,0 +86,4 @@
if(tetrisGame.lost) return;
if(player.getGameMode() == GameMode.SPECTATOR) return;
event.setNewPosition(tetrisGame.getPlayerSpawnPosition().withView(currentPosition));
Owner

ah
das sollte aber immer ausgeführt werden, oder falls nicht möglich im fehlerfall das event canceln

ah das sollte aber immer ausgeführt werden, oder falls nicht möglich im fehlerfall das event canceln
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:47:09 +00:00
@ -0,0 +103,4 @@
double forwardAmount = movementVector.dot(forward);
double leftAmount = movementVector.dot(left);
if (forwardAmount > 0.018) {
Owner

konstanten für die magic numbers

konstanten für die magic numbers
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:48:13 +00:00
@ -0,0 +130,4 @@
Player player = event.getPlayer();
TetrisGame tetrisGame = this.tetrisGames.get(player);
if(tetrisGame == null) return;
if(tetrisGame.lost && player.getGameMode() != GameMode.SPECTATOR) {
Owner

kann der check auf lost nicht effizienter erfolgen? Warum muss das jeden tick geprüft werden? Kann der Spieler nicht auf "verloren" gesetzt werden, sobald lost auf true gesetzt wird?
Gibts keine einfache möglichkeit ohne jeden tick checken zu müssen?

kann der check auf lost nicht effizienter erfolgen? Warum muss das jeden tick geprüft werden? Kann der Spieler nicht auf "verloren" gesetzt werden, sobald lost auf true gesetzt wird? Gibts keine einfache möglichkeit ohne jeden tick checken zu müssen?
Author
Collaborator

nein

nein
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:49:57 +00:00
@ -0,0 +142,4 @@
getScore().insertResult(player, tetrisGame.getScore());
boolean allGamesLost = this.tetrisGames.values().stream()
.filter(tetrisGame1 -> !tetrisGame1.lost)
Owner

lambda "tetrisGame1" zu "t" umebennen oder so

lambda "tetrisGame1" zu "t" umebennen oder so
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:50:43 +00:00
@ -0,0 +148,4 @@
if(!setTimeLimit && !allGamesLost) {
this.setTimeLimit(90);
setTimeLimit = true;
new ChatMessage(Icon.SCIENCE).appendStatic("Noch 90 Sekunden!").send(getPlayers());
Owner

auf karkeinen fall hier xD

zieh das da hin wo auch die anderen Meldungen geworfen werden bezüglich der verbleibenden Sekundenzahl

auf karkeinen fall hier xD zieh das da hin wo auch die anderen Meldungen geworfen werden bezüglich der verbleibenden Sekundenzahl
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:51:27 +00:00
@ -0,0 +157,4 @@
p.getInventory().setItemStack(0, ItemStack.builder(Material.BIRCH_BUTTON).customName(Component.text("Controller")).build());
p.setSprinting(false);
if(this.tetrisGames.get(p) == null) {
Owner

vereinfachen mit higher level functions

this.terisGames.computeIfAbsent(() -> ...)

vereinfachen mit higher level functions this.terisGames.computeIfAbsent(() -> ...)
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:51:59 +00:00
@ -0,0 +168,4 @@
this.randomSeed
));
this.tetrisGames.get(p).generate();
this.tetrisGames.forEach((player, tetrisGame) -> tetrisGame.updateOtherTetrisGames(this.tetrisGames.values().stream().toList()));
Owner

List.of

List.of
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 18:58:50 +00:00
@ -0,0 +30,4 @@
private final Pos nextPosition;
private final Pos holdPosition;
private final Pos tetrominoSpawnPosition;
public Sidebar sidebar = new Sidebar(Component.text("Info:"));
Owner

die sidebar will noch verschönert werden

die sidebar will noch verschönert werden
Author
Collaborator

Waruuuum??? Ich find die so super.

Waruuuum??? Ich find die so super.
MineTec reviewed 2024-11-07 19:00:16 +00:00
@ -0,0 +68,4 @@
}
public void pressedButton(Button button) {
if(this.lastPresses.getOrDefault(button, 0L) >= System.currentTimeMillis()-100) return;
Owner

konstante

konstante
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:00:21 +00:00
@ -0,0 +71,4 @@
if(this.lastPresses.getOrDefault(button, 0L) >= System.currentTimeMillis()-100) return;
this.lastPresses.put(button, System.currentTimeMillis());
if(button == Button.W) this.lastPresses.put(button, System.currentTimeMillis()+70);
Owner

konstante

konstante
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:01:32 +00:00
@ -0,0 +96,4 @@
if(this.lost) return TaskSchedule.stop();
int standardTickDelay = 40;
if(this.isFast) standardTickDelay = 20;
if(this.paused) return TaskSchedule.tick(Math.round((float) standardTickDelay /this.level));
Owner

variable für das TaskSchedule math round ....

variable für das TaskSchedule math round ....
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:03:52 +00:00
@ -0,0 +152,4 @@
private boolean rotate(boolean clockwise) {
if(this.lost || this.paused) return false;
Owner

macht es nicht sinn den lost und paused check in den caller zu packen? dann kann das aus allen methoden raus.

Zudem kann dann ggf der einzelne Aufruf auch direkt beim caller gemacht werden, wodurch alle einzeiler methoden wegfallen würden. Vorrausgesetzt das ist dann noch gut lesbar

macht es nicht sinn den lost und paused check in den caller zu packen? dann kann das aus allen methoden raus. Zudem kann dann ggf der einzelne Aufruf auch direkt beim caller gemacht werden, wodurch alle einzeiler methoden wegfallen würden. Vorrausgesetzt das ist dann noch gut lesbar
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:05:58 +00:00
@ -0,0 +216,4 @@
if(!this.currentTetromino.moveDown()) loose();
double xChange;
switch (this.holdTetromino.shape) {
Owner

den switch gabs doch schonmal?

den switch gabs doch schonmal?
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:06:29 +00:00
@ -0,0 +241,4 @@
this.nextTetrominoes.forEach(tetromino -> {
double xChange;
switch (tetromino.shape) {
case O, I -> xChange = 0;
Owner

.

.
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:06:46 +00:00
@ -0,0 +252,4 @@
private void buildSidebar() {
this.sidebar.createLine(new Sidebar.ScoreboardLine(
"0",
Component.text("Score: "),
Owner

design, farben

design, farben
MineTec reviewed 2024-11-07 19:08:29 +00:00
@ -0,0 +14,4 @@
import java.util.UUID;
public class Tetromino {
public final Shape shape;
Owner

private mit getter?

ansonsten geht


var t = new Tetromino(..., Shape.I)
t.shape = Shape.J
private mit getter? ansonsten geht ``` var t = new Tetromino(..., Shape.I) t.shape = Shape.J ```
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:09:17 +00:00
@ -0,0 +90,4 @@
getBlockPositions().forEach(pos -> {
Entity ghostBlock = new Entity(ghostEntityType);
((FallingBlockMeta) ghostBlock.getEntityMeta()).setBlock(this.getGhostBlock());
// ((BlockDisplayMeta) ghostBlock.getEntityMeta()).setBlockState(this.getGhostBlock());
Owner

code kommentare raus

code kommentare raus
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:10:22 +00:00
@ -0,0 +138,4 @@
this.instance.getEntities().stream()
.filter(entity -> {
String tagValue = entity.getTag(uuidTag);
if(tagValue != null) return entity.getTag(uuidTag).equals(this.uuid.toString());
Owner

umdrehen zu early return

umdrehen zu early return
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:11:41 +00:00
@ -9,2 +9,4 @@
public class FirstWinsScore extends Score {
@Override
public void insertResultImplementation(Set<Player> p, int points) {
Owner

wenn der override leer ist, kann er dann nicht weggelassen werden?

wenn der override leer ist, kann er dann nicht weggelassen werden?
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:11:47 +00:00
@ -14,2 +19,4 @@
}
@Override
public void insertResult(Player p, int points) {
Owner

hier auch

hier auch
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:11:52 +00:00
@ -9,2 +9,4 @@
public class LastWinsScore extends Score {
@Override
public void insertResultImplementation(Set<Player> p, int points) {
Owner

.

.
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:11:56 +00:00
@ -14,0 +18,4 @@
getScores().addFirst(p);
}
@Override
Owner

.

.
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:12:01 +00:00
@ -11,2 +11,4 @@
}
@Override
public void insertResultImplementation(Set<Player> p, int points) {
Owner

.

.
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:12:06 +00:00
@ -16,2 +21,4 @@
}
@Override
public void insertResult(Player p, int points) {
Owner

.

.
Pupsi marked this conversation as resolved
MineTec reviewed 2024-11-07 19:13:57 +00:00
@ -46,2 +46,4 @@
}
}
public abstract void insertResultImplementation(Set<Player> p, int points);
Owner

weiß ich nicht

jetzt haben alle scores die methode um mit punkten hinzuzufügen...

weiß ich nicht jetzt haben alle scores die methode um mit punkten hinzuzufügen...
Pupsi marked this conversation as resolved
MineTec requested changes 2024-11-07 19:15:49 +00:00
MineTec left a comment
Owner

.

.
Pupsi added 1 commit 2024-11-23 13:26:28 +00:00
Pupsi added 1 commit 2024-11-23 21:24:14 +00:00
Pupsi added 1 commit 2024-11-23 22:56:23 +00:00
Pupsi added 1 commit 2024-11-23 22:58:58 +00:00
Pupsi added 1 commit 2024-11-23 23:47:20 +00:00
MineTec closed this pull request 2024-12-17 12:38:06 +00:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MineNet/Minigames#2
No description provided.